User Forum    :: Powered by YaBB
  « MIDI-OX User Forum - MIDI Sync & Timecode Control »
Welcome, Guest. Please Login or Register.
May 3rd, 2025, 8:04pm


Home Home Help Help Search Search Members Members Login Login Register Register


   MIDI-OX User Forum
   MIDI-OX
   Wish List
(Moderator: Jamie OConnell)
   MIDI Sync & Timecode Control
« Previous topic | Next topic »
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print
   Author  Topic: MIDI Sync & Timecode Control  (Read 5029 times)
KGMonarch
New Member
*




udd-ss! udd-ss! udd-ss! udd-ss!

   
Email

Gender: male
Posts: 5
MIDI Sync & Timecode Control
« on: May 29th, 2002, 2:49pm »
Quote Quote Modify Modify

Hey,
 
Midi-OX rocks! One suggestion:
 
Many MIDI sequencing programs have the ability to accept MIDI Sync from a MIDI channel and it's very useful for running multiple programs simultaneously in perfect sync.
 
I noticed that MIDI-OX has a Sync Generator, and this is quite functional, but I wish to be able to control it through my Peavey PC1600x. Is there some way you can allow for MIDI controls to be mapped to the Sync and MTC generators so I can use Midi strings to start/stop/rewind/seek/fastforward through my compositions?  
 
Many hardware MIDI controllers (and some MIDI keyboards) have big jogdials/datawheels which would be ideal for this purpose.
 
Thanks!
IP Logged
Jamie OConnell
Administrator
*****






   
WWW Email

Gender: male
Posts: 2027
Re: MIDI Sync & Timecode Control
« Reply #1 on: May 30th, 2002, 3:41am »
Quote Quote Modify Modify

Maybe we could do something in this area.  Just curious, but what messages does the Peavey PC1600x generate when you twist the jog wheel?
 
MTC Mapping would be fairly difficult since the actual time is encoded as part of the message.  You could map MTC full locator messages today because they're implemented as a SysEx message. For instance, to position the transport to time 00:01:03:17, in 30 drop frame format, you'd send "F0 7F 7F 01 01 40 01 03 11 F7".  But without the regular quarter frame messages, you couldn't really sync.
 
MIDI Sync is more feasible, plus MIDI-OX allows you to generate clock sync even when the transport is at rest. As an experiment, open the MIDI Sync transport and click on "[x] Send Clock".  Now open the SysEx view and enter the following lines:
 

  FA
  FC
  FB
  F2 23 00

 
Highlight the 1st line (FA), and choose "Command Window | Send scratchpad".  This issues a MIDI Sync "start" command, and the transport should start rolling.  Now highlight the 2nd line (FC) and "Send Scratchpad".  This isues a stop command and the transport stops.  Without touching the transport, highlight "FB" and "Send Scratchpad".  A "continue" is issued and the transport starts rolling from where it stopped.
 
