mailto: blog -at- heyrick -dot- eu

RISC OS MIDI - reading MIDI data

Still can't get any joy on the Beagle; however for those using the Pi, I have updated MIDItest.
  • Bugfix - sounds stop correctly now.
  • PolyKeypress treated differently to Note On.
  • Noted BPM is in 4:4.
  • Output is colourised:
    • System Exclusive and System General (Time Code, Position Ptr) messages are in Magenta.
    • Single byte commands (Clock tick, Active Sense…) are in Cyan.
    • Note On is in Green EXCEPT when Velocity=0 which means it is a Note Off.
    • Poly Keypress is in Dark Green.
    • Note Off is in Red.
    • Controller Messages (Volume, Sustain, etc) are in Yellow.
    • Program Messages (change active voice) are in Cream.
    • Anything else (Channel Pressure, PitchBend, etc) are in (default) White. (about 5KiB)

MIDItest on a RaspberryPi; now in colour! [looks crappy due to composite video]


RISC OS MIDI - playback

One of the quirks of the Beagle was that while reading MIDI data failed, data could be transmitted to a MIDI device.
Keyboard display
The display on my keyboard while playing "Fanfare" via MIDI.

Now old-time RISC OS users may know that there used to be Acorn-built MIDI hardware for the Archimedes. Either a multi-port podule, or an option on the big full-width User I/O podule. To this end, if MIDI was available, then the !Maestro program can be used to play to MIDI devices.

This got my brain ticking.

It was quite easy to convert Maestro to work with USBMIDI. Internally, Maestro fires a bunch of notes at once, working bar-by-bar, and using the Sound_QSchedule SWI to queue the MIDI calls for dispatch at the correct time. So what I did was to open the MIDI output endpoint in Maestro, and then write a fake module that provides a single SWI. The SWI is &16F00 (not registered!) that accepts MIDI module parameters along with a file handle. The file handle is the endpoint file. My module pulls apart the MIDI module data and reformats it into a USBMIDI packet, which is then block-written to the file handle. This causes it to be transmitted to the MIDI device.

Sounds more complicated than it is.

The modified program, plus full sources to all the bits (Maestro is under Castle/ROOL licence, and the MIDIhack module is EUPL) is here:

Maestro; grab from HD video


Here is my video of Maestro on a Beagleboard xM playing the fanfare demonstration tune:

Craig Lynch, on the ROOL forum, used a RaspberryPi to play the Shostakovich demo on his Electone to raise Maestro to new heights of awesome:

Craig said the arrangement is:
I had the top stave played in the upper with piano, strings and a violin for a lead.
I had the bottom stave played by the lower and pedals with piano and a organ bass, set quite low on those.

If anybody else plugs RISC OS into a musical instrument, do get in touch (here or the ROOL forum) to say what you've done!


Your comments:

Please note that while I check this page every so often, I am not able to control what users write; therefore I disclaim all liability for unpleasant and/or infringing and/or defamatory material. Undesired content will be removed as soon as it is noticed. By leaving a comment, you agree not to post material that is illegal or in bad taste, and you should be aware that the time and your IP address are both recorded, should it be necessary to find out who you are. Oh, and don't bother trying to inline HTML. I'm not that stupid! ☺ ADDING COMMENTS DOES NOT WORK IF READING TRANSLATED VERSIONS.
You can now follow comment additions with the comment RSS feed. This is distinct from the b.log RSS feed, so you can subscribe to one or both as you wish.

No comments yet...

Add a comment (v0.11) [help?] . . . try the comment feed!
Your name
Your email (optional)
Validation Are you real? Please type 11111 backwards.
Your comment
French flagSpanish flagJapanese flag
«   March 2013   »

(Felicity? Marte? Find out!)

Last 5 entries

List all b.log entries

Return to the site index



Search Rick's b.log!

PS: Don't try to be clever.
It's a simple substring match.


Last read at 13:56 on 2024/06/15.

QR code

Valid HTML 4.01 Transitional
Valid CSS
Valid RSS 2.0


© 2013 Rick Murray
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted.
RIPA notice: No consent is given for interception of page transmission.


Have you noticed the watermarks on pictures?
Next entry - 2013/03/03
Return to top of page