randy's Recent Posts

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.

Before these instruments left the shop I snagged a few photos, to show the variations in wood that give each instrument a unique personality. When I put a surface together with the enclosure I try to find pairs of grains that somehow speak to each other. It’s a happy task each time because it means that the Soundplane is almost done.


Waves with planets:




Small rays:




Big waves:



Yes, you're correct in your understanding of the mod +1, +2 stuff.

Thanks for leaving this up, and for a good laugh when I got to the end!

test

Hi Marko,

Thanks for letting me know. We just updated the website and it looks like the new version of our comment formatting software has a new feature that breaks the patches by turning underscores into italics. I'll see what I can do to fix this.

With Kyma connected over OSC, you should see messages of the form
/key (touchID) (onoff) (note) (z) (y).

the /con messages are just polling whether the Soundplane is connected or not.

This is what I came up with after consulting with the Kyma folks. I'm not really familiar with using Kyma myself, so questions about how to actually use this data are best sent to Carla / Kurt.

You can also use Kyma over MIDI---y and z use MIDI CCs 74 and 11, respectively.

I'm sorry the docs suck right now. Now that I'm done building instruments for a little while I can do some much needed work on them.

How do I program the soundplane to control different knobs of a synth? For example, moving up and down on the y axis the HP filter would change.

The answer totally depends on the environment you are working in. Are you using OSC or MIDI? What VST / AU host? and so on.

It's easiest to use Aalto over OSC. In Aalto over OSC the x/y/z signals all come out right into the patcher. You can see the lights change when you move a touch, and then connect that signal to any parameter you want, like filter cutoff.

To set up Aalto over OSC, just make sure OSC is enabled in the Soundplane app, and run Aalto in any host. That's it. Aalto will display "t3d connected" and you are up and running.

If you want to use another synth plugin, you will have to use MIDI. So you need to know how your host application handles MIDI mapping. Some hosts like Live make this very easy. Others not so much . But in any case you map MIDI CC 74 to whatever you want.

Thanks Wednesday!

Coffee is a big part of it.

I'll re-examine this, thanks for the feedback. I've made some tweaks to the seq from user feedback, that unfortunately break other behaviors people were counting in. The sequencer is hard.

An update is definitely planned.

Hi there!

I have a fully modular version of Aalto planned. This will let you put external audio through whatever modules you want, including the waveguide. It's a little ways off, though.