~~HEADLINE NUMBERING FIRST LEVEL = 3~~ ====== Sending Timecode from Reaper to Titan on another PC ====== This is an example of how to use Reaper - a much more powerful DAW (digital audio workstation) than Winamp - to send timecode to Titan, assuming both are installed on two separate PCs. MIDI is being sent over network using rtpMIDI. {{youtube>vbNgHAKaeXg}} ---- ===== Prerequisites ===== - of course both computers need to be networked and configured properly (same network mask, correct IP addresses etc.) - Titan PC-Suite, from v12 on (External AvoKey or T2 required - T1 or Editor Avokey does not work) - rtpMIDI (see [[external:software_list|]], to route the MIDI signal from one computer to the other - Reaper (see [[external:software_list|]]) - you may consider using the [[https://forum.cockos.com/showthread.php?t=43606|vVIMTC plugin for Reaper]] in order to have timecode also when stopped or paused ===== Make it run ===== ==== - rtpMIDI ==== This needs to installed on both machines. rtpMIDI provides a virtual MIDI port which is then bein forwarded over the network to other participants of this session. There is a compact tutorial provided at the rtpMIDI website. Usually setting this up is as easy as checking the session is enabled in both machines, and both see each other. The two pictures show the setup which was used in the a.m. youtube video - SB-HP is the laptop running Titan while rtp1 is the session on the laptop running Reaper. |{{:external:examples:rtpmidi_sbhp.png?300|}}\\ rtpMIDI on the computer running Titan|{{:external:examples:rtpmidi_acer.png?300|}}\\ rtpMIDI on the computer running Reaper| **I found that Titan is allergic to MIDI ports being added or removed while Titan is running. The safest route is, after installing and configuring rtpMIDI, to __completely restart the computer which runs Titan__.** ==== - Titan PC Suite ==== In order to initially watch the timecode open a timecode workspace window (e.g. Timecode 1) and select MIDI as timecode source. {{:external:examples:timecode_window.png|}} ==== - Reaper ==== Launch Reaper. Load a track if you want (not required for this to function). However here are the steps to configure Reaper correctly: === - Enable MIDI Output === In the Options menu select Preferences - this opens the preferences window. Find ''MIDI devices'' in the Audio section. This should list the virtual MIDI port you created in rtpMIDI as MIDI output: {{:external:examples:reaper_rtp1.png|}} Right-click on the port in the output section and either tick ''Enable output'' from the menu... {{:external:examples:reaper_rtp2.png|}} ... or select ''Configure output...'' and make the settings there: {{:external:examples:reaper_rtp3.png|}} Confirm the settings with ''OK'' to close the preferences window. === - Insert Timecode Generator === Rewind the timeline to 0:00:00 (simply press ). From the Insert menu select ''SMPTE LTC/MTC Timecode Generator''. This inserts this generator as new track. {{:external:examples:reaper_rtp4.png|}} If you had already inserted an audio track then probably the timecode track was inserted on the same track. Simply click, drag and drop it onto a new track: {{:external:examples:reaper_rtp5.png|}} Also, it's a good idea to bring the timecode track (at least) to the same length like the music: {{:external:examples:reaper_rtp6.png|}} === - Adjust Timecode Generator === Right-click on the new timecode track, and from the context menu select Item properties: {{:external:examples:reaper_rtp7.png|}} (or, with the timecode track selected hit ''F2''). This opens the Media Item Properties window: {{:external:examples:reaper_rtp8.png|}} If you want then you can change length, position and other details. In any case you need to make sure it is MTC (MIDI timecode): click on the ''Properties'' button (at the bottom). In the new little window set the properties to ''Send MIDI (MTC)'': {{:external:examples:reaper_rtp9.png|}} Confirm/close both windows by clicking ''OK''. === - Route the MTC signal === This button slightly depends from your reaper version: In Reaper v5, click on the routing button in the track controls (left to the timecode track): {{:external:examples:routing_1.png|}} In Reaper v6, right-click on the volume knob ov the timecode track. This opens the routing window for this track. Under MIDI Hardware Output (top-right) select your virtual MIDI port: {{:external:examples:reaper_rtp10.png|}} Close the routing window. ==== - Try it out ==== Essentially this should work straight away: as soon as you hit ''Play'' in Reaper, the timecode value in Titan starts to run. It is advisable to change the time units in Reaper: right-click on the timeline or the displayed time, and from the context menu select ''Hours:Minutes:Seconds:Frames''. This also works together with Reaper being controlled by Titan via MMC, like described in [[external:examples:reaper_mmc_on_same_pc|]] {{:external:examples:reaper_rtp11.png|}} You can now use this as timecode source to sync cuelists to music coming from Reaper. I noticed a gap between the timestamps in Reaper and in Titan. This seems to be due to both, Reaper, as well as Titan/USB Expert, and needs to be investigated further. Also, Reaper doesn't generate timecode when being stopped or paused. There is a little [[https://forum.cockos.com/showthread.php?t=43606|plugin available called vVIMTC]] which circumvents this: * download the plugin from https://forum.cockos.com/showthread.php?t=43606 or from here {{ :external:examples:vvimtc_generator.txt |}} * on your Reaper computer, copy this file to %appdata%\REAPER\Effects * in Reaper, disable (Mute) the previously added timecode track * add a new empty track * on tjhis track, add the effect ''JS vVIMTC Generator'', add its properties (framerate etc.) * route this track's MIDI output to your virtual port as decribed above * record/arm this track Now, the timecode sent is accurate also when reaper is stopped or paused. ==== - How to debug ==== If things do not work as expected then there are some tools which help finding the fault: === - loopMIDI === You may route the signal via loopMIDI as explained in [[external:examples:reaper_timecode_on_same_pc|]]. Please install loopMIDI and apply the correct settings in Reaper. Also, in this case rtpMIDI needs to be told to take its input from loopMIDI: {{:external:examples:reaper_rtp12.png|}} loopMIDI shows the number of transmitted data. This number increases with every command, note or message. With timecode, this number increases continuously and rather fast. {{:external:examples:debug_loopmidi.png|}} === - USB Expert Console === Open the USB Expert Console. This must show your virtual MIDI port as connected panel (top-left). Select the ''MIDI'' tab top-right, click ''Watch MIDI'', in the MIDI watcher window select MIDI Input and Raw MIDI. Now, as you send a command, it is shown in the MIDI watcher, with continuously incoming data like this: {{:external:examples:reaper_rtp14.png?500|}} Additionally, on the Timecode tab (top-right), you should see the real timecode values running: {{:external:examples:reaper_rtp15.png?500|}} === - MIDI-OX === Another great tool for fault finding (but also for fault generating) is MIDI-OX. One of the things you should be aware of is that it may take the MIDI signal and doesn't forward it unless told to do so - you may see proper MIDI messages and wonder why nothing is passed on, and as soon as you close MIDI-OX, suddenly everything works flawlessly. You have been warned... (Thus, usually use this together with loopMIDI in order to tap into the signal) Install and launch MIDI-OX (see [[external:software_list|]]. From the Options menu select ''MIDI Devices''. Make sure loopMIDI Port is listed as MIDI Input but isn't mapped to any output (yes, you can create a feedback loop, and yes, you do not want to do this...) {{:external:examples:debug_midiox_1.png|}} From the View menu select ''Input Monitor...''. In this window, all incoming MIDI data are shown. You will see the cpntinuous stream of MTC Quarter Freame messages: {{:external:examples:debug_timecode_midiox.png|}}