Pending the arrival of the SATA cables I installed Steinberg Cubasis VST 2.0 for Mac on the B&W 350. It's a Classic application I used with my tangerine iBook/300 or maybe my iceBook/600.
At the time I had a Roland SC-D70 Sound Canvas. Essentially it's a bit like two MT-32s stuck together, with more sounds; a proper GM sound set and, importantly, a USB interface, MIDI in/out And Audio In/Out. So, I could hook up my Ensoniq Halo (or other MIDI keyboard); do normal MIDI sequencing from Cubasis and then record the audio out from the synths to audio channels in Cubasis:
Noice!
So, I'm thinking that one of the possible applications for the B&W is to do the same. It's really interesting to note that although the G3/350 is a New World Mac that can run Panther pretty decently, when I kept checking out all the Mac OS X applications I had: iLife '05, iWork '06, GarageBand, iMovie 3 the specs are all way beyond what the G3 is supposed to deliver. That's a good correction for my perception of that transitional era of Mac, because I had imagined that it would be fine for doing some early movie editing or DAW. It's not really geared up for that (though I might use iMovie 3 with it just to see if it's possible. That version is at least non-destructive as an editor).
But Cubasis VST 2.0 will be fine. Now, onto the interesting bit. Early Macs of course had built-in serial ports which could use an external clock to generate an accurate MIDI baud rate. But New World Macs would use USB-Serial adapters.
Now I could buy an old 2x2 MIDI Man USB serial adapter (or an SC-D70 or SC-88 or something similar), but I also wondered if it's possible to use an actual USB serial port adapter?
Specifically I could buy an
Arduino Micro and upload this
USB-Serial Adapter firmware written in C. You don't need to use the Arduino Sketch language, you can just compile the 'C' and use
avrdude to upload it. The real cool thing would be if I could get an old enough version of AVR gcc to run on my B&W G3 along with avrdude so the whole thing could be done that way! Embedded development on an old G3 is one of my goals too.
The critical line is this:
UBRR1 = SERIAL_2X_UBBRVAL(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS);
Because, SERIAL_2X_UBBRVAL is just a macro that converts an absolute baud rate into the divider register value:
#define SERIAL_2X_UBBRVAL(Baud) ((((F_CPU / 8) + (Baud / 2)) / (Baud)) - 1)
Which means that
CDCInterfaceInfo->State.LineEncoding.BaudRateBPS is an absolute baud rate, which means that it can be 31250; which means that it could be treated as an actual MIDI interface (I'd strap an adapted MIDI shield to the Arduino Micro).
This gives me most of the requirements: a 5V MCU which can do USB to MIDI; suitable firmware; a means of compiling it; suitable hardware and a MIDI-oriented application. The only thing I'm missing at this point is a suitable Mac OS 9 USB serial driver that can be seen as a MIDI port to Cubasis.
And that's the question, is such a thing possible? Could early USB Mac sequencers simply treat a USB serial port as a MIDI interface? It's quite an interesting challenge to write that in and of itself.
But note, and this is probably the most comical thing. Look how complex this whole chain of development is compared with developing a MIDI interface in 1983! All you needed then would be, for example, a hardware serial port or a parallel port (such as a VIA) hooked up to an astoundingly simple ACIA 6850.
The ACIA only had 4 baud rates and a single buffer byte, but driving it from a 1MHz clock nicely leads to 31250 as one of the baud rates. It's almost as if Sequential Circuits, Roland and Yamaha were familiar with that specific chip (otherwise they could have just chosen 38400 baud) ;-) !