randy's Recent Posts
There are a bunch of software environments in which you can make instruments. Max/MSP, Kyma, AudioMulch, Reaktor, Vaz Modular, Tassman, Plogue Bidule ... and that's just the graphical ones I can think of, leaving out SuperCollider, ChucK and so on. How many times have you read that with tool X you are "limited only by your own imagination?" But not everyone has the ability, or the time, to think up a new instrument and then spend a year working out the details. For players and composers, limitations are essential. So where are the instruments themselves?
With computer audio, there are so many possibilities available that I think the idea of an instrument is getting neglected. A traditional musical instrument usually has a small number of controls that lead to many possibilities, because you can physically interact with it in different and subtle ways. Take a single string and stretch it over a box with a hole in it. You just made an instrument that you could spend years practicing and getting better at. There aren't many parts, but the variety of physical interactions they offer gives you lots of sonic possibilities.
Contrast that with a computer, which has billions of parts that can go into more states than the universe has particles, most of which make no sounds at all. It's hard to configure these systems to make sound dependably---recall only ten years or so ago, when just a handful of brave musicians were willing to rely on computers for live performance, and crashes were pretty common.
Once you do make sound with a computer, you have entered an exciting world where it's arguably possible to make any sound we are capable of hearing. Where to begin? It's natural that the environments people have built for harnessing all this power look like the technology they are based on: component-based systems where simple building blocks are connected to make larger components, and so on. This kind of approach has been used by every music synthesis language or environment that has ever been made, as far as I am aware. It makes sense when you don't have much computing power, or you do want to express musical ideas in terms of algorithms.
But physical instruments are not algorithms. We don't send commands to them, we play them, using vibrating surfaces to exchange information with them more subtly than symbols can. With the amount of computing power available today, it's possible to make fantastic new computer instruments that are more like physical objects than programs, expressive enough to be worth learning.
This has been a Madrona Labs mini-essay. Thanks to M-Goldie on Gearslutz.com for asking the question.
Think of Aalto's synthesizer and its UI as two different things. They are actually two completely separate pieces of code---when you have Logic's generic view running, for example, you are not running the Aalto interface at all.
The values you see in the XML are the ones stored in the synthesizer, that Aalto is really using. The values you see in the interface are rounded so you can manipulate them easily. But Aalto saves the internal values.
This may get confusing because of floating-point vs. decimal inaccuracies. Most decimal values do not have an exact floating-point representation. 1.01 for example is 1.009999... in floating point.
There shouldn't be a lot of rules to set up-- every parameter has a minimum and a maximum value, just make a random value somewhere in between and you should be fine. Again they are all floating-point internally, it's just that the display is different to make the UI most useful for each parameter.
The LFO has no sync. but the SEQUENCER does. so, you can draw any wave you want with any number of steps and use that as LFO. each step is one 16th note. So, you can draw your quarters, halfs, etc. and more complex shapes.
Thanks for the sad ducks. very complex changes in this patch!
Well that's a super cool idea!
You could also use Aalto inside of Max/MSP using the audiounit~ object. Some other folks are doing this, and I hear it works, within reason. This way you could make a Max patch that did the randomizing.
I hope other people will have more ideas, there are a lot of ways to do this.
The patch connections format is just as simple as it looks. No surprises.
Hey Seth, these are sick. I mean sick not as in "sick, brah", but in the sense of being deranged or unwell. Perhaps they might find use in a Pigeon Funk composition?
It might be cool to be able to patch any signal to Aalto's output. This is something to think about, maybe for Aalto 2.
Aaaargh. OK, this may be related to other audio stoppage bugs people are seeing. Must fix this as soon as I am done with the current problem, I'll be in touch.
Thanks for keeping in touch. I'm doing some overhauling related to the Windows work now-- will look at this issue soon.
The stream of continuously modulated data you refer to is a signal inside the plugin, generated by adding the osc_pitch value to the LFO signal. How would you propose to get access to it outside of the plugin?
If I made a fully modular environment, I could see using Jack or something to transmit these signals to other applications. But I can't imagine many people wanting to do this with Aalto.
That's definitely possible - it might go away though!
coarse / fine knobs implemented for the next release BTW.
I'll announce the Win beta here first. I will definitely make another video when I need a break from developing!
I've been wrapped up in Windows work here but I think I know what this problem is. If I'm right I'll post an update in a day or so.
Hi, right now February is my best guess. It could take longer but I hope not.
OK, let me see about making a debugging version that will help. Please stay tuned.
With Aalto 1.1, you can copy and paste patches as text. this makes it really easy to share your creations via email, or any forums you like.
So, I made a thread in the software forum for sharing patches. Hopefully it will fill up with weird and wonderful sounds. I'll try to do my part.
To start off I added this dizi patch. The dizi is a Chinese flute with a membrane that gives a characteristic soulful buzzing sound.
(It's not possible yet to embed Soundcloud objects in the forum itself, but I'll work on that soon.)
Yup, it uses an instrument-appropriate Chinese scale. Would love to hear this patch with a wind controller...
Aalto has a different approach to avoiding aliasing than most softsynths. Oversampling is only one piece of the puzzle. I could make a kind of "draft mode" that did not do oversampling, but it would not sound as good. On the other hand there's lots of work I can do still to make it run faster with the sounds the way they are. So while there's room to improve there I'll focus on that.
So it's only the vertical sliders in the sequencer that are acting weird?
First: be nice! This is not a place for namecalling, whether directed at me or anyone else.
Second, you have no idea what you are talking about. Think about it for a minute. Of course, if I could wave my magic wand and make the Windows version be done today, so I could ship it and make some money, I would do it. Unfortunately, it takes hard work. If you really want to know anything about the development process, ask me.
Sorry to hear about your trouble. I just checked out automation in Logic 9 and touch mode seems to be working.
I have my older laptop running 10.5. When I get a chance I will try the 10.5 / Logic 8 combination.
Thanks for sharing. Some description of what's in the packages might help people decide if they want to download or not.
I'm still working on it, but sorry, no news. Have a happy holiday anyway!
Thanks for writing and sharing some of your history! I am very happy that some Buchla users have responded well to Aalto, and find it can complement a hardware setup.
Aalto does use CPU when it's not playing notes. The free-running oscillators are always going so that you can just turn up the gate level, for example, to make a drone. I will be doing some optimizations to get the CPU use down while keeping the benefits of this setup.
Hi lapsi, Can you get it to it happen often? If so, I would love to send you a debugging version so I can find out where audio is stopping.
Hi, what do you mean by user presets library? Like the SoundsDivine ones we have, but more people for example?
I will add to the presets again for the next release. In the meantime keep a look out for patches to copy and paste in the patch forum right here!
Evolving tense waltz time sequence from Aalto. The two envelopes are triggered using the sequencer's regular and delayed outputs to give a variety of note shapes.
Aalto: Valse mechanique by Randy AKA Caro
<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"/>
cool, thanks for sharing!
It pains me for you to have to go back to 1.0... one thing I might try before that is copying the channel strip containing Aalto from your working project.
I'm pretty sure none of the audio matters, so you can just send the non-working project with an Aalto instance loaded and that's all. When you have time.