Old 02-10-2015, 07:23 AM   #1
Mink99
Human being with feelings
 
Mink99's Avatar
 
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
Default external midi, not in scope ?

So this might be my last attempt to draw some attention on those topics which are related to outbound midi...

During the last namm we saw a huge revival of analogue synthesizers. Korg was presenting a somehow shrinked arp odyssey, moog gave a great and well-recognized update on the sub37 (and also published some modular dream-machines) and sci reissued an up-to-date version of the prophet 5, along with many other companies .

Additionally the prices and attention on retro-gear rise more and more.

A common denominator of all those machines is the use of old fashioned midi.

When I started with Reaper, I used the typical combination of a lot of vst(i), some external gear (a microkorg) and that was all. Now, as i am moving more and more towards a hardware-based environment, I feel more and more uncomfortable with the features I get from reaper. Still, reaper is very good in processing audio, recording and mixing, even mastering, but there is always something - incomplete.

The initiator for this post was my attempt, to make an external midi sequencer running in a reaper environment. and, as I am not anyone who disappears when something is going wrong, but tries to support the process of finding a solution, I just summarized my thoughts and recommendations on this arera.

1.) outbound midi
Outbound midi is the process of sending midi-data to external gear. this may be notes, controller and other musical information, this may be various synchronisation features and this may be remote commands.

1.1) midi latency compensation
All these areas lack from the incapability of reaper, to have an appropriate latency compensation on midi.
the latency compensation is tied to the block size of the audio buffer. when this approach was chosen, it seemed feasible, because midi usually had lower latencies than audio. but due to the technical advantages of the last years, audio became faster and midi became slower. a midi event in reaper can only be sent after the according audio event. so the maximum latency that can be compensated for midi events is the audio latency. with modern audio equipment an audio latency of 2-3 msec is achievable, on midi you are still at higher rates. so there is always some msec delay in midi
you might ask are these "SOME" msec really important ? yes they are, if you try eg to clock an external drumbox or arpegiator / internal sequencer. om my environment (rme/motu) these some msec sum up to 11 in the standard reaper midi clock/spp mode. and that is a lot for a drum track.
--------
Suggestion :
decouple the midi clock from the audio clock, have both coupled to an independent master, so that midi latency compensation can be set independently.

1.2) setting up a track for recording an external instrument

to set up a track for recording an external instrument requires some more steps than with other tracks. for an audio track the output is automatically chosen (master or parent) , for a midi track this has to be done through a dialogue.

1.3) sending midi to more than one output

this requires serious routing exercises by creating one track per output and feeding those tracks from one track containing the midi data.
---------
suggestion:
make the output routing, audio and midi, part of the tcp, in a list where multiple elements can be selected

1.4) sending midi from more than one input, but not all

there are situation where you could use more than one input for a midi track. reaper currently lets you chose beween one and all. if you have for example a beatstep defined as input, and a mini and a master keyboard, you may want to chose either both keyboards or the sequencer, but not all of them if you need keyboard input.
----------
suggestion:
make the input routing for midi, part of the tcp, in a list where multiple elements can be selected

2.) inbound midi

while recording of midi data works quite well in reaper (under the odd latency conditions) reaper is ot working well under external synchronisation. in fact, recording audio or midi while running reaper as a slave does not work at all.
----------
Suggestion :
Fix


3.) Midi concepts vs Reaper concepts
several reaper tracks can point to one midi channel, each midi channel points to one midi port.
but each reaper track may contain elements that have an impact on several tracks.
one example : a track containing midi data contains three plugins : an arpeggiator a reacontrolmidi and a midi clock plugin (JH midi clock) .
... the results of the arpeggiator will only modify the content of the track
... the results of the reacontrolmidi will change all tracks, that point to the same midi channel on the same port
... the clock plugin will will change all tracks that point to the same port, regardless of the channel

this will lead to situations, where plugins override each other. or automation is applied where it should not be.
-------
suggestion
create a per project midi configuration map for input and output where

per port
per channel
--- whatever makes sense
latencies
modifying plugins
clock triggers like midi clock, midi time code
spp (separated from clock)
mmc
remote controls
can be applied.

within that post i have only mentioned the basic features of a midi environment. some issues on the editor other elements will be on a different stage.

A personal statement at the end. i am hopeful that this post will not disappear within the next hour from the "new posts" like so many other midi-related posts. i doubt that there are so few keyboard/synthesizer players here.

thank you
kris (that you know as mink)

Last edited by Mink99; 02-12-2015 at 12:39 AM.
Mink99 is offline   Reply With Quote
Old 02-10-2015, 02:42 PM   #2
4x4uk
Human being with feelings
 
