The DijonStock Digital Home Recording Support Forum

*** USER REGISTRATION DISABLED! FOR ACCESS TO THE BOARD, MAIL TO registration AT dijonstock DOT com. THANK YOU ***
It is currently Wed Sep 20, 2017 12:36 am

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Wed Mar 14, 2007 2:59 am 
Offline
Mr. Electonica Dude
User avatar

Joined: Wed Jul 14, 2004 1:48 am
Posts: 11452
Location: Godly Taxas
Favourite food: Frog Legs
Machine type: AW4416
[url=http://forum.dijonstock.com/viewtopic.php?t=5709&highlight=linking]The Birdz Session guys really had me thinkin the last few days about how some of you including myself have had less then stellar latency issues with the midi connections provided by Yamaha.
[/url]

Soo.....I cracked the books and came up with some things I didn't know about midi syncing other devices.

The midi things we have kicked around so far have dealt with midi standards for musical instruments , sequencers , etc. There is a dark side of midi as well. It deals with mainly musical production and recording.

We outa dive off into MMC for awhile. Yep good 'ole Midi Machine Control ! Usually MMC controls one or more devices at once. From some shocking things I have learned about MMC , we have been going at it all wrong. The 16G manual does not even hint of MMC's advantages and limitations.

OK the basics in the wiring. The "controller" device should have as many midi in ports as devices controlled. The reason for this is so the controller
can communicate DIRECTLY to each device without using a merge box. What's a merge box ? Simply the opposite of a THRU box. It combines midi inputs so a device can get messages combined from each unit. Why no merge box ? Because of the delays (latency) involved which we will discuss a bit later. Also it's not recommended (but not impossible) to have two or more controllers. Why ? again? Well for one the controller could receive a message from a device not intended for it. MMC's powerful error handling of midi messages could and most likely would cause conflict. Also communication between master and slave can be undirectional (midi out to midi in) or bidirectional (midi out "master" midi in "slave" midi out "slave" to midi in "master") When the controller is turned on it expects to communicate bidirectionally. If a command is transmitted and no response is given in two seconds , the controller assumes unidirectional communication. (one way) . Some will machines continue to establish two way communication even though one direction is established.

Any ideas where we're goin? Go get a cup , I sure need one.

Handshaking is the way two midi devices begin communicating. Fortunately there are only two words in this dictionary. Wait and Resume .
They are responsible for regulating the flow of data between the devices. To actually work , the handshaking needs to have a large enough buffer (memory), A certain amount of time can pass when a device sends a Wait command (when the buffer is full) or response and the time when no more messages arrive. OK say device A allows a period of 10 m/secs that it's buffer is full. During this same time a maximum length MMC message is sent with the maximum length of 53 bytes. Doing the deeper math here , Device A has to wait 52 x .32 m/secs if all is engineered properly.
All this has to happen before the wait command is sent. Meanwhile Device B allows a period of 10 m/secs (remember?) to figure out if a Wait command or a response has arrived. Now device B starts sending a MMC message (again maximum 53 x .32 m/secs in a perfect world) to be able it interrupt the transmissions. Also Device B has to wait for the Resume command or a response before it can go on "talking".

In the real world more than 50 m/secs have gone by from the Wait command or response and the acquisition of this message by Device B.
These are the kinds of delays that merge boxes can amplify. The one guy is getting the others' mail and they wanna talk about it.

One word ........latency.


msg

_________________
THE MUSIC IS DOWN IN HERE
____________________________________________________

Good judgment comes from experience, and a lot of that comes from bad judgment.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 14, 2007 3:49 am 
Offline
The Reverend
User avatar

Joined: Mon Jan 30, 2006 7:45 am
Posts: 4047
Location: dusty border town
Favourite food: cheddar-lol
Machine type: AW16G
nice work...I gotta headache.

_________________
it's funny, the older you get, the older you wanna be


Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 25, 2007 1:59 am 
Offline
Professor Emeritus of BovineCompostology
User avatar

Joined: Mon Aug 23, 2004 9:46 pm
Posts: 418
Location: Great Falls, MI
Machine type: AW16G
Quote:
The Birdz Session guys really had me thinkin


I think the way to go here is to use sequencing software and some sort of midi patchbay (as opposed to a merge box). In this way, you can use the sysex code on p.207 of the G manual programmed into the sequencer to start/stop recording on both devices simultaneously. It won't completely ameliorate the latency issue but, all latencies should be equal.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 25, 2007 2:44 am 
Offline
Mr. Electonica Dude
User avatar

Joined: Wed Jul 14, 2004 1:48 am
Posts: 11452
Location: Godly Taxas
Favourite food: Frog Legs
Machine type: AW4416
You are absolutely right Mr.Bill , thats exactly how it's done.

Thanks for keeping me honest.

:D

_________________
THE MUSIC IS DOWN IN HERE
____________________________________________________

Good judgment comes from experience, and a lot of that comes from bad judgment.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: Bing [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group