Free download codes:
Sunny, The Musician! - Terminal
"This album was partly inspired by Pink Floyd's Dark Side of the Moon, partly a concept album with old-school general midi."
#ambient #electronic #indierock #folk #progressiverock #dreamy #midi #indiealternative #midirock #generalmidi #music
Free download codes:
Sunny, The Musician! - Terminal
"This album was partly inspired by Pink Floyd's Dark Side of the Moon, partly a concept album with old-school general midi."
#ambient #electronic #indierock #folk #progressiverock #dreamy #midi #indiealternative #midirock #generalmidi #music
New episode of @thebootloader@www.circuitpythonshow.com is out! John Park joins the show and shares floppy disk MIDI boomboxes, @todbot@mastodon.social 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
Finished my #ITXLlama builds today. Built around the #Chieftec BT-02 case, it features the ITX Llama motherboard, a #Radeon 9250 and a #3dprinted front control panel I designed with #OLED display, rotary encoder and buttons for the #MT32Pi. Also a much needed reset button, a switch to select either the MT32-pi or GS WaveTable audio and an SD slot. The software needs a bit of tweaking, but this could be an awesome and brand new box for playing #90s era #MSDOS and #Windows98 games. So far it plays #DukeNukem3D flawlessly with #GeneralMIDI sound.
MT32-Pi on my EuroRack MiniDexed PCB
This is great. I was asked by Michel (mragutlich) if I knew how to build MT32-Pi to configure it for my MiniDexed EuroRack PCB but I don’t and there isn’t a lot of information apparently on how to build it from source.
So I offered my Rebuilding my Ability to Build MiniDexed post which talks about getting to the point of being able to build MiniDexed and as both synths run on circle, figured that would be a pretty good starting point.
And then Michel came back to me with a complete set of instructions for Ubuntu and I’ve just run through them – and they work great.
So massive thanks to Michel, this is how you could get MT32-Pi running on my MiniDexed EuroRack PCB.
https://makertube.net/w/2xzd8b4RPDPX1YJL3CpA57
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
Previous posts on MT32-Pi:
If you are new to microcontrollers and single board computers, see the Getting Started pages.
Parts list
Building MT32-Pi on Ubuntu
Here are Michel’s instructions that worked for me.
Setup a Ubuntu 20.4 LTS system.There were a couple of tweaks I needed. First of, the mt32_inistaller.sh script has to be run as root. This will go through and ask you to choose the SD card to format and install and so on.
At some point you will need some MT32 ROMs. There are details of how to do that on the original MT32-Pi project here: https://github.com/dwhinham/mt32-pi?tab=readme-ov-file#-quick-start-guide
In addition to the aforementioned “encoder_reversed” setting in the mt32-pi.cfg file there are a couple of other options I find used (many of these were already set up by the installer):
[system]I think those were the major changes.
I installed a single “new” ROM and a PCM ROM. The default soundfont is already installed. And that was essentially that.
The first time I tried it, I’d forgotten to copy over the kernel8.img file, so that took a moment to figure out! But apart from that it was all pretty straight forward for me. Many of the packages to install at the start were already there and up to date, so that didn’t take too long and the build itself was again fairly straight forward.
Closing Thoughts
A big thanks to Michel for asking the question, then figuring out the answer, and most importantly sending me the instructions and permission to post them here.
This is a great additional option for my PCB 🙂
The video shows the MT32-Pi in Soundfont mode playing a MIDI file of Khachaturian’s Masquerade Waltz.
It is great to have a full General MIDI Soundfont device in EuroRack format.
Kevin
I see a number of recent Roland MT-32 clone projects out there, built using Raspberry Pi and the like. I don't see any that are being sold, pre-assembled.
The BulkyMIDI-32 looks great, but I don't think it's being sold, assembled.
If such things are on offer, can someone point me to a decent unit?
#MIDI #Roland #RolandMT32 #MT-32 #generalmidi #music #audio #vintagecomputing #retrocomputing #retrogaming #DOS #AtariST #Amiga #RaspberryPi #RPi #modernretro
Today is a big day for DOS emulation, now we have 100% authentic Sound Canvas (Roland SC-55) emulation in Staging via Nuked SC-55 🥳 🎉 🍻 🎊
Grab the latest dev build from here:
https://www.dosbox-staging.org/releases/development-builds/
Then follow the installation instructions from the PR below:
Search "manual testing" and follow the steps under "usage" (this will be more streamlined in the final; the plugin (without the ROM files) will be included in the distribution package)
https://github.com/dosbox-staging/dosbox-staging/pull/4090
#DOSGaming #MS-DOS #Emulation #RetroGaming #LinuxGaming #MacGaming #FOSS #Roland #SoundCanvas #SC-55 #MIDI #GeneralMIDI