MIDI Cable Эмуляция программного обеспечения полосы пропускания?

223
user3125996

У меня довольно странный вопрос, связанный с MIDI.

Поэтому всякий раз, когда я посылаю МНОГО MIDI-данных / нот через мой USB-MIDI-интерфейс на мое пианино, MIDI-интерфейс превышает полосу пропускания и заставляет песню замедляться, а затем набирать скорость, когда на интерфейс отправляется меньше нот. Я могу это заметить только по индикатору состояния на интерфейсе и по медленной / захватывающей песне на моей клавиатуре, и никак не могу это уловить.

Итак, мой вопрос: есть ли способ имитировать пропускную способность MIDI-кабеля и выводить результаты в измененной копии MIDI-файла или через MIDI Out?

0
Какова ваша настоящая цель? Чтобы предотвратить эти эффекты, не превышайте указанную пропускную способность 3125 байт / с. CL. 9 лет назад 0
Похоже, что это больше о характеристиках MIDI и MIDI модулей, а не о том, что конкретно связано с программным или аппаратным обеспечением ПК. Вероятно, он должен пойти сюда: http://music.stackexchange.com/questions/tagged/midi LawrenceC 9 лет назад 0

1 ответ на вопрос

0
Tetsujin

Having done this for a living for many years - without any way to actually measure the data stream…
MIDI transmission is serial, so you need to just line up all the data in such a way as it arrives at its destination in roughly the right order, avoiding bottlenecking. The only way to workaround your issue is to stagger the transmission, or stop quantising everything.

Most MIDI 'modules' will prioritise channel 10, as that's traditionally the drum channel.
After that, it will prioritise from 1 - 16.

So the first thing to do is order your channels by how important it is they play exactly on-beat. Anything with a slow attack, slide it all 4 or more ticks early or late, the slower the attack the more ticks you can get away with.

You can do this in such a way as the overall 'groove' is actually better when everything is 'out of time' than when it is quantised, because of the bottlenecking.

Another trick is to move all controller data away from significant beats - it's rare you need to be anything like as precise with controllers as you do with notes.

Thirdly - if you send any kind of patch changes or sysex etc, keep them right out of the way too. If you send an entire setup for all 16 channels at the head of the track, give it a bar of its own at the head of the track to give the machine plenty of time to process it before any notes start.

Additionally - make sure your setup is set to use Running Status [though I doubt anything these days would not be using it by default] Running Status will reduce the amount of data transmitted, by not repeating anything that can be 'assumed to still be valid'.

Just as an example - this track was done using just 16 MIDI channels, played 'live' to the device, with no apparent slowdown. It was done as a product demo for the company I used to work for. There is no external processing or manipulation, the audio was recorded straight from the device's stereo output.
[Track takes a while to get to the groove itself, data peaks start around 45s when the orch comes in & get heavier as the track runs, with brief respite in the drop section]

https://soundcloud.com/graham-lee-15/ohmss-orig-propellerheads-used-with-permission-mu100-demo