is "gun" a percussion instrument #generalmidi

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."

https://getmusic.fm/l/1wxCeH

#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."

https://getmusic.fm/l/pTjqLO

#ambient #electronic #indierock #folk #progressiverock #dreamy #midi #indiealternative #midirock #generalmidi #music

🍝 nudel

If you were a fan of the Roland MT-32, you’ll love the MIDI Blaster that JP built and the devices that inspired it! #generalmidi #midi #mt32 https://hachyderm.io/@prcutler/114971198879894365
Paul Cutler (@prcutler@hachyderm.io)

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/

Hachyderm.io

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.

  • Part 1 – Getting started and getting code running.
  • Part 2 – Swapping the ESP32-C3 for a SAMD21 to get USB MIDI.
  • Part 3 – Taking a deeper look at the SAM2695 itself.
  • Part 4 – A USB MIDI Synth Module using the SAMD21 again as a USB MIDI Host.
  • Part 5 – A Serial MIDI Synth Module using the original ESP32-C3.
  • Part 6 – Pairs the Synth with a XIAO Expansion board to add display and potentiometers.

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:

  • MIDI control processor, serial and parallel interface
  • Synthesis, General MIDI wavetable implementation
  • General MIDI compatible effects: reverb + chorus
  • Spatial Effect
  • 4-band stereo equalizer
  • Stereo DAC. DR: 86dB typ, THD+N: -75dB typ
  • Mike input. DR: 86dB typ, THD+N: -75dB typ
  • Mike echo
  • 64-voice polyphony (without effects)
  • 38-voice polyphony + effects
  • On-chip CleanWave™ wavetable data, firmware, RAM delay lines
  • Audio stereo line output

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:

  • CH1-9,11-16: BANKSEL 0: Full General MIDI Sound set
  • CH1-9,11-16: BANKSEL 127: MT-32 Compatible Sound set
  • CH10: General MIDI Drum Sound set:
    • Program 1: Normal kit, notes 35-81
    • Program 17: “Power Set”, Normal set + note 38 only
    • Program 41: “Brush”, Normal set + notes 35-40 changed
    • Program 49: “Orchestra”, Normal set + notes 27-30, 38-53, 88 changed
    • Program 128: “CM 64/32 Partial”, range of effects and things – MT-32 like

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” commandDREAM

MIDI 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 SysEx

To 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

#generalMidi #midi #mt32 #rolandGs #SAM2695

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.

#retrocomputing #pc

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

  • Raspberry Pi Zero 2.
  • Micro SD card.
  • MiniDexed EuroRack PCB and panel.
  • Power, leads, additional connectors and so on.

Building MT32-Pi on Ubuntu

Here are Michel’s instructions that worked for me.

Setup a Ubuntu 20.4 LTS system.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install gcc-arm-none-eabi
sudo apt-get install git
sudo apt-get install curl
sudo apt-get install dialog
sudo apt-get install cmake
sudo apt-get install pkg-config
sudo apt-get install glib-2.0 Now clone the mt32-pi github repo

git clone –recursive https://github.com/dwhinham/mt32-pi.git

cd mt32-pi

nano src/control/simpleencoder.cpp In nano change the following lines

constexpr u8 GPIOPinButton1 = 5;
constexpr u8 GPIOPinButton2 = 6;

constexpr u8 GPIOPinEncoderButton = 11;
constexpr u8 GPIOPinEncoderCLK = 10;
constexpr u8 GPIOPinEncoderDAT = 9;

ctrl-X and say ‘Y’

make all

If everything goes well you will have a kernel8.img file in your directory.

Now hook up a microSD cardreader to your Linux environment and insert a blank microSD card

Goto the ~/scripts dir and start mt32pi_installer.sh , this will install all the needed bare metal files

sudo ./mt32pi_installer.sh

When ready copy the kernel8.img file to the SD card

Change in the mt32-pi.cfg file the line ‘encoder_reversed = off’ to 'on', now the volume knob will increase when turned clockwise

Copy the MT32 roms to to the rom dir

Copy some Sf2 soundfont files tot the soundfont dir

Thats it…unmount the sd card , put it in your Zero 2 W…and boot it.. the MT32pi logo should appear on the oled screen and the buttons and rotary encoder should work properly

The first button switches between m32 and soundfont mode.

The second button will switch to the next rom or soundfont file

The rotary encoder will change the master volume.

The encoder switch only displays a message that the button is pressed

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]
default_synth = mt32 or soundfount


output_device = i2s

[control]
scheme = simple_encoder
encoder_reversed = on
mister = off

[mt32emu]
midi_channels = alternate

[lcd]
type = ssd1306_i2c
width = 128
height = 32
i2c_lcd_address = 3c

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

#EuroRack #generalMidi #midi #minidexed #mt32Pi #soundfont

MiniDexed EuroRack PCB Design

I’ve seen a number of EuroRack format MiniDexed versions now, from 3D printed panels and designs, right through to commercial modules. It’s something I’ve been meaning to do for a…

Simple DIY Electronic Music Projects

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

Development builds - DOSBox Staging

DOSBox Staging is a modern continuation of DOSBox with advanced features and current development practices.