The 4th line is a "Song Position Pointer" message.  Highlight and send it.  The transport will move to "18:03:000" (if you're in a timebase of 120BPM).  This message has different meanings depending on timebase.
 
I offer these experiments as demonstrations of what might be accomplished by mapping simple "System Common" MIDI messages.
IP Logged

--Jamie
Music is its own reward.

KGMonarch
New Member
*




udd-ss! udd-ss! udd-ss! udd-ss!

   
Email

Gender: male
Posts: 5
Re: MIDI Sync & Timecode Control
« Reply #2 on: May 30th, 2002, 11:41am »
Quote Quote Modify Modify

Okay, the Peavey 1600x datawheel can be linked to any of the 16 faders and 2 CV inputs -- or the last fader moved.
 
Any fader or CV input can be instructed to send
 
- continuous controller events on any channel
- to act as a master fader (which would affect multiple faders as you move one fader to send one or more MIDI strings simultaneously)
- arbitrary strings. These can come in many forms, but the most simple would be something like:
 
A0 24 pr
 
(My Midi knowledge is a bit rusty) This would send a Key ON event on C3, Channel 1. "pr" would be replaced with the value the slider happened to be set to. So this way, if you set the fader's minimum value to 0 and set its maximum to 127, then sliding the fader from the bottom to the top would generate a series of MIDI strings looking like:
 
A0 24 00
A0 24 01
A0 24 02
...
...
...
A0 24 7D
A0 24 7E
A0 24 7F
 
Basically a whole whack of Key ON's on C3 with the velocity climbing as you slide the fader to the top. Strings can also contain multiple "pr"s So you could do something like:
 
A0 pr pr
 
Any "pr"s would be replaced with the slider's value.
The minimum and maximum values on a PC1600x fader can be set to values from -32767 to +32767 (I think... It goes into the five-digits (base 10) for sure)
 
I'll try your suggestion at home tonight though. I remember finding those transport strings in my PC1600x manual, but I was hoping for the ability to seek forward/backwards a frame at a time by twirling the jog dial. Kinda like in a video-editing suite.
 
I used another program called NeatTools which allows you to map MIDI messages (and joysticks and keyboards and mice and other HIDs) to control the mouse pointer, send key commands, and control other devices. I set one of my PC 1600x faders to send C3 Note ONs on Channel 1. I set the fader to have a minimum value of 1 and a maximum of 2, and then linked the Data Wheel to the slider. The slider's value was linked to the velocity parameter of the Note ON events.
 
So what happens is that when you dial the wheel clockwise, it generates:
 
A0 24 02
 
And when you dial the wheel counterclockwise, it generates:
 
A0 24 01
 
I programmed NeatTools to generate Left Keyboard presses on my computer keyboard when it recieved A0 24 01 events and Right presses on A0 24 02 events. I could control my Quicktime video player frame-by-frame through the jogdial because pressing Left and Right on your computer keyboard would step through frame-by-frame. It was pretty slick, and now I'm looking for ways to do it for all my music programs which accept MIDI sync messages.
 
Anyways, thanks for your time, and I hope this gives you an idea as to what I wish to accomplish. Good luck!
IP Logged
KGMonarch
New Member
*




udd-ss! udd-ss! udd-ss! udd-ss!

   
Email

Gender: male
Posts: 5
Re: MIDI Sync & Timecode Control
« Reply #3 on: May 30th, 2002, 11:46am »
Quote Quote Modify Modify

Oh, one more thingy...
 
I think that programs like Reason and Rebirth and Cubase all take MIDI sync, and not MTC (but I think Cubase might, being rather versatile.)
 
So, I guess that means if you plan to implement this, to do it for MIDI sync and not MTC (which is difficult, as you mentioned earlier)
IP Logged
KGMonarch
New Member
*




udd-ss! udd-ss! udd-ss! udd-ss!

   
Email

Gender: male
Posts: 5
Re: MIDI Sync & Timecode Control
« Reply #4 on: May 31st, 2002, 10:24am »
Quote Quote Modify Modify

Okay...
 
So I tried out what you mentioned (kind of...)
 
I assigned one of the buttons on my PC1600x to send "FA" and another one to send "FC". I then opened up the Midi Sync Transport and activated "Send Clock".
 
I could start and stop the Midi Sync Transport with the buttons!
 
As an experiment, I fired up Cubase, and then Reason as a ReWire slave. Cubase was instructed to sync with the MIDI clock through a MIDI Yoke input. Okay... START! The transport on Cubase started rolling! Cool! But what's this? I hear Reason playing back my song and the notes and beats sound like they need major Quantizing. Ooh wretched!
 
Okay, so then I set Midi-OX to "Send Midi Sync and MTC concurrently". I also turn off "Send Clock" (which became important otherwise nothing changes) Then I instruct Cubase to recieve its timebase from MTC. Much better. Right on the dot, in fact. I cannot, however, start the Midi Sync Transport through the buttons on my PC1600x, though... I have to manually press the buttons on the Midi Sync Transport. Furthermore, I cannot use the "go forward/backward one measure".
 
Okay, so things worked a bit here and there, some things didn't, but what was important was that the experiments proved that it is at least in some way possible to do what I wish to accomplish. I was also able to send Song Position Pointer messages to jump around to parts of the song, but I don't wish to use this as a realtime control. Sysex commands may be too complex and flood the channel if used excessively in rapid succession. (actually so would any overly complex MIDI string)
 
Is there any other tests that I could run for you? My PC 1600x can send practically any MIDI string you can dream up and can be assigned to any button or fader. One alternative to the PC1600x would be the Kenton Control Freak line of MIDI controllers. Good luck!
IP Logged
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print

« Previous topic | Next topic »


MIDI-OX User Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.