hei @jasonw22,
this is just an absolute shot in the dark (as i have no real clue of jsui), but maybe the [techno~] helpfile (and its js) can give you a hint in a direction you could head.

2 Likes

This thread is right up my alley. In fact, exploring something similar (and finding it hard) is what lead me to try and do this in Live which lead me to ask some (possibly relevant) questions here:

Any reason not to record into Live automation curves? Why not do it in the DAW?

How would you recommend going about this? Wouldn’t it require MIDI translation? Seems like a low fidelity way to go.

What you’re describing sound like a curve fitting / optimization problem. As far as I know, nothing exists in Max that can do this out of the box. It would be awesome though.

2 Likes

Knowing it doesn’t exist yet is helpful. It seems like a worthwhile project.

I’m not sure how the Live API works but I wouldn’t expect you’d have to go through a MIDI translation (but maybe @ithkaa, @chapelierfou or another M4L guru could chime in). All of that said, I’m not sure this can be done out of the box but my gut says it would be easier to figure out how to map OSC to automation breakpoints/curves in M4L than build up all the UI around editing curves provided in Max.

A couple of questions:

  1. I’m assuming this is for recording arc gestures?
  2. do you want to audition recorded gestures “live” as applied to whatever parameter they’re affecting or is it sufficient to capture a stream of events and then edit/apply them?

I’d like to avoid any translation. A voltage level is just a number. Seems like it should absolutely feasible to stay in the CV realm.

The idea is to record/edit/playback ANY CV. From any source.

:thumbsup: That sounds awesome. Color me interested! When you say CV what’s your source? I guess I was assuming we’d be talking OSC messages but it sounds like you’ve got something else in mind?

Any luck with mapulator?

control voltages coming in from ES-6 or ES-8.

Just wrote that a couple hours ago. I don’t have Max on my work computer. It’ll have to wait until later in the week (have some netlabel stuff to do when I get home tonight).

Why reinvent the wheel? Just use live clips if you have them there already.
I think silent way has a direct cv device that could be automated. Not sure about m4l… but seems trivial

I really don’t know how Live got into this. There are no clips. Not necessarily any use of Live at all. I merely showed a screenshot of a Live automation curve to make it clear what user experience I was looking to create in Max.

My bad. My head has been in Live and I saw your screenshot and jumped to a hasty conclusion. It also has the benefit of supporting a bunch of what you’re after out of the box. That said, if it’s off the table, so be it! (And sorry for the derail.)

It doesn’t do what I’m after out of the box at all. Not with CV. This is a thread about hybrid modular systems (systems that use eurorack and in-the-box software in an integrated manner).

See this thread for more context.

The new “Studies” category was added to facilitate easier discovery of technical discussion of patching techniques (not necessarily just for hybrid systems, but that is what inspired it). Other uses for the category include things like

But with one thread per topic, rather than long meandering threads in which older topics get less useful as time goes on.

Ah crap, sorry. I somehow solely focused on the drawing part (which also could be done with function into line~ i think). Recording is a different story of course…

Edit: snapshot~ should do signal to float conversion.

1 Like

Jason, for complex curves and function generator kind of design in MAX, you might take a look at this (to be clear, it isn’t about CV recording though):

http://designingsound.org/2013/04/generating-complexity-in-max/

2 Likes

It would probably get convoluted pretty quickly, but you could possibly record CV and store it in a [buffer~] with [poke~], and then change/alter its output with [peek~] and [function]… it would be great to be able to record into a buffer and output that as a breakpoint envelope, but I don’t think that functionality exists.

Right, pretty sure it doesn’t exist. Just gathering advice about how I might create such a thing.

This link looks like a very good place to start to me.
The key thing here is that function has a curve mode - that should give the sort of functionality you are after I think.
Quote from the article:
Line mode allows only for linear connections between points, whereas curve mode allows for connecting lines to be curved. If in curve mode, lines can be manipulated into curves by alt-click-dragging the line.

It’s then about capturing the CV input from the ES module at an interval of your choosing and turning that into the appropriate format message to plot points on the function object. Obviously, resolution then becomes an issue - capturing once a second would give very different results to capturing every 50ms for example.

1 Like

I’m thinking you want to capture pretty frequently (like a small number of milliseconds) and then use curve fitting optimizations to reduce the number of handles required to reproduce the short-sample curve. Easier said than done!

2 Likes

As is often the case with Max!

I had a very quick go at proof of concept CV capture to function object.

cv capture.maxpat (11.0 KB)

2 Likes