On Monday, 23 April 2007 12:37, Vince Negri wrote:
> "is there a risk that (when using RG
> in conjuction with
> an external recorder) RG always goes into record mode when you record
> on the external
> recorder? You want start/stop/position to be in lockstep
> but not necessarily all-or-nothing record. (That is, it makes perfect
> sense for the external recorder to be recording live instruments while
> RG is merely playing along in sync, not recording.)"

Your point is a legitimate one. We need to address this scenario, and I think 
that we centainly can. With a bit of work. We needed to extend the current  
implementation, adding support for the MMC channel (or ID) mechanism. See  
references 1, 2 and 3.

Every device sending/responding to MIDI Machine Control messages may have an  
unique ID number in the MIDI network. The MMC slaves only recognize the MMC  
commands matching their own ID, or equal to the broadcast ID (0x7f). It is 
possible to have two (or more) devices set to the same ID number. What this 
means is that both devices always respond to the same MIDI Machine Control  
messages with that ID number. There is no limit as to how many individual ID 
numbers a given device can respond to (there are 126 channels).

We need to include in Rosegarden a configuration option to allow the user to 
specify an ID for send and receive MMC commands. To give complete  
flexibility, we should allow for each master MMC command a different ID,  
including the option to send the bradcast ID. Idem for receiving commands: 
allow the user to specify a different ID for each command, with the option to 
recognize or not the broadcast ID. To summarise:

                               Master        Slave
MMC Command                    common id=??  common id=??
------------------------------+-------------+------------------+
0x01 Stop                      id=??         id=?? / bcast[y/n]
0x02 Play                      id=??         id=?? / bcast[y/n]
0x03 Deferred Play             id=??         id=?? / bcast[y/n]
0x04 Fast Forward              id=??         id=?? / bcast[y/n]
0x05 Rewind                    id=??         id=?? / bcast[y/n]
0x06 Record Strobe (Punch In)  id=??         id=?? / bcast[y/n]
0x07 Record Exit (Punch out)   id=??         id=?? / bcast[y/n]
0x09 Pause                     id=??         id=?? / bcast[y/n]

References
[1] http://www.borg.com/~jglatt/tech/mmc.htm
[2] http://en.wikipedia.org/wiki/MIDI_Machine_Control
[3] http://www.midi.org/about-midi/specshome.shtml

Regards,
Pedro

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to