Close

MIDI IN Working now!

A project log for LambdaSpeak 3

A Modern and Vintage Speech Synthesizer, PCM Sample Player, Drumcomputer, Real Time Clock, and Serial Interface for the Amstrad CPC

michael-wesselMichael Wessel 08/08/2019 at 05:200 Comments

MIDI IN is working! 

Here is a demo of MIDI IN working, using a simple "CPC MIDI IN Synthesizer" program that I have written in MAXAM Z80 assembler; sorry for poor keyboard playing abilities (I usually play the Guitar):

Note that the synthesizer (Akai Miniak) is only used as a MIDI controller / keyboard, and that the sound is coming from the GI AY-3-8912 sound chip in the Amstrad CPC. The chip supports 3 channels of polyphony and noise and (amplitude and tone) envelopes.

As you can see, latency is pretty low on the CPC side! It really requires a machine code program to get latency low enough though - BASIC is definitely too slow. For MIDI OUT, BASIC is sufficient. It was fun to write some Z80 code again - last time I did that was > 30 years ago.

Next, I will add 3 channel polyphony, velocity, and program change support to the CPC Synthesizer program. Stay tuned for updates. At this point, this is only CPC / Z80 programming though; the LambdaSpeak 3 firmware seems to be pretty final and stable by now, and the ATMega is almost full, so there isn't much space left.

You can find the MAXAM assembler source code of the "CPC MIDI IN Synthesizer" on the LS300.DSK on the LambdaSpeak 3 Github page. It also requires the latest firmware because I had to add a special UART / Serial Interface mode that allows "real time scanning and monitoring" of incoming Serial / MIDI Messages. 

Discussions