USB MIDI module
Pages: 1 2
Ed Smale (7762) 6 posts |
Although I raised an issue with latency initially, after playing with it over the past month I’ve realised that it isn’t a problem in practice (for me at least). I’m going to use the setup for live performances, and my concern was the time between a note being received, and being able transmit a corresponding note. To test, I was using an ARM code loop that was just calling MIDI_RxCommand, and retransmitting any events via MIDI_TxCommand. I was getting latency between zero and 30ms, whereas my old A4000 setup had no discernable latency when tested in the same way. However, once I add in all the other instruments and so on it really isn’t noticeable. Or maybe I’ve just got used to it… either way it’s not a problem. Here are some minor issues I found: 1) When I boot up the mini.m, then load the MIDI module (by double-clicking the module file), it only half works – it can transmit notes but does not receive input. i.e. MIDI_TxCommand works, but MIDI_RxCommand always returns zero. I have a workaround for this though: when the computer has started up, I disconnect the USB MIDI interface, THEN load the module, and then reconnect the USB MIDI interface. Then it works perfectly. 2) One part of my program transmits some sysex data to disable ‘master effects’ on the sound module I’m using. It does this for each of the 16 channels in turn, and for each channel it transmits 14 bytes using MIDI_TxByte. For example, for the first channel it transmits 240,65,16,0,0,100,18,25,0,48,51,0,4,247. This worked on the A4000, but on the mini.m it crashes with ‘Internal error: abort on data transfer at &FC1E52D4 at line -2’ and the WIMP environment is broken when I go back to the desktop. 3) My MIDI controller keyboard has a row of buttons to change the instrument, e.g. Piano, Organ etc. If I press any of these whilst a program is listening via MIDI_RxCommand, I get an abort on data transfer error. I’m not sure what the MIDI controller transmits exactly when I press these buttons – probably a load of effects parameters as well as the voice change. I don’t actually need to use the buttons anyway; it is more that I might press one by mistake. Fortunately my MIDI controller lets me disable these buttons. The only problematic one is (2), but it’s only a small problem. It just prevents me from using certain sounds on my sound module, but it’s a small subset. But none of these are show-stopping, it’s working very reliably otherwise, and I’ve been using it very intensively over the past month or so! Thanks for the source code – I’ll have a look at that. I’ve no experience in this kind of code, but maybe I can glean something from it. Or even have a go at modifying it (I’ll be sure to find out what is meant by the ‘Versions’ file if so!) Cheers :) |
Pages: 1 2