< Back to IRCAM Forum

Mubu.play and interpolation

Hi there,

still digging MuBu. Very amazing framework.

Still trying to figure out if I have to use time-tagged (bpf) or wave tracks for holding my midi cc evolution (no record realtime, only stored and replayed)

As far as I understood:

  • bpf are time-tagged. If I put a point at (0,0) and another one at (1000,1), If I play it with mubu.play at speed 1., it gives me 0… then, after 1000ms, it gives 1. Is there a way to have an interpolation ? (I mean, not a line outside of mubu-play)
  • wave are not time-tagged and there is an inner sample rate, ok

If I understand it correctly, it means: if I wanted to have and interpolation between two points previously inserted, the only way would be wave type of track ?

I tried to insert one point at (0,0) and one at (1000, 0) in a not time-tagged track with a sample rate of 1000. I play it but it play 0, then 1. And yes, there is only two elements in my track.

How could I set up a MuBu container for getting my values interpolated if I fill my container with sporadic values (but correctly placed like: (0,0) (1000, 2.) (3000, 0.5) and it would interpolate between them all along my timeline from 0 to 3000) ?
Would I need wave ? bpf ?

Julien, the mubu data model (rows, columns, matrix, frame, track, buffer) should be explained in Matt’s first tutorial video.

I mentioned two ways to interpolate on playback in a previous answer.

tutorials/03.audio-and-bpf.maxpat and Matt’s patches should give some examples

Re-watching it.
Models understanding is ok, as far as I feel…
But I was more blurred by the fact we iMubu’s different displays.

A track CAN’T BE a midi score or whatever. A track contains data.
These data can be time-tagged or not. these data are in what we call frames and can be scalar or vectors or matrices.
AND considering these features, can be displayed on a way or on other ways.

Am I (almost) right ?

I’m sorry for the possible double same question.
Yes now it makes sense totally. mubu.play gives events (f time-tagged track, it gives “only” event which is totally what we expect for.

My question is, computer performances wise, what would be the most efficient way ?

  • phasor > snapshot > sample $1 to mubu.track (phasor frequency should be set up considering the track size to have something easily controlable and possibly normalized where 0 is the beginning of a track and 1. the end)
  • mubu.play > line (line ramp should, indeed, to be aware of the time in-between each events, possibly, the time would differ if I have breakpoint not equally spaced)

Again, @schwarz , thanks a lot for all words you wrote here :slight_smile:
It really helps us to understand the thing better.

you got it!

Both will be in the same order of magnitude. More important is to think about ease of use, power, and flexibility. E.g. sample will interpolate all columns and allow to scrub or restart anywhere.

BTW, mubu can load MIDI files and display them in pianoroll.

1 Like