Ugly automation

vojko v's icon

Hi, I want to record movements of a cycle~ oscillator from M4L into the automation lane in Ableton, but I get these ugly low resolution curves and not even close to sine waves that I expected. Is there any way to get a more precise higher-resolution representation?

This is what is happening in M4L device:

Roman Thilenius's icon

welcome to a world with no scheduler thread.^^

11OLSEN's icon

I think the automation is not supposed to be this fast. It's for human input not for osc signal. that's why they gave you live.remote, to have a direct connection to the parameter which accepts signal rate. You're expecting to much of a UI element. But I totally understand that you want to record smooth automation waveforms.

vojko v's icon

maybe so.

there was a hidden option in Live 9 that could control the amount of breakpoints recorded, but they deleted it in Live 10 :(

11OLSEN's icon

You're hitting audio rate with 80Hz. So use an audio track to record and use an envelope follower kind of approach. Even there you can start to complain that it looks like stairs if you zoom in.

Roman Thilenius's icon


from https://cycling74.com/forums/massive-cpu-spikes-when-controlling-vst-with-m4l:

"As a reference for the maximum rate of MIDI message automation, most sequencers have a temporal resolution of 480 divisions for every quarter-note."

{ god mode on }

i have no idea what live does here or if he maybe uses a wrong attempt.

but proper DAWs should record midi with 1920, and recording VST parameter automation data with an 1ms clock should not be cropped to irregular values at irregular time intervals and in only 7 per cycle like seen above. (p.s.: not even with vs 64 it should look like that!)

this is how a 80 Hz cosine automation looks like in cubase VST from 1999, after recording from a max-made VST:

80 Hz at a rate of 1 ms means 12.5 values per oscillator cycle - and that is exactly what you see here.

be good, be green

pluggo the man (what was his name again?)


Roman Thilenius's icon


within max4live (i.e. from one device to another) the new audio routing options offer you a variety of ways how to record audio and use it later to control something, but when you want to control a VST i am afraid you must be careful with data rate and modulation speed (or maybe also try to free up as much CPU as you can while creating the modulation data.) (use create a number-LFO without MSP)

Roman Thilenius's icon


try this and show us the picture pls. ;)

#P window setfont "Sans Serif" 9.;
#P flonum 118 321 56 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 118 242 193 9109513 expr ((cos((4*asin(1)) * ($f1)))+1.)*0.5;
#P newex 174 110 50 9109513 f;
#P newex 190 189 59 9109513 pack 1. 0.;
#P newex 69 169 59 9109513 t b 0.;
#P newex 118 209 56 9109513 line 0.;
#P comment 349 59 44 9109513 1000 Hz;
#P newex 26 76 50 9109513 i 1;
#P toggle 26 114 15 0;
#P comment 304 59 44 9109513 12.5 Hz;
#P message 304 92 33 9109513 80.;
#P message 259 92 33 9109513 50.;
#P message 350 92 33 9109513 1.;
#P newex 26 44 50 9109513 loadbang;
#P newex 69 130 64 9109513 metro 1.;
#P comment 259 59 44 9109513 20 Hz;
#P connect 2 0 8 0;
#P connect 8 0 7 0;
#P connect 7 0 1 0;
#P connect 1 0 11 0;
#P connect 11 1 10 0;
#P connect 12 0 10 0;
#P connect 10 0 14 0;
#P connect 14 0 15 0;
#P connect 13 0 1 1;
#P connect 3 0 13 0;
#P connect 5 0 13 0;
#P connect 4 0 13 0;
#P connect 11 0 12 0;
#P connect 13 0 12 1;
#P window clipboard copycount 16;

hey ableton, i am a little LFO, do you want to be my friend?

vojko v's icon

Here I tested your LFO

and 1000Hz is just a straight line

Anyway, I found out that if you raise Ableton's sample rate to 96000Hz the curves are just fine.

vojko v's icon

Even if you raise the samplerate to 96000khz it works sometimes and on other times not. completely confused by this

Roman Thilenius's icon


at least it is more regular now. :)

so it seems to be bound to the vectorsize?

but it is strange that the faster one has 5 values per cycle and the slower one 6 values per cycle. it looks a bit like live would introduce a form of slew limiting where 2 different values might have the same or similar time position, but not a third one.

vojko v's icon

have no idea what is it bound to. sometimes the curves are better if M4L device is open for editing and I remake the cycle object, but then it crashes Ableton after a half of minute of recording.

With your method it is regular but still far from expected.

The long term idea for all of this was to put a vocal track through fzero~ and record pitch frequency to an ableton automation lane to control a synth and to be able to edit the pitch in different ways, and the whole sine wave thing was for me to check the precision of the recording of auzomation. but looks like im stuck on step 0 already :)