One more #RolandMT32 song, as a treat. The intro to #Sierra's Space Quest 3.
MPU-401AT, MT-32, and an AWE64, all direct capture.
I'm super happy with my new setup!
Also, this song absolutely slaps.
One more #RolandMT32 song, as a treat. The intro to #Sierra's Space Quest 3.
MPU-401AT, MT-32, and an AWE64, all direct capture.
I'm super happy with my new setup!
Also, this song absolutely slaps.
Good morning. I am waking up to find some MIDI issue in one of my 86Box machines. It seems 86Box broke or changed something with a recent code update.
Took me a few minutes to figure this out. The Soundblaster 16 is now set to an MPU-401 address of 0x300, while 0x330 is still being used by the Roland MT-32 emulation. Windows 3.1 is satisfied using the 0x300 address after I changed its settings to use it, while DOS games like "The Secret of Monkey Island" are still working fine with the MT-32 music emulation. Before that, I had simply turned off the SB16's MIDI address altogether. Oh, well... maybe this new setting really does make more sense. 😉
Happy retro gaming, everybody!
#MIDI #86Box #Emulation #MT32 #SoundBlaster #SB16 #DOSGaming #RetroGaming #RetroComputing #Retro #90s #80s #Oldschool
Experience the DOS floppy disk version introduction of Simon the Sorcerer on real Roland MT-32 hardware. Simon the Sorcerer is a classic point and click adventure game by Adventure Soft.
Experience the DOS floppy disk version introduction of Monkey Island 1 on real Roland MT-32 hardware. The Secret of Monkey Island is a classic point and click adventure game by Lucas Arts.
Just for fun: I mixed the MT-32 and Adlib versions of the intro music from the MS-DOS port of Double Dragon 3: The Rosetta Stone.
I call it the Double DAC'n remix: https://youtu.be/XF01L4GBIos
Holy cow! ... I never realized STUNTS had an MT-32 soundtrack! This is quite a different beast compared to the old IBM PC Speaker. Of course, I knew about Adlib and Soundblaster. But not this!
#STUNTS #MSDOS #RetroGaming #RetroGames #DOSGames #DOSGaming #Broderbund #Diskette #FloppyDisk #PCGame #PCGaming #90s #MT32
New episode of @[email protected] is out! John Park joins the show and shares floppy disk MIDI boomboxes, @[email protected] shares AlgoRave, live coding music, I talk about the rp2350 as a mini-computer with the Adafruit Fruit Jam released just days after recording, and more! Find the show wherever you get your podcasts or visit https://www.thebootloader.net/blog/2025/08/04/drop-the-beat-with-john-park/
XIAO ESP32-C3 MIDI Synthesizer – Part 3
So, now that the basics are out of the way I’m going to dive into the specifics of the Dream SAM2695 chip itself.
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
These are the key tutorials for the main concepts used in this project:
If you are new to microcontrollers, see the Getting Started pages.
The Dream SAM2695
I first encountered this device on a breakout board several years ago, called a “GM Mini Module”. Various tutorials at the time showed how to hook this up to an Arduino. For example, my specific module had the following suggested application:
The breakout was essentially just the SAM2695 with an additional MIDI IN circuit and DIN socket.
At the time it was a component of the “fluxamasynth” – an Arduino shield containing the chip. Whilst the shield is now discontinued, a number of resources still remain online about it: https://github.com/fluxly/Fluxamasynth
Since then there have been a number of modules released that use this neat synth chip, probably the most recognisable of which is perhaps the M5 MDI Synth: https://shop.m5stack.com/products/midi-synthesizer-unit-sam2695
There is also a M5 module with built-in MIDI DIN socket too.
This latest XIAO device follows in the footsteps of all these other variations but adds the microcontroller, and ESP32-C3, to make a complete “system”.
I happen to have three of these devices – the original Dream “GM mini module”, M5 synth and the XIAO, so I’ll do a post about them together at some point, but the all work in essentially the same way.
This series of posts is mostly taking a detailed look at the XIAO MIDI Synthesizer, but the following post shows how to use a XIAO SAMD21 to talk to the M5 Stack Synth: XIAO USB Device to Serial MIDI Converter.
The datasheet for the SAM2695 describes its capabilities:
Interestingly it supports a parallel or serial MIDI access. But using serial is by far the easiest as it can link up directly to another microcontroller’s UART or an opto-isolator of a standard MIDI IN circuit.
The GM Sound Engine
The SAM2695 has two complete instrument banks and a drum set. The banks are as follows:
The device also supports effects and an equaliser. All additional controls are configured using either MIDI NRPN or SysEx message. And there are a lot of messages defined in the datasheet!
There are also a number of control messages which apparently have to be sent over the parallel data interface.
But what I am most interested in is the MIDI implementation for the common range of MIDI messages, the most useful of which (to me) are listed below.
MIDI MessageHEXNotesCompatibilityNote On9n kk vvMIDINote Off8n kk vvMIDIPitch BendEn ll hh14-bit pitch bend data hhllGMProgram ChangeCn ppGM/GSChannel AftertouchDn vvMIDIControl ChangeBn cc ddSee table below for specific control change messagesRPNBn 65 …Registered parameter numbers (see datasheet)MIDI/GMNRPNBn 63 …Non-registered parameter numbers (see datasheet)GS/DREAMSysExF0 7E 7F 09 01 F7MIDI ResetGMSysExF0 7F 7F 04 01 00 vv F7Master volumeGMSysExF0 41 00 42 12 … F7Range of GS specific SysEx messages (see datasheet)GSSysExF0 00 20 00 00 … F7Dream specific “port write” commandDREAMMIDI Control Change Messages
CommandHEXDefaults / NotesBank SelectBn 00 cc0ModulationBn 01 cc0 (Rate/Depth set via SysEx)Portamento TimeBn 05 ccChannel VolumeBn 07 cc100PanBn 0A cc64ExpressionBn 0B cc127Sustain PedalBn 40 cc0 (>63 ON)PortamentoBn 41 cc0 (>63 ON)Sostenuto PedalBn 42 cc0 (>63 ON)Soft PedalBn 43 cc0 (>63 ON)ReverbBn 50 vv4 (0..7 = reverb effects)ChorusBn 51 vv2 (0..7 = chorus effects)Reverb SendBn 5B vvChorus SendBn 5D vvAll Sound OffBn 78 00Reset All ControllersBn 79 00All Notes OffBn 7B 00Mono OnBn 7E 00Poly OnBn 7F 00Defaults to poly on power upCC1Bn cc vvcc=00..5F, Fn set by SysExCC2Bn cc vvcc=00..5F, Fn set by SysExTo be honest, I’m not sure I quite understand those last two, but that seems to be what it is saying in the datasheet…
There are a /lot/ of parameters accessible over NRPN or SysEx relating to the routing of signals in the device, the effects and the equaliser. At this point I’m just experimenting with the basics above.
Any of the MIDI interfaces allows me to test it out, but using a XIAO SAMD21 in USB MIDI device mode is the easiest as I can just plug it into a computer and fire up MIDIOx and start messing around with some of the above.
Closing Thoughts
There is a lot to the SAM2695, so I can see why it has captured interest once again after a few years seeming almost forgotten.
It would be nice to build some kind of knob-based interface that supports many of the parameters in the synth, but I guess the major application is meant to be for when some kind of “compatible” sound card is required “off the shelf”. For that, it would appear that the SAM2695 can be a General MIDI Synth, a Roland “General Sound” (GS) Synth or even a Roland MT-32.
Not bad for a small, relatively easily integrated component!
Kevin