4x4uk's Avatar
 
Join Date: Jan 2013
Location: Newcastle UK
Posts: 474
Default

cant comment on all you have said as I don't use reaper the same way as you. However I do agree 100% with you over clock timing issues with external hardware and midi routing of external hardware can be painstaking as can recording particularly where more than one piece of external midi gear is ionvolved
4x4uk is offline   Reply With Quote
Old 02-10-2015, 02:55 PM   #3
nightscope
Human being with feelings
 
nightscope's Avatar
 
Join Date: Sep 2007
Posts: 1,145
Default

Quote:
Originally Posted by Mink99 View Post
A common denominator of all those machines is the use of old fashioned midi.
The other common denominator is that they all use the even older fashioned CV/Gate. Sample accurate.

ns
nightscope is offline   Reply With Quote
Old 02-10-2015, 05:53 PM   #4
Mink99
Human being with feelings
 
Mink99's Avatar
 
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
Default

... Not to forget "Roland " sync, like on the 808
Mink99 is offline   Reply With Quote
Old 02-11-2015, 06:17 PM   #5
Dannii
Human being with feelings
 
Dannii's Avatar
 
Join Date: Mar 2010
Location: Adelaide, South Australia (originally from Geelong)
Posts: 5,598
Default

I'll do my part to try to keep this topic alive Mink. We share many of the same issues and have similar setups and workflows by the sounds of things. I too am using RME (Fireface UFX) and MOTU (MIDI Timepiece a/v) and have a hybrid setup with VSTi/analog hardware/MIDI hardware and the MIDI side of things in REAPER is the current weakest link.
Setting up REAPER to use TGT rather than QPC for MIDI has made the timing MUCH more stable but the issue of MIDI latency and lack of compensation needs addressing.
I'm with you on the other issues you've raised too.

Let's keep this alive and see if the devs chime in with the latest REAPER pre releases.
__________________
Dannii is offline   Reply With Quote
Old 02-12-2015, 01:39 AM   #6
Mink99
Human being with feelings
 
Mink99's Avatar
 
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
Default

Some explanations on the failed attempt of using an external sequencer:

The sequencer is a ketron mdr/16 midi sequencer , but the same problems would apply on any other sequencer, midipal, pyramid or whatever :

The routing (1. attempt)

Reaper is configured to send clock/spp to motu midi express 128 port 1.
Midi express sends the clock to the sequencer.
The sequencer sends midi notes to the midi express input X
Reaper reads input x into a track, that has midi output Y configured as "send midi to"
Midi output y is connected to an external synth
The external synth sends audio back to reaper to a second track.
This track is recorded by reaper.

On my system the latencies are :
Midi in : 4-5 msec (after compensation !)
Midi out : 4-5 msec
Audio in : 3-4 msec

The recorded audio was delayed by 15-17 msec. This results from two times midi out , clock (which adds additional delay on 5 msec) and routing, one time midi in, the sequencer, and a properly compensated audio track. 4+4+4+5

The routing (2. attempt)

Routing is similar, but instead of using the built in reaper midi clock I was using my derivate of the jh midi clock, the clock is only delayed by two msec instead of 9 with the default.

The result was a delay of 11 msec. 3+4+4
Still failed ...

The third attempt

Routing as first attempt , but reaper running as slave from an mpc on mtc.

The result was a delay between 11 and 33 msec, jitter . Even the midi from the sequencer was already far behind and jittery , the recorded notes being late between 1/16 and 1/8 .
Catastrophic failure....

The attempt nr 4.

Reaper is delivering midi clock by jh derivate to the sequencer.
The sequencer midi output is sent through a midi patchbay directly to the external Synthesizer.
Audio from the sequencer is recorded in reaper.

The result is a delay of 4-5 msec , no obvious jitter.
Not comfortable but rather acceptable...
Still unnecessary delay.
.................

I used the Synthesizer with the fastest internal midi processing for my tests (a kawai k4r, cross checked with alesis ion and e5000 ultra) , and it was a monophonic test sequence of pure 1/8 notes, no controller date.If we keep this in mind and that some other synthesizers add a serious amount of internal processing time, like cheap Roland multi timbral devices, it is obvious that there are problems in reaper midi processing.

Last edited by Mink99; 02-12-2015 at 01:44 AM.
Mink99 is offline   Reply With Quote
Old 02-12-2015, 09:10 AM   #7
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Another routing option would be to use the external sequencer as the master, sending MIDI clock to REAPER, running as a slave. However, REAPER doesn't even have an option to run as a slave to external MIDI clock signals - FR here.

