Synchronisation via MIDI: Song Position Pointer oder was?

P

ps4074iclr

Guest
Ich möchte einen MIDI Sequenzer programmieren (dachte da an C++ und RtMidi), der als slave mit anderer Hardware synchronisiert werden kann. Um rauszufinden wie ich das zu machen habe, überfliege ich gerade die MIDI-Spezifikation, stehe aber total aufm Schlauch.

Offenbar krieg ich vom Master regelmäßig Song Position Pointer, aber wie sehen die genau aus? Also welche Bytes sind das?

Bin ich nur zu blöd zum lesen oder hab ich sogar was total falsch verstanden?
 
Ich würde mich für den Anfang nicht um Song Position Pointer kümmern, sondern nur die reine MIDI-Clock benutzen (Start/Sync/Stop/Continue).

Der Song Position Pointer ist nur dann interessant, wenn der Master stoppt und dann eine Positionsänderung kommuniziert werden soll.

Hier steht wie die Pointer funktionieren:

http://www.indiana.edu/~emusic/etext/MIDI/chapter3_MIDI8.shtml

(man muss da etwas byte-magic machen und aus den zwei Data-Bytes den Wert errechnen, aber wahrscheinlich wird das deine MIDI Library schon irgendwo unterstützen?)
 
ja, genau den mein ich - das wird von fast allen Geräten unterstützt und je nachdem was du genau vorhast (?) müsstest du dann halt "mitzählen" wieviele schon gesendet worden sind

neben dieser einfachen Clock gibt es dann aber auch noch MIDI Timecode, wenn man z.B. zu Frames synchronisieren will
 
Nächste Frage: Wenn das Timing Clock Signal alle Furz 24mal pro Viertelschlag gesendet wird - wieso muss man sich dann beim Synchronisieren trotzdem manuell darum kümmern, dass alle den gleichen Swing haben?
 
Es gibt zwei Möglichkeiten, zu swingen:

(A) die Clock selbst swingt (in dem sie die ungeraden Zählzeiten verzögert)
(B) jedes Gerät swingt selbst (in dem es die ungeraden Noten verzögert)

Ich finde (A) deutlich besser, und hab diesen Sommer sogar auch eine Swing-Clock gebaut :)

Fluxus Module.jpg


Wenn die Clock swingt, swingt einfach alles automatisch mit - bis zu den Step-Sequencern im Modular, die hängen bei mir auch über MIDI-To-Trigger dran... bei Fragen gern, im Grunde funktioniert der Swing ganz einfach in dem man alle "ungeraden" Ticks etwas verzögert sendet.
 
Beim drüber Nachdenken hab ich das Problem der swingenden Clock selbst erkannt: Wenn das Time Clock Signal jetzt alle 16tel käme, könnte man einfach jedes zweite Signal verzögern. Aber es kommt ja 4 mal pro 16tel. Da ergibt sich zwangsläufig die Frage, was man mit den 3 Schlägen zwischen den 16teln macht. Die Zeitabstände linear zu strecken bzw zu stauchen wäre erstmal das naheliegendste, aber ob das musikalisch Sinn macht, weis vmtl nur der Wind.
 
linear strecken funktioniert super - ich hab auch mit anderen Ansätzen experimentiert (z.B. kontinuierlich länger werden), aber linear hat sich für mich am natürlichsten angefühlt

witzige Rhythmen ergeben sich auch, wenn man die Clock in 8teln swingen lässt, aber 16tel spielt (dann sind immer zwei lang und zwei kurz)
 


News

Zurück
Oben