MATRIXSYNTH: Ultimate Amstrad CPC MIDI Sound & MIDI Interface Card

Wednesday, June 02, 2021

Ultimate Amstrad CPC MIDI Sound & MIDI Interface Card

This one is in via Michael Wessel who has been featured on the site previously.

"I am bulding a GM MIDI sound + interface card for the Amstrad CPC, using the STM32 BluePill microcontroller (well, it's really a System on a Chip...), an S2 Waveblaster from Serdashop, and the Adafruit MIDI Featherwing. Also the CPC itself is turned into a MIDI instrument, as shown here (3voice polyphonic CPC sound chip sound; it responds to the NOTE ON / NOTE OFF messages, using its internal AY-3-8912 soundchip). The S2 is also playing along:

Ultimate Amstrad CPC MIDI Sound & MIDI Interface Card - MIDI IN Demo

video by Michael Wessel

"The firmware of the Blue Pill & S2-based MIDI Sound & MIDI Interface Card for the CPC is now able to receive incoming MIDI message over the MIDI IN input and present / relay it to the CPC via (input) ports &FBEE and &FBFE. That latter indicates that a MIDI byte has been received and waiting to be fetched from the input buffer via INP(&FBEE). I am demoing a simple CPC MIDI synthesizer here - incoming MIDI NOTE ON / OFF messages are being played back by the CPC sound chip (AY-3-8912). MIDI Data is received over MIDI IN from a PC MIDI USB interface."

S2 playback only, using more complex MIDs (Canyon.mid and Descent2), without the CPC playing along:

Creating the ultimate MIDI Sound Card for the Amstrad CPC

"As shown in the video, the S2 on board can get its MIDI input either directly from the MIDI IN DIN socket ("MIDI SOFT THRU" via Blue Pill firmware), or from the CPC over the expansion port, and I can merge both MIDI stream 'on the fly'.

We are also working on a MIDI Realtime Sequencer (Record + Playback at the same time) for the CPC, and a MID file player for the CPC. Currently, the MID songs are being "streamed" from the PC over a MIDI USB Cable into the MIDI DIN socket of the board, and then into the Blue Pill and into the S2.

The idea is to make a "lazy engineering" kind of expansion board for the CPC. The final PCB will just have three sockets - one for the BluePill, one for the S2 Waveblaster, one for the Adafruit MIDI Featherwing module (optional for folks that want a real MIDI Interface on their CPC - if you just use it as a GM Soundcard, there is no need for MIDI DIN sockets of course). In addition, I will only need one chip on that board - an address decoder. This is necessary because the Blu Pill does not have enough 5V-compatible GPIOs to do the address decoding. Everything else is done in software - the 72 MHz Blue Pill is fast enough to respond to the IOREAD and IOWRITE requests from the CPC using Interupt Handlers. No extra circuitry / glue logic (flip flops, bus drivers, ...) is required for that.

Cheers, all the best,


1 comment:


Patch n Tweak

© Matrixsynth - All posts are presented here for informative, historical and educative purposes as applicable within fair use.
MATRIXSYNTH is supported by affiliate links that use cookies to track clickthroughs and sales. See the privacy policy for details.