Selbst gebauter Sequencer - Wie generiere ich ein Midiclock Signal?

M
michaelk1
...
Hallo,

ich bin dabei einen eigenen Sequencer zu bauen, der auch eingehende Midi Nachrichten speichern/modifizieren kann.
Wie man die BPM aus der 0xf8 errechnet habe ich gefunden. Was ich jedoch suche, zum besseren Verstaendnis, ist eine Uebersicht, wieviel Ticks pro viertel Note existieren, wieviel Zeit eine viertel Note dauert usw. Ich finde da einiges, was fuer mich aber nicht schluessig ist.
Gibt es irgendwelche links, die mir weiterhelfen koennten?
Ich waere fuer jede Info sehr dankbar.

Vielen Dank im Voraus.

Gruss
michael
 
NickLimegrove
NickLimegrove
Flexiganer
Ich hatte vor kurzem einen Thread gestartet, in dem es um ganz ähnliche Sachen geht. Da könnte was für dich drin sein:

Wichtig zu verstehen ist v.a., dass im MIDI-Standard überhaupt kein Konzept von "Tempo" existiert. Es gibt halt diesen konstanten Strom von "0xF8"s -- was das Empfangsgerät daraus macht, steht auf einem anderen Blatt. Festgelegt ist nur, dass 24 dieser Ticks als Viertelnote gewertet werden (das war eine deiner Fragen, oder?). Wenn du auf Empfängerseite das aktuelle Tempo ermitteln willst, musst du also die Zeit messen, die zwischen zwei Ticks vergeht. Wenn da dann z.B. 20ms rauskommt, und du das mit 24 malnimmst, kommst du auf 480ms, was 125BPM entspricht (das war deine andere Frage, richtig?).

Das hier kennst du?
 
mm70
mm70
.....
Die Tempoangabe bpm bedeutet beats per minute und meint „Anzahl an Viertelnoten pro Minute“.
Wenn Du also ein Tempo von 100bpm hast bedeutet das, dass Du in 60 Sekunden 100 Viertelnoten hast. Damit dauert jede Viertelnote 60s/100 = 0,6 Sekunden. Midiclock bedeutet 24 Pulse pro Viertelnote -> damit dauert jeder Puls 0,6s/24 Sekunden...
 
glider
glider
|||
MIDI-Clock / Sync24 sind 24 PPQN (ticks bzw. pulses per quarter note), oft gibt es mindenstens 96PPQN interne Auflösung (zB Casio-RZ-1 und MPC3000 meine ich laufen in 96PPQN, aktuell sind es oft mindestens 960PPQN bei DAW's wie Cuebase, Reason etc.), mit 96PPQ lassen sich locker so Sachen wie shuffle/swing abbilden.

Since there are 24 MIDI Clocks in every quarter note, the length of a MIDI Clock (ie, time inbetween each MIDI Clock message) is the microsecond tempo divided by 24. ... you can relate this to your timebase (ie, PPQN clock). If you have 96 PPQN, then that means that a MIDI Clock byte must occur every 96 / 24 (ie, 4) PPQN clocks.

 
Zuletzt bearbeitet:
M
michaelk1
...
Vielen Dank,

also 1 Beat ist eine viertel Note
100 Viertelnoten pro 60s sind 100 bpm
1 viertel Note hat 24 Ticks(0xf8)
ergo bei 100bpm habe ich 2400 Ticks
60/bpm/24 ist der Abstand zwischen 2 0xf8

Korrekt?

Gruss
Michael
 
Zuletzt bearbeitet:
einseinsnull
einseinsnull
[nur noch musik]
wobei eben wirklich nicht die welt untergeht, wenn du dich dabei um den faktor 2 nach oben oder nach unter verrechnest.

den auch die "BPM" anzeigen in sende- und empfangsgerät sind ja mehr oder weniger willkürlich. wenn ich als user für mich festlege, dass prestissimio noch in halben noten notiert wird, dann ist das eben so.

um auszuchecken, was "richtig" ist, slaved man einfach mal eine DAW software zu dem, was man da generiert, dann wird man das schon merken.
 
einseinsnull
einseinsnull
[nur noch musik]
und priorisieren bitte... vor allem gegenüber channel messages.... falls das dein wasauchimmer das nicht sowieso macht.
 
M
michaelk1
...
und priorisieren bitte... vor allem gegenüber channel messages.... falls das dein wasauchimmer das nicht sowieso macht.
Mein wasauchimmer, so wie Du es nennst, wird von mir von Grund auf aufgebaut. So liegt es an mir was hinten rauskommt. Wenn ich also Midi Daten mitschneide, kann ich entscheiden, was rausgefiltert, bzw. durchgelassen wird. Das Ganze soll ohne Rechner auskommen.

Gruss
michael
 
einseinsnull
einseinsnull
[nur noch musik]
also selbstgemacht, das dachte ich mir.

ja, und wenn man da noch einen sequender hat, der noten ausgeben kann, dann empfiehlt es sich der clock ausgabe die höchste prio von allem zu zuweisen.

(bei selbstbau für den eigengebrauch wäre auch ein 2 ms predelay nicht die schlechteste idee. oder ein predelay, das sich automatisch anhand der BPM immer so einstellt, dass die clock ticks möglichst weit weg von der logischen 1 sind, das reduziert jitter. ;-) )
 
M
michaelk1
...
also selbstgemacht, das dachte ich mir.

ja, und wenn man da noch einen sequender hat, der noten ausgeben kann, dann empfiehlt es sich der clock ausgabe die höchste prio von allem zu zuweisen.

(bei selbstbau für den eigengebrauch wäre auch ein 2 ms predelay nicht die schlechteste idee. oder ein predelay, das sich automatisch anhand der BPM immer so einstellt, dass die clock ticks möglichst weit weg von der logischen 1 sind, das reduziert jitter. ;-) )
Das kann man ja bei den Presettings einbauen.
Was ich sehen konnte(beim Keystep Pro), kommen vor den ersten Noteon immer 2 0xf8. Das wiederholt sich immer wieder. Das ganze Projekt soll mehrere Sequenzen aufnehmen koennen(nacheinander oder parallel) und hinterher gleichzeitig oder einzeln abspielen koennen.
 
Zuletzt bearbeitet:
fanwander
fanwander
*****
Übrigens ganz wichtig: Clock läuft bitte die ganze Zeit durch. Ob ein angesteuertes Gerät mitspielt oder nicht bestimmen Start/Stop/Restart Messages - NICHT ob Clock läuft oder nicht!
Clock muss kontinuierlich laufen, da die meisten Clockslaves ihr eigenes Tempo ja aus dem eingehenden Clock hochrechnen, und nicht direkt von den Clock-Ticks getriggert werden. Wenn Du das Clock-Signal erst mit dem Startbefehl ausgeben würdest, dann wären die Slaves erst mal damit beschäftigt das richtige Tempo rauszukriegen, während sie eigentlich schon längst korrekt mitspielen sollten.
 
M
michaelk1
...
Eigentlich wollte ich nach dem Start nur noch 0xf8 senden und Start, Stop, Continue nur wenn es wirklich einen Grund gibt.
 

Similar threads

 


News

Oben