locking seq to master tempo

davidestevens's icon

I have a [seq] in my patch into which I'm loading midi files containing chord sequences (1 chord per quarter note; 120bpm), which I want to play back at the master tempo set in my patch. And I'm having a hard time translating the "tick" help into something that works. How does 24 ticks/quarter note at 120bpm translate into the correct arguments for [metro]? Maybe obvious, but I'm failing to get my head around it.
So at the moment I have a [metro 128n] banging [tick] to the seq. I don't think this is right - the sequence (1 chord change every bar (4 beats) is changing every _6_ beats. And I don't understand what I'm trying to do well enough that I can make sense of it!
Any help gratefully received!

schlam's icon

I don't use [seq] but maybe here [translate] and [transport] are your friend.

davidestevens's icon

Thanks - [translate] gives me a note value of 64n for metro (which is already locked to transport). (24 ticks -> 64n). But that is giving me a chord change (which in the midi file is every bar) on every 6 beats. That’s the bit I can’t get my head around! Thanks for the suggestions though.

tyler mazaika's icon

Tricky. I think the "tick" message to [seq] and the "ticks" notevalue type used by translate and metro etc. are not the same.

I don't use [seq], but the [seq] documentation for "tick" message says:

In order to play the sequence at its original recorded tempo, seq must receive 48 tick messages per second

This sounds like a tempo-independent rate (as it is explicity per-second) linked with the MIDI recorded. So maybe sending more than 48 "tick" messages per second will make the recording faster, and fewer than 48 will playback slower.

If I understand this correctly, you'd want 1000ms / 48 ---> [translate ms ticks] which would give you an interval for [metro] of 20 ticks if your current tempo is 120 bpm.

Thought of in a purely notevalues ticks world: a quarter note always has 480 ticks (regardless of tempo), and so 480 ticks / 24 = 20. And the 64n you used above would be 30 ticks. The 20:30 ratio would be the same as the 4-beat : 6-beat thing you're encountering.

Source Audio's icon

tick message to seq is exactly same interval as midi clock.

Max Patch
Copy patch and select New From Clipboard in Max.

if we are talking about ticks in terms of
1/4 note = 480, midi clock is 24 x per 1/4note
then 1 clock = 20 ticks
0r 1/96 of whole note

96n in that case = does not exist as notevalue
metro 20 ticks should do, but i prefer old good metro in ms

I wonder how many times this was asked and answered on the forum

davidestevens's icon

> I don't use [seq],
Normally, neither do I, which is partly why I’m having trouble getting my head around it.
48 ticks/sec makes each tick 20.833 ms long and (tries it out) I thought metro only accepted integer values, but it seems that floats work too. So I guess the next thing is to see if it’ll stay enough in sync with the master transport or the patch (my guess is no, but maybe I i can force a resync every 8 bars or so.). Or maybe figure out a way of achieving the same thing (tempo locked chord changes) using Colls, and use text files instead of midi files.

davidestevens's icon

@sourceaudio thanks for the patch. I was getting closer, and had most of that except for the tempo to metro conversion bit. I'll try that and see if it stays in sync enough, but I'm beginning to think that for the particular thing I'm trying to do I'm going to ditch seq. I originally used midi files as I thought it would make it easier for users (ie primary teachers mostly) to create new sequences, but I'm now thinking that a text file loaded into Coll would be easier.

>I wonder how many times this was asked and answered on the forum

a fair few pages, but in the first couple (after which I lost interest) there wan't anything that useful for me.

Source Audio's icon

if you want to use master transport, then simply use metro 20 ticks synced to it.
or use transport object and use raw ticks to drive seq.
It would be even possible to reposition seq same as one would do using midi clock
and song position pointer.
Using ms based coll and chords in index lines, would also be my prefered approach.
What I refuse to use is that transport stuff.
You would have to drop it anyway for ms based coll
and use metro-counter combo for flexible tempo.
and yes , metro can run sub ms intervals
if tempo 120 = 1ms, you scale 120-240 1. 2.
and 60 - 120 2. 1. for tempos 60 - 240

Source Audio's icon

here is a patch I use to import text based SEQ midi files into coll

added player too

Max Patch
Copy patch and select New From Clipboard in Max.