Thursday, December 9, 2010

AMS File Utility for Ableton Live

I've finally gotten around to posting about my AMS file Utility for Ableton Live. It lets you create endless harmonic oscillators in Simpler and Sampler. It also lets you export microtonal and/or traditionally tuned zones using your own custom waveform shape. It's a little easier in Sampler because it gets the key mapping from the files themselves (just drag a bunch onto the zone editor) while Simpler makes you work for it with racks, but it's not too bad to get going since the key mapping is appended to the file name.

Using BaseNote with an offset multiplier of 1 will export a sequence of Western tuned oscillators. Using BaseFreq and any offset factor will export a sequence of equally tempered notes. You can experiment with BaseNote + Offset values very close to 1 in multiplier mode for creeping notes... or negative values for negative scales.

According to Fourier, any periodic waveform can be described by the sum of several sines of different amplitudes. The AMS File Utility gives you 24 harmonics to mold together to come up with a custom shape (the AMS specification actually gives you a lot more). Typically, you'd want a strong (loud) fundamental (harmonic 1). That's a pure sine wave. By adding or subtracting higher order harmonics you can impart different timbres on your instrument. In theory you can get very close approximations to square, saw, triangle, ramp and everything in between by tweaking individual oscillators.

There's 2 parts of The AMS File Utility. The top part lets you shape and tune a custom oscillator waveform. The bottom lets you export a series of these oscillators auto offsetting the tuning and auto-incrementing the key mapping. This was the tedious process I was trying to get rid of. You could always make these files in notepad but it sucked and you had no idea what the shape looked like. A side effect of having complete control of each oscillator and key mapping is that you're no longer constricted to the western scale inter-note relationship. You can use equal tempered notes, Pythagorean harmonies (perfectly integer divisible frequencies... all the rage up till the middle ages), or whatever you want.

Even if you just want a traditionally tuned instrument, you'd be better off by exporting a sequence and mapping each one. An AMS will sound the best at the frequency it was created for. If you drop an AMS on simpler and let it auto-map all over the keyboard, it sounds weirder the further you get from the defined AMS point. I think it has to do with aliasing and key drift... what happens when you loop 1 oscillator faster and faster (that may be B.S... call me out if you know better) .

I think of Ableton Live as one giant semi-modular synth and having your own custom wave shapes increases it's worth. Most other synths lock you into their pre-defined shapes. Hopefully this tool will allow you to explore new sounds.

As far as the code goes, the spec was already defined by the fine folks at Ableton. AMS is a text file format, usable only in Ableton Live. You can read more about the file format and download sample packs at the covert ops website.

The trickiest bit was the display. It's just a picture box that I hacked some trig onto to sum the sines and draw the resulting lines with GDI+. The rest is just a matter of writing out text files. If there is interest, I will post the code.

Download, unzip and have fun!


  1. its an ".exe" file, not available for mac?

  2. In January 2001 the American Psychiatric Association was already warning the general public} about Internet gambling. In a public health advisory, it famous that because of|as a outcome of} on-line websites usually are not regulated, no measures have been being taken to stop underage gamblers from 카지노사이트.online collaborating. It thought-about youngsters and teenagers, who already play non-gambling games on the Internet, at vital risk of being lured to gambling websites. It also famous that few safeguards were in place to make sure the fairness of the Internet games or to determine exactly who had responsibility for operating them.