(In fact, many software sequencers nowadays can't do this, and if they can, it's often implemented quite poorly.)
Quote:
Originally Posted by nightscope View Post
The other common denominator is that they all use the even older fashioned CV/Gate. Sample accurate.
Hah, touché.

Indeed, arguably the state-of-the-art nowadays for controlling analog synths using CV/gate from software sequencers, is to use (sample-accurate) plug-ins such as Volta or Silent Way.

However, many people still use hardware MIDI to CV/gate converters to use such devices, so the issue remains relevant.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 02-12-2015, 09:28 AM   #8
4x4uk
Human being with feelings
 
4x4uk's Avatar
 
Join Date: Jan 2013
Location: Newcastle UK
Posts: 474
Default

voted on the FR
4x4uk is offline   Reply With Quote
Old 02-13-2015, 05:45 AM   #9
Mink99
Human being with feelings
 
Mink99's Avatar
 
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
Default

Usually midi CV/Gate converters work in a predictive time (realtime)
USB Converters have problems
Mink99 is offline   Reply With Quote
Old 02-22-2015, 10:27 AM   #10
Mink99
Human being with feelings
 
Mink99's Avatar
 
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
Default

some Sesearch, mostly to visualise what is going wrong here:

I have recorded 6 tracks, with a very similar setup:

A MPC 2000 XL on one Midi port, A Solton MDR-16 sequencer (take a midipal or any other Hardware midi sequencer, no difference) on another midi port, both to receice various sync signals.

The MDR is connected to a midi cv converter (Dark link) to a synth. on the mdr a simple sequence of 1/8th notes is played.

The audio of the MPC and the Synth is then recorded.



The tracks are

1.) MPC synced through MTC , this is what I expect
2.) MDR synced through Reaper Clock on a low-latency port , this is not what I expect (8.7 msec)
2.) MDR synced through Reaper Clock standard , this is even worse (15.4 msec)
3.) MDR synced through JH Clock , this is not better (15.0 msec), 2 instances of JH Clock do not seem to work
4.) MPC unsynced, own clock
5.) MDR synced to MTC Clock , this is ok (2 msec) (sync was done by a shortcut in MIDI-OX)

as my audio latency is at 3.6 ms out, shifting the clock makes no difference.

------
nothing more to say .....
Attached Images
File Type: jpg Image1.jpg (58.9 KB, 1701 views)
Mink99 is offline   Reply With Quote
Old 02-22-2015, 10:30 AM   #11
Mink99
Human being with feelings
 
Mink99's Avatar
 
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
Default

this post immediately recieved a going down arrow in new posts. is there a macro in the bb software:
If topic .contains. "Midi" .reduce. visibility ?
Mink99 is offline   Reply With Quote
Old 02-22-2015, 11:41 AM   #12
4x4uk
Human being with feelings
 
4x4uk's Avatar
 
Join Date: Jan 2013
Location: Newcastle UK
Posts: 474
Default

I hope not
4x4uk is offline   Reply With Quote
Old 02-22-2015, 01:02 PM   #13
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by Mink99 View Post
this post immediately recieved a going down arrow in new posts. is there a macro in the bb software:
If topic .contains. "Midi" .reduce. visibility ?
If you mean this:



then don't worry, it just means that it's a thread that you have posted in yourself - "you" simly meaning "the user account that you are viewing the forum with, when logged in", not specifically "you, Mink99" - it happens to all of us.

Just think of it as a little helper function for figuring out which threads you may be especially interested in following, without having to subscribe or searching for "Find all posts by [your user account name].
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 02-22-2015, 02:31 PM   #14
Mink99
Human being with feelings
 
Mink99's Avatar
 
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
Default

Thanks
Mink99 is offline   Reply With Quote
Old 02-22-2015, 02:35 PM   #15
Mink99
Human being with feelings
 
Mink99's Avatar
 
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
Default

Did a crosscheck with studio one :

Mpc through mtc : 2 msec delay (this should not happen, but is still acceptable)
Sol sequencer : 28 msec delay ... This is even worse , as there is no midi compensation too.
Mink99 is offline   Reply With Quote
Old 11-02-2016, 09:09 AM   #16
Dannii
Human being with feelings
 
Dannii's Avatar
 
Join Date: Mar 2010
Location: Adelaide, South Australia (originally from Geelong)
Posts: 5,598
Default

There were some changes to MIDI clock in 5.27. It will be interesting to see if that made any improvement. Schwa replied to my question about that update here.... http://forum.cockos.com/showthread.php?t=183339
__________________
Dannii is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:36 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.