Re: Midish and its clock source

From: Alexandre Ratchov <alex_at_caoua.org>
Date: Sun May 30 2010 - 21:05:53 CEST
On Sat, May 29, 2010 at 05:44:58PM +0200, Julien Claassen wrote:
> Hello everyone!
>   It seems today I'll be bothering everyone. But strangeness and
> frustrating silence is happening all over the place.
>   I've got an application that is supposed to send MIDI clock
> pulses, based on the JACK audio transport control system. The theory
> being: If I start my audio recroder, I'll get MIDI start and a midi
> clock which is synced to the audio clock in jack, which is
> supposedly VERY accurate.

Out of curiousity, what it's this application?

>   Only trouble is, it doesn't seem to work. Yet because of all the
> intermediate connections it is dificult to say exactly where it goes
> wrong.
>   So here's the setup (including JACKMIDI ports):
> JACKMIDI:clock -> JACKMIDI:bridge_port
>   The bridge_port should pipe it all to ALSA sequencer:
> port 129:0 -> midish (dev 2)
>   In rmidish:
> >dclkrx 2
>   Now there are some questions:
> 1. Shall I press "p" before starting the audio client so midish is
> waiting for the start or is midish automatically waiting for
> connections?

yes, If you press ``p'', midish starts waiting until the
clock master starts. Then it starts following the midi
master's clock ticks.

> 
> 2. with the description "MIDI clock pulses being emitted" shall I
> use a different function:

dclkrx is the right function for MIDI clock. I.e. to sync
midish to a midi clock master.

> dmtcrx? Or something completely different?
>   I'm getting frustrated, because everything seems logical and in
> order, but nothing won't give. :-)

dmtcrx is for MTC, not MIDI clock.  MTC is MIDI Time Code,
which is to sync midish to audio.

>   I tried the other way around, with midish's clock (mmc)
> controlling JACK. My audio recorder started just fine. but when
> recording several seperate tracks, in several goes, I have an
> UNBELIEVABLE drift! :-( the result was quite far from being synced.
> :-)

MMC is yet another thing: it's MIDI machine control.
Basically this is to use midish to emmit MMC
start/stop/relocate messages. This makes sense only
if the other program can send MTC (MIDI time code)
back, so midish can stay in sync.

>   Can someone suggest routes to go? Small steps to try along the
> way? The only constraint is: I can only use commandline tools.

There are two options:

1. MMC/MTC

In this case midish manages the time structure of the song,
and the audio player/recorder just follows what midish is
doing.  Basically midish sends MMC start/stop/relocate
messages and the audio program sends back MTC for midish to
stay in sync.

This is the most appropriate for MIDI-to-audio synchronization.


2. MIDI clock

This is to make work two sequencers or alike together. Both
should have a copy of the time structure of the song (ie the
tempo track). The first sends start/stop messages and clock
ticks, and the second follows. Midish can act either as
master or as slave.

This is the most appropriate for MIDI-to-MIDI

-- Alexandre
Received on Sun, 30 May 2010 21:05:53 +0200

This archive was generated by hypermail 2.1.8 : Wed Nov 08 2017 - 16:32:22 CET