Recording Midi into a Midi sequencer

Lennard's icon

Lennard

10月 01 2024 | 11:44 午前

Hello,

I want to play on my midi keyboard and have the midi data recorded. Then I want to edit it (mainly quantize it), for example with live.step. My idea is, that I play in a different tempo when I record than what the sequencer is set to. So then, when I quantize it, the notes get moved around quite a lot (to fit into the new tempo) and that makes it sound interesting.

I dont really know, how I can do that. My idea was to record with [seq] and then to write it as a midi file. After that I would like to load it to live.step, and have it hopefully automatically quantized. But I wasn't able to load a midi file into live.step. Does someone know how to do that? Or is there maybe a different solution to my problem (one without using live.step)?

Any help would be greatly appreciated!

Greetings, Lennard

double_UG's icon

double_UG

10月 01 2024 | 12:16 午後

live.step is mono, so you can´t play 2 note at the same step. The is "detonate" object witch can play Midi Files, but is really old an strange (for me). And the is mtr, seq and seq~.

Source Audio's icon

Source Audio

10月 01 2024 | 12:18 午後

You can simplify that by disabling record quantisation,

ignore Live transport ( disable click)

and maybe run own metronome to keep timing to some tempo while recording ...

later you can quantise recorded notes to current live grid.

Lennard's icon

Lennard

10月 01 2024 | 12:48 午後

Thank you for your answers!

@DOUBLE_UG I will try out detonate, it seems to be possible to do it with that. If someone has a tip on how to do it, that would be great (it seems to be not that easy).

@SOURCE AUDIO are you talking about [live.step]? I can't find these options in there. Or are you talking about a different object or ableton live (I don't have that).

Source Audio's icon

Source Audio

10月 01 2024 | 1:10 午後

what is that live.step about ?

You want to record midi out of tempo and then quantize recorded notes

to whatever other tempo to make notes jump arround.

you can do that directly in live midi track without any length limits

and without any "object"

Lennard's icon

Lennard

10月 01 2024 | 1:18 午後

Oh sorry, I am talking about MaxMsp not ableton live. I didn't choose the right category when posting the topic.

Source Audio's icon

Source Audio

10月 01 2024 | 2:31 午後

seq records events using absolute time in ms.

it defaults to tempo 120 which can be changed.

if you record into it without any click or metronome,

and dump start times to some tempo/ to ms calculation,

you can quantise start times to different tempo

using quantize grid.

the key would be tempo-> ticks to ms to create quantize grid,

then run time values through modulo and divider to snap to closest

quantize point.

Have fun with it....

as alternative , you could just randomise start times to some extent.

probably it would produce similar result .

Lennard's icon

Lennard

10月 01 2024 | 6:32 午後

Thank you for your reply!

With "start times" you mean midi note on messages right? I don't know how to extraxt those from the seq object. Can you help me with that?

Lennard's icon

Lennard

10月 01 2024 | 9:27 午後

Hey,

I was able to dump and collect the start times using the detonate object. But I don‘t know how to convert these into ms. The midi file was recorded with seq at 120bpm (the default). If I understand correctly, the starting times should be ticks. So to calculate ticks to ms I would need to know how many ticks happen in a second, right? But how do I find that out?

double_UG's icon

double_UG

10月 02 2024 | 4:01 午前

look at the "translate" object.

Source Audio's icon

Source Audio

10月 02 2024 | 7:35 午前

store seq recording as text file and load it into text object for example.

you get all start times in ms directly.

detonate is more complicated, you have to chase event lengths

and then translate / quantize all of that.

Lennard's icon

Lennard

10月 03 2024 | 11:09 午前

Hey, thank you very much for your answers!

Now I have all the information from the seq object in a text file.

It looks like this:

320 144 48 47;

661 128 48 64;

986 144 55 49;

1216 128 55 64;

The starting times are the first number in each line. In order to quantize it, I would need to seperate the first number from each line. But since there are semicolons in the text, I can't get it to work with message boxes and zl objects. I can't filter out the semicolon with zl.filter. How do I get rid of the semicolons?

Basically, how do I get from a message containing "1; 2; 3;" to "1 2 3"?

Source Audio's icon

Source Audio

10月 03 2024 | 11:14 午前

You can use regexp to get rid of ;

Lennard's icon

Lennard

10月 03 2024 | 11:27 午前

I can't get it to work. I tried [regexp ";" substitute a], this doesn't work. Can you help me with that?

Source Audio's icon

Source Audio

10月 04 2024 | 7:37 午前

If you want to get rid of semicolon better use one of this:

but if you want to resave quantized file as midi text , then you need to keep or restore

semicolons.

......

There are many questions when one really thinks about it...

As first do you want to keep any midi standards in terms of sync,

file format etc ?

then ... do you want to keep note lengths or quantize/move them too ?

if you want to keep note lengths, (and then scale them when tempo changes)

detonate form ( start time - length of event) would be better.

One option would be to run seq using tick messages to fill chunks of quantized regions.

then trigger collected notes within quant. range running metro.

that could work without having to dump whole file and then modify start times.

.....

Or , you use coll for both recording and quantising, ignoring midi file format

P.S. your keyboard seems not to have release velocity.

Using 144 nn 0 instead of 128 nn 64 for note off

could make things easier to handle.

If you use coll instead of seq, then one does not need status byte at all,

only note / velocity pairs.