randy's Recent Posts

Of course!

I should add that I'm not sure this adjusting is right for your situation. Making the instrument tighter tends to make the return slower, not faster! When you have a chance you could compare with Kurt’s board which IIRC has all 5 shims not sanded down much.

For adjusting I use veneer with an adhesive back, which is 0.01" thick. This is an easy material to find at your local woodworking store. I put the shim on and put the back on again. Then if it's too tight I take the back off and sand the shim down a little.

That’s good you found better settings with the max force. I made the defaults the values that I use day-to-day for best response, but the right settings will depend on you and, to a lesser extent, your instrument.

The release is a mechanical thing that happens when the foam is compressed for around a second or more. As you have noticed, it only happens with a heavy touch, so a lighter playing style is the all-around best answer---and easier on your fingers!

There is probably no point playing with the elastic layer itself. As you guessed I have tried many different materials and thicknesses, so you have the best results out of three years of experiments there.

However, the tension applied by the back of the instrument can be varied pretty easily by messing with some wooden shims. I tune each instrument by applying different shims or sanding them down if necessary. I would recommend that you wait and really get familiar with the software options before trying an intervention like this.

I want to encourage people to hack on their instruments, because I think it’s a great activity. I made the Soundplane to be easy to work on. On the other hand, I have to say technically that doing so voids your warranty. It’s a fine line and a little frustrating but I’m sure you understand. I don’t expect anyone to make a mess of their instrument but if that did happen I would have to charge something for shipping or repair.

Did you see the assembly / disassembly video on the main page? I put it out there to show exactly what’s involved in replacing any part of the Soundplane. If you were not comfortable replacing the surface yourself you could send it back to me.

You could definitely buy a replacement surface if you wanted one. I would have to do some accounting to figure out what the cost should be. There’s quite some labor involved, so it won’t be trivial.

I think this is a really cool patch! Do you by chance have a few more you could contribute to the user patches?

As I wrote above, the "voice" output from the KEY module (now "vox") has no detuning on it. I think that the ENV is to blame, in this case, for things going out of sync.

It looks like the way the ENV code is optimized makes slight errors in timing accumulate over time. I can look to see if there’s a an easy way to make this better, because I can see from your patch that it would be very cool.

It's not really the mission of the ENV modules to provide an accurate timebase though. In general with floating point math, things like free-running oscillators are not exact relative to one another unless you take great pains to make them so. Just like in analog, you have to provide a sync pulse somewhere if you really want things to be in sync. In this case you could just retrigger the note every few bars.

Thanks for the good report with bullet points.

Important: what OS are you using?

Did you happen to try any different DAWs?

On Windows 7 User Presets are in in Windows:(Yourhomedirectory)/UserData and factory ones are in C: / AppData / Roaming.

I think Vista is the same, but I am not totally sure. I would recommend you move to Windows 7 if you get the chance. I don't really support Vista or get much call to these days.

Hey, we fixed it, it should work here again.

Try this patch. I think it pretty much does what you want. I should make the range of the rate input bigger, but you get the idea.

I'm looking at some automated control of patching for the future.

<Aalto pluginVersion="66054" presetName="seq stop" scaleName="12-equal" scaleDir="" key_voices="4" seq_loop="0" seq_trig="1" seq_rate="0.00200000009" seq_rate_p="3.99999976" seq_offset_p="7" seq_value0="0.758928597" seq_value1="0.348214328" seq_value2="1" seq_value3="0.473214328" seq_value4="0.348214328" seq_value5="0.758928597" seq_value6="0.258928597" seq_value7="0.491071463" seq_value8="0.866071463" seq_value9="0.651785731" seq_value10="0.401785731" seq_value11="0.6875" seq_value12="0.526785731" seq_value13="0.544642866" seq_value14="0.419642866" seq_value15="0.669642925" env1_release="3.31999993" env2_repeat="0" env2_sustain="1" osc_timbre="0.0799999982" osc_waveshape="3.7252903e-09" patcher_input_1="000000000000100000000000000" patcher_input_9="000000000000100000000000000" patcher_input_11="000000000000000100000000000" patcher_input_12="100000000000000000000000000"/>

Muppet Dungeon.

<Aalto pluginVersion="66054" presetName="muppet dungeon" scaleName="12-equal" scaleDir="Gamelan" key_voices="4" seq_rate="0.0260000005" seq_rate_p="1.00999999" seq_range="27" seq_glide="1" seq_pw="66" seq_value_delay="3.5" seq_value0="0.705357194" seq_value3="0.508928597" seq_value5="0.883928597" seq_value11="1" seq_value12="0.00892853737" seq_value13="0.00892853737" seq_value14="0.00892853737" seq_value15="0.00892853737" seq_pulse11="1" lfo_freq="0.140000001" lfo_noise="0.280000001" lfo_level="0.439999998" env1_decay="10.6999998" env1_sustain="0" env1_release="10.7299995" env1_trig_select="2" env2_repeat="4.72968769" env2_release="0.0500000007" env2_trig_select="2" env2_xenv1="2" env2_repeat_p="1.87" osc_pitch="54.7999992" osc_waveshape="-0.899999976" osc_pitch_exp_p="1.11000001" osc_pitch_lin_p="20000" gate_level="1" delay_input="1" delay_drive="1" delay_feedback="0.730000019" delay_freq="109.999374" delay_feedback_p="1" delay_output_dry="0.50999999" filter_cutoff="20" filter_q="0.200000003" filter_cutoff_p="3.18000007" filter_q_p="1" output_input_gain="0.469999999" output_reverb="0.100000001" output_pan="-0.270000011" output_reverb_p="0.709999979" output_pan_p="0.449999988" patcher_input_3="100000000000100000000000000" patcher_input_6="000000000000000000000000010" patcher_input_8="000000000000000000000000001" patcher_input_9="000000000000000000000110000" patcher_input_10="000000000000100000000000001" patcher_input_11="000000100000000000000000000" patcher_input_12="000000000000010000000000100"/>

Glad to see the discussion! (while listening to Bob's machine music on Soundcloud)

If you don't mind tying up the sequencer, you can do this trick to set an arbitrary value for each voice:

<Aalto pluginVersion="66305" presetName="default" scaleName="12-equal" scaleDir="" key_voices="4" seq_rate="0" seq_steps="0" seq_offset="1" seq_offset_p="1" seq_quantize="1" seq_pw="32" seq_value0="0.00999999978" seq_value1="0.340000004" seq_value2="0.589999974" seq_value3="0.849999964" seq_value9="0.00999999978" seq_value10="0.00999999978" seq_value15="0.00999999978" env2_repeat="0" osc_waveshape="-0.429999977" gate_level="0.439999998" patcher_input_3="0010000000000000000000000000000" patcher_input_11="0000000000000000100000000000000" />

(this shows a minor sequencer offset bug BTW)

I could possibly press the LFO into service this way also. The idea would be to set a non-zero DC offset at frequency 0 or something, then use the voice output to scale the level.

The sequencer should be more predictable in 1.3.1, coming today or tomorrow.

<Aalto pluginVersion="66305" presetName="prog warmup" scaleName="12-equal" scaleDir="" key_voices="4" seq_trig="1" seq_rate="0.153000012" seq_offset_p="7" seq_quantize="1" seq_value0="0.219999999" seq_value1="0.839999974" seq_value2="0.159999996" seq_value3="0.310000002" seq_value4="0.439999998" seq_value5="0.189999998" seq_value6="1" seq_value7="0.229999989" seq_value8="0.239999995" seq_value9="0.170000002" seq_value10="0.930000007" seq_value11="0.149999991" seq_value12="0.0799999982" seq_value13="0.799999952" seq_value14="0.149999991" seq_value15="0.109999999" seq_pulse0="1" seq_pulse6="1" seq_pulse12="1" lfo_freq="0.0799999982" lfo_level="0.48999998" lfo_freq_p="0.639999866" env1_decay="0.389999986" env1_sustain="0" env1_release="0.209999993" env1_xvel="0" env1_trig_select="2" env2_repeat="0" osc_timbre="0.109999999" osc_pitch="880" osc_waveshape="3.7252903e-09" osc_timbre_p="0.659999967" gate_mode="1" gate_decay="2" delay_input="0.610000014" delay_peakfreq="251" delay_drive="0.789999962" delay_peakres="5.99999952" delay_feedback="0.519999981" delay_freq="4.49935341" delay_feedback_p="0.519999981" delay_output_wet="0.859999955" patcher_input_1="0000000000000000100000000000000" patcher_input_3="0000100000000000000000000000000" patcher_input_10="0000000000000001000000000000000" patcher_input_11="0000000000000000100000000000000" patcher_input_12="0000000000000000000000001000000" patcher_input_13="0000000000000000000100000000000" editor_x="29" editor_y="230" editor_width="912" editor_height="624" editor_num="1" editor_anim="1"/>

@hainbach,

I hopefully am not modifying the installer anymore for this release. But there's always next time. Your patches are very nice-- if you want to get a directory of around 10 or more together, I'll be happy to include them.

My future plans are to turn the user patches into something more live and networked. But this is an Aalto 2 thing... a long ways off.

In the meantime, we have this minimal web site. Try this:

<Aalto pluginVersion="66048" presetName="shruti malfunction" scaleName="12-equal" scaleDir="" key_voices="2" seq_rate="0.161855474" seq_rate_p="-2.32999992" seq_range="30" seq_pw="2" seq_value_delay="4" seq_value0="0.00892853737" seq_value1="0.758928597" seq_value2="0.455357194" seq_value3="0.151785731" seq_value4="0.776785731" seq_value5="0.901785731" seq_value6="0.00892853737" seq_value7="0.1875" seq_value8="0.00892853737" seq_value9="0.1875" seq_value10="0.758928597" seq_value11="0.705357194" seq_value12="0.00892853737" seq_value13="0.366071463" seq_value14="0.00892853737" seq_value15="0.598214328" seq_pulse0="1" seq_pulse1="1" seq_pulse2="1" seq_pulse3="1" seq_pulse6="1" seq_pulse9="1" seq_pulse10="1" seq_pulse11="1" seq_pulse12="1" seq_pulse14="1" lfo_freq="0.0700000003" lfo_level="0.239999995" lfo_freq_p="-4" env2_repeat="0" env2_attack="0.00600000005" env2_release="0.25999999" env2_trig_select="2" osc_ratio="5" osc_pitch="74.4000015" osc_waveshape="3.7252903e-09" osc_noise_p="0.549999952" osc_ratio_p="3.99999976" osc_offset_p="200" osc_index_p="1.54999971" osc_timbre_p="0.469999969" osc_pitch_exp_p="-1.42000008" osc_pitch_lin_p="2536" osc_waveshape_p="0.689999938" gate_mode="1" gate_decay="1.24000001" delay_input="0.5" delay_peakfreq="490" delay_drive="0.269999981" delay_peakres="2.86999989" delay_feedback="0.529999971" delay_freq="439.999359" delay_peakfreq_p="3.99999976" delay_peakres_p="2.91999984" delay_feedback_p="0.98999995" delay_freq_p="-3.27999997" delay_output_wet="4" delay_output_dry="0" filter_cutoff="233" filter_q="1" filter_mix="-0.439999998" filter_cutoff_p="0.999999881" patcher_input_6="000000000000000100000000000" patcher_input_9="000000000000010000000100000" patcher_input_10="000000000000000000000100000" patcher_input_12="000000000000100000000000000"/>

Here's a work in progress, an acoustic piano imitation. I'm not sure if it's even possible to do a reasonable one over the whole piano range... I wouldn't ask it of most synthesizers anyway. But this one sounds pretty good in the low register. By messing with it you can get some great sounds that are piano-like but strange.

<Aalto pluginVersion="65829" presetName="aalto piano lo" scaleName="12-equal" scaleDir="" key_voices="3" key_bend="0" key_glide="0" lfo_freq="0.639999986" lfo_level="0.179999992" env1_attack="0.00400000019" env1_decay="4.01999998" env1_sustain="0.179999992" env1_release="0.589999974" env1_level="0.429999977" env2_repeat="109.629692" env2_attack="0.0460000038" env2_release="1.86000001" env2_xvel="1" osc_ratio="3.00200009" osc_index="5.35999966" osc_timbre="0.269999981" osc_pitch="110" osc_waveshape="3.7252903e-09" osc_index_p="2.51999974" osc_timbre_p="-0.270000011" osc_pitch_lin_p="0" osc_mod_out="0.0399999991" gate_mode="1" gate_decay="2" gate_level_p="0.569999993" delay_input="0.610000014" delay_peakfreq="100" delay_drive="0.569999993" delay_peakres="6" delay_freq="1248.48938" delay_input_p="0.49999997" delay_drive_p="0.029999977" delay_peakres_p="0.0299999099" filter_cutoff="368" filter_q="0.829999983" filter_mix="-0.800000012" filter_cutoff_p="0.999999881" filter_mix_p="1" output_input_gain="0.569999993" output_reverb="0.109999999" patcher_input_1="000000100000100000000110000" patcher_input_10="000000000010000000000000000" patcher_input_11="000000000011000100000001000"/>

I'm crushing hard on this patch I made for the recent demos. Sounds totally techno / lush and shows off Aalto's nice clear high end. Let's call it... Space elevator.

<Aalto pluginVersion="66048" presetName="space elevator" scaleName="12-equal" scaleDir="" key_voices="3" key_glide="0" seq_rate="1.05485547" seq_rate_p="0.999999881" seq_steps="2" seq_quantize="1" seq_value="1" seq_value:1="0.616071463" seq_value:2="0.00892853737" env1_decay="0.439999998" env1_sustain="1" env1_release="5.75999975" env1_xvel="0" env2_repeat="0" osc_ratio="1.25" osc_waveshape="0.899999976" osc_mod_out="0.0299999993" gate_decay="0" delay_input="0.529999971" delay_peakfreq="2340" delay_drive="0" delay_peakres="-1.34110451e-07" delay_feedback="0.170000002" delay_freq="11.5493746" delay_feedback_p="0.49999997" delay_output_wet="2.15999985" filter_mix="1" filter_cutoff_p="-2.48000002" output_reverb_p="-2.23517418e-08" patcher_input_1="000000000000100000000000000" patcher_input_9="000000000000100000000000000" patcher_input_11="000000000000000100001010010"/>

We should be good to go. I want to add nice formatting for the patches, and Soundcloud embed, but that can wait for another day.

Here's a patch that may may its way into the factory set. It's a synthesized dizi, a Chinese flute.

<Aalto pluginVersion="65829" presetName="dizi" scaleName="chin_di2" scaleDir="Chinese" key_bend="2" key_unison="1" key_glide="0" lfo_freq="3.64999986" lfo_level="0.329999983" lfo_freq_p="2.9599998" env1_attack="0.0300000012" env1_decay="10.3000002" env1_sustain="0.370000005" env1_release="0.149999991" env1_release_p="-1" env2_repeat="0" env2_attack="0.193000004" env2_sustain="1" env2_release="0.409999996" env2_xvel="1" osc_noise="1" osc_ratio="6.00000048" osc_index="0.899999976" osc_pitch="880" osc_waveshape="0.899999976" osc_noise_p="-0.650000036" osc_pitch_lin_p="0" osc_carrier_out="0.239999995" osc_mod_out="0.049999997" gate_decay="0.289999992" gate_level_p="0.399999976" delay_input="0.189999998" delay_peakfreq="880" delay_drive="0.179999992" delay_peakres="2.44999981" delay_feedback="0.370000005" delay_freq="880" delay_input_p="0.23999998" delay_peakfreq_p="0.999999881" delay_drive_p="0.0899999738" delay_peakres_p="4" delay_feedback_p="0.24999997" delay_output_wet="2.02999997" delay_output_dry="0.25" filter_cutoff="840" filter_q="0.719999969" filter_mix="0.48999998" filter_cutoff_p="0.549999893" output_input_gain="0.779999971" output_reverb="0.409999996" patcher_input_1="000000100000100001000100000" patcher_input_2="000000010000000000100000000" patcher_input_4="001000000000000001010000000" patcher_input_10="000000000000000010000000000" patcher_input_11="000000000000000100000000000" patcher_input_12="000000000000000000001000000"/>

Valse mechanique:

<Aalto pluginVersion="65829" presetName="valse mechanique" scaleName="12-equal" scaleDir="" key_glide="0" seq_trig="1" seq_rate="0.0958554745" seq_rate_p="1.30999982" seq_steps="12" seq_range="48" seq_quantize="1" seq_pw="18" seq_value_delay="2.5" seq_pulse_delay="1.5" seq_value="0.00892853737" seq_value:1="0.991071463" seq_value:2="0.6875" seq_value:3="0.00892853737" seq_value:4="0.508928597" seq_value:5="0.00892853737" seq_value:6="0.00892853737" seq_value:7="0.991071463" seq_value:8="0.776785731" seq_value:9="0.00892853737" seq_value:10="0.508928597" seq_value:11="0.00892853737" seq_value:12="0.00892853737" seq_value:13="0.00892853737" seq_value:14="0.00892853737" seq_value:15="0.00892853737" seq_pulse="1" seq_pulse:3="1" seq_pulse:6="1" seq_pulse:9="1" seq_pulse:10="1" seq_pulse:13="1" lfo_freq="0.049999997" lfo_level="1" lfo_freq_p="4" env1_attack="0.0510000028" env1_decay="0.639999986" env1_sustain="0" env1_release="2.04999995" env1_level="0.179999992" env1_trig_select="2" env1_attack_p="0.199999973" env1_decay_p="0.579999983" env1_release_p="0.199999973" env2_repeat="0" env2_attack="0.00100000005" env2_xvel="1" env2_trig_select="2" osc_ratio="2.1420002" osc_offset="2.98023224e-06" osc_pitch="110" osc_waveshape="-0.899999976" osc_ratio_p="1.12999988" osc_offset_p="200" osc_index_p="10" osc_timbre_p="-2.23517418e-08" osc_pitch_lin_p="216" osc_mod_out="0.5" gate_mode="1" gate_decay="2" gate_level_p="0.99999994" delay_input="1" delay_drive="1" delay_feedback="0.289999992" delay_freq="3.02937484" delay_output_wet="0.109999999" output_reverb="0.229999989" output_reverb_p="0.329999983" patcher_input_8="000000000010100000000000000" patcher_input_9="000000000000010000000000000" patcher_input_10="000000001000000000000000000" patcher_input_11="000000000010000100000000000" patcher_input_12="000000000000000100000000000"/>

With the hardware being a pain to finish this time around, the planned software mapping features in the Soundplane app have not been done yet. Thanks for your patience and I'm glad you found a workaround in the meantime.

Welcome aboard, and thanks for your support and feedback! I really appreciate it.

Unfortunately the website has a bug right now, where the patches are in the wrong format! Does it work if you try one of the patches from patchdump.com ?

It would actually be 512 floats because that’s the raw sensor data size. Unless you have other ideas. But, it seems like this is the feature for someone who wants all the data, so I should give them all the data.

Here is a video showing how to take apart a Soundplane and put it back together again. I designed the Soundplane to be easily hackable and repairable; hopefully what you see here gets that across.


If you don’t have a Soundplane but are interested in making a DIY version, this will probably give you some ideas!

solid elastic works fine too---the gaps are a refinement that reduces the pressure needed to move the surface.

Separating the adjacent touches well is a difficult problem. As with any research topic, it is impossible to promise exactly when I can deliver results, but please know it is very important to me and I will be working on it.

Yes this proximity effect you describe is part of the touch code as well, and I do hope to eliminate it. Right now it is needed to avoid some false touches from nearby ones.

You can see the work in progress at github.com/madronalabs/soundplane, and I welcome your ideas.

Yes, I can do that for you in the next update coming this week.

There’s probably no reason to use the CM Aalto if you already have the full version. If you want a mono version just set the # of voices to 1!

There’s an Aalto 2 coming, but not for at least a couple of months. There will be a 1.4 before that.

Have you tried just using Ableton’s Configure menu to map the Soundplane’s output CC to whatever knob you want?

I would follow up with Symbolic because I did what they asked me to do as far as OSC output, and they told me it was working.

Did you look at this Kyma documentation?

Thanks!

Note that unfortunately the forum software is fucked up right now since we upgraded some of our Web software. The patches will be stored just fine but right now some translator is breaking them when people copy them. I'm waiting for a bit of my web guy’s time to fix this issue.