Skip to content

A HW build of the MT32-PI project, allowing you to emulate a Roland MT-32 using a Raspberry Pi. Includes enough additional modules to build a MIDI-mountain as well as adapters for connecting to most things retro.

License

tebl/BulkyMIDI-32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BulkyMIDI-32

When I was young I'd heard rumours about a fantastical sound card for the computer known as the Roland MT-32 - imagining that if it was good enough to be the default sound device for games such as Monkey Island, then it had to be good! Of course I was a kid at the time, the kind that didn't even have enough money to even be allowed inside the kind of stores that would sell this stuff. Fast forward to adulthood and I learned that it wasn't a sound card at all - it was a standalone MIDI-module! The second thing I learned was that they originally were, and still are, incredibly expensive items. Especially for those of us who were born without any sense of rhythm.

BulkyMIDI-32 YouTube image

Cue other incredibly talented people found on the Internet, in particular for creating the mt32-pi project - allowing people like myself to build a device capable of at least emulating one of these fantastical devices. All it takes is a somewhat cheap, mostly available Raspberry Pi 3 or 4. As with everything I enjoy playing around with, as long as it is simple enough for me to do so - I'll look into building my own version of it. Granted, I may have cheated more than a little bit by starting out with a copy of the design files for clymsyMIDI as my starting point.

BulkyMIDI-32

I had a lot of fun building the original BulkyMIDI-32, my process can best be described as an exciting journey down a rabbit hole of all things MIDI including similarly themed audio projects. This resulted in a multitude of adapters built for connecting things together, including a whole host of interesting modules that can be either used with the BulkyMIDI-32 - or - in many cases they can be also be used by themselves or alongside other vintage music equipment. In order to keep things separate I've split the modules-section so that you'd quickly be able to determine which PCB designs could belong together.

1> Modules

For the technical details as well as information regarding the modules included by this specific github project, consult the table below. Follow the documentation links for build instructions, BOM and anything else you'd need for that specific module. Faceplates and any backplates listed are for the most most part only decorative, allowing you to put together something similar to a case without actually requiring a 3d-printer. Also, check out the schematics for more information about the electronic side of things.

BulkyMIDI-32

As previously mentioned several modules has been designed as part of the same project, these add different functionality and due to their identical form factor - they can all be stacked to build your very own MIDI-mountain! Though they bear the BulkyMIDI-32 name, they can all be used independently of the main BulkyMIDI-32-module - they will communicate using standard MIDI. Should you want to, they should be able to live happily alongside your vintage MIDI-devices.

Module Description
BulkyMIDI-32 Main BulkyMIDI-32-module (running mt32-pi).
BulkyMIDI-32 Audio Switch Module for switching between various audio sources, similar to the source selection switch on a stereo system.
BulkyMIDI-32 Channel Monitor MIDI-channel activity monitor, lights up an LED corresponding to the channel on activity. Implemented using basic CMOS logic chips.
BulkyMIDI-32 Channel Monitor 2 Mainly the same as above, except that the hardware is implemented using an Arduino Pro Micro and is therefore a lot easier to obtain the parts for.
BulkyMIDI-32 Dexed A variant of BulkyMIDI-32 that was intended for running MiniDexed.
BulkyMIDI-32 ExModule BulkyMIDI-32-styled module for connecting modern WaveTable-modules up to MIDI-devices.
BulkyMIDI-32 Input Switch Module for switching between up to four MIDI sources, the selected input is then replicated to three different THRU-ports. This allows you to easily switch between equipment as well as chain together different systems.
BulkyMIDI-32 Internal BulkyMIDI-32 built for installing in a 3.5" PC drivebay.
BulkyMIDI-32 Play Used for playing MIDI-files (.MID) from an SD-card using an Arduino Pro Micro. The hardware can also be uses as a basis for building a custom MIDI-merger, MIDI-message filtering or simply as a USB to MIDI-adapter.
BulkyMIDI-32 Power Switch BulkyMIDI-32-module for managing power to other BulkyMIDI-32-modules.
BulkyMIDI-32 VU SIDi At the moment this is an LM3915-based VU-meter.

1.1> BulkyMIDI-32

BulkyMIDI-32 Status: Completed

This is the main module of the project, if you came here looking to build an mt32-pi device then this is it. You have the option of going the cheaper route of just building the basic module, consisting only of the main module and nothing else. Alternatively, you can just build the whole thing as shown above. Given the cost of PCB fabrication, I recommend just building a complete unit. Note that the list below will include alternate versions of boards, so you need to decide which of them you'll need based on their description.

Module Required Description Documentation Order
BulkyMIDI-32 Yes Main module Documentation, BOM, Setting it up, Getting started PCBWay
BulkyMIDI-32 Panel Recommended Adds a vertical surface for mounting switches and rotary encoder. Documentation, BOM PCBWay
BulkyMIDI-32 Front panel (FP1) Optional Decorative front panel, mounts on BulkyMIDI-32 Panel. Designed for use with BulkyMIDI-32 Extras. Documentation PCBWay
BulkyMIDI-32 Front panel (FP2) Recommended Decorative front panel, mounts on BulkyMIDI-32 Panel Documentation PCBWay
BulkyMIDI-32 Extras Optional Adds passive audio mixing, RS-232 connectivity and RS-232 baud rate translation. Documentation, BOM PCBWay
BulkyMIDI-32 Faceplate (FB2) Optional Faceplate that goes on top of the device Documentation PCBWay

1.2> BulkyMIDI-32 Audio Switch

BulkyMIDI-32 Status: Completed

One of the drawbacks to using a vintage boombox as my stereo speaker system, is that it doesn't have any more than one audio input meaning that I would normally have to switch around the cables all the time. Well I can't really complain as not everyone is lucky enough to even have an input, at all! However, since I have one I wanted something that would let me switch between at the touch of a button. So, I built a simple audio switch and now you can build one as well!

Module Required Description Documentation Order
Audio Switch Yes Main module Documentation, BOM PCBWay
Audio Switch Panel Optional Adds a vertical surface installing switches as well as adding channel indicator LEDs. Documentation, BOM PCBWay
Audio Switch Front Panel (FP1) Optional Decorative front panel, mounts on Audio Switch Panel. Documentation PCBWay
BulkyMIDI-32 Faceplate (FB2) Optional Faceplate that goes on top of the device Documentation PCBWay

1.3> BulkyMIDI-32 Channel Monitor

BulkyMIDI-32 Status: Working, but documentation is missing.

One of the first things I wanted to add to the BulkyMIDI-32 was more blinking lights, as it turns out there were devices back in the day that did this - the were called channel monitors. Their purpose is simply to have an LED for each of the 16 MIDI channels, then as a MIDI-message passes through that contains channel information - the corresponding LED is lit up and will stay on for some time.

The circuit design was based on an article by W. Dunczewski, titled MIDI Channel Monitor and was printed in the 1993 october issue of Elektor Electronics. Besides the obvious attraction to blinking lights in controlled forms, what I liked about it is that everything is implemented entirely in basic CMOS logic chips (there's no traditional CPU or MCU handling the data).

Module Required Description Documentation Order
Channel Monitor Yes Main module Documentation, BOM PCBWay
Channel Monitor Panel Optional Adds a vertical surface for mounting the 16 channel LEDs. Documentation, BOM PCBWay
Channel Monitor Front Panel (FP1) Optional Decorative front panel, mounts on Channel Monitor Panel. Documentation PCBWay
BulkyMIDI-32 Faceplate (FB2) Optional Faceplate that goes on top of the device Documentation PCBWay

1.4> BulkyMIDI-32 Channel Monitor 2

BulkyMIDI-32 Status: Working, but documentation is missing.

This module displays MIDI-channel activity in realtime, with an LED for each of the 16 channels. While it effectively does the same as the BulkyMIDI-32 Channel Monitor, I also wanted to build a version that could be put together using parts that aren't quite as vintage as the parts required by that module.

In the end, the core of the module was implemented using an Arduino Pro Micro in combination with a couple of shift registers. In theory the board can be built up as a simple USB-to-MIDI converter, or it can be used to have the MCU process MIDI-messages - note that Arduino sketches to do any of this do not exist.

Module Required Description Documentation Order
Channel Monitor 2 Yes Main module Documentation, BOM PCBWay
Channel Monitor Panel Optional Adds a vertical surface for mounting the 16 channel LEDs. Documentation, BOM PCBWay
Channel Monitor Front Panel (FP1) Optional Decorative front panel, mounts on Channel Monitor Panel. Documentation PCBWay
BulkyMIDI-32 Faceplate (FB2) Optional Faceplate that goes on top of the device Documentation PCBWay

1.5> BulkyMIDI-32 Dexed

BulkyMIDI-32 Dexed Status: Untested prototype

A variant of BulkyMIDI-32 that was intended for running MiniDexed, a software that is similar to MT32-PI - except that it instead emulates up to eight Yamaha DX7 synthesizers on mostly the same hardware. I built one up and played around with it, my conclusion afterwards is that while it may work - I have absolutely no idea of how to use it. Or even a real keyboard for that matter. So in case someone finds it interesting enough to build one up using the files provided, please tell me whether it actually works.

1.6> BulkyMIDI-32 ExModule

BulkyMIDI-32 ExModule Status: Working, but documentation is missing.

There was a time when PC soundcards, mostly ISA, came with a WaveTable-header for connecting WaveTable-modules directly up to it. Originally used for mounting a separate WaveBlaster-module onto a Creative Soundblaster 16, so in many cases it will also be referred to as a WaveBlaster-header though the form factor was also adopted by several other companies who made similar modules with their own chipsets on it.

Ordering a selection of recent modules from serdashop.com to install in one of my vintage PCs, I couldn't decide which one to put where so for a year or so they've lived in a box. In the end I figured it was time to do something with them, and I ended up following the guide on atari.joska.no - a page that in itself had been based on an article found in an issue of Elektor Electronics (july/august 1997). This work ended up becoming the BulkyMIDI-32 ExModule. Run a MIDI-cable to it, hook the audio output into an amplifier and enjoy.

Module Required Description Documentation Order
ExModule Yes Main module Documentation, BOM PCBWay
ExModule Panel Optional Adds a vertical surface installing switches as well as adding channel indicator LEDs. Documentation, BOM PCBWay
ExModule Front Panel (FP1) Optional Decorative front panel, mounts on Audio Switch Panel. Documentation PCBWay
BulkyMIDI-32 Faceplate (FB2) Optional Faceplate that goes on top of the device Documentation PCBWay

1.7> BulkyMIDI-32 Input Switch

BulkyMIDI-32 Input Status: Completed

This module was created in order to easily switch between different MIDI inputs, the selected input is then replicated to three different THRU-ports. What this allows me to do on the input-side is to select between a keyboard, a USB MIDI-interfaces connected to a modern system and that of a vintage computer system. Duplicating the MIDI-messages on different THRU-ports allow me to send the same data to several MIDI-devices, such as an original Roland MT-32 as well as a MT32-PI (such as the BulkyMIDI-32 itself).

Module Required Description Documentation Order
Input Switch Yes Main module Documentation, BOM PCBWay
Input Switch Panel Optional Adds a vertical surface installing switches as well as adding indicator LEDs. Documentation, BOM PCBWay
Input Switch Front Panel (FP1) Optional Decorative front panel, mounts on Input Switch Panel. Documentation PCBWay
Input Switch Faceplate (FB2) Optional Faceplate that goes on top of the device, similar to the two below - except it's missing a hole. Documentation PCBWay
BulkyMIDI-32 Faceplate (FB2) Optional Faceplate that goes on top of the device Documentation PCBWay

1.8> BulkyMIDI-32 Internal

BulkyMIDI-32 Internal Status: Working prototype

In many ways this is the module that this entire repository has building towards, a 3.5" drive bay expansion for vintage computers. Is this a sane thing to attempt to build without any kind of 3d-printer involved in the process? No it is not. Did I build it anyway? Yes, you're looking at it. Is it finished? No.

1.9> BulkyMIDI-32 Play

BulkyMIDI-32 Play Status: Completed

In many ways the missing module when it comes to playing around with a Roland MT-32, both the vintage kind as well as the emulated version that is the main BulkyMIDI-32 module (running mt32-pi) - simply playing back a .MID-file without a computer attached to it. Implemented with an Arduino Pro Micro at its heart, you can put your files on an SD-card and play them back - use a long press when starting playback to loop the file, another long press to stop playback. During playback the rotary encoder encoder can be used to speed up or slow down the tempo.

Given that the designs have provisions for more than the expected number of MIDI-ports, a change in firmware can allow the hardware design to be used for entirely different purposes such as MIDI-message filtering, merging inputs and similar functionality.

Module Required Description Documentation Order
Play Yes Main module Documentation, BOM PCBWay
Play Panel Optional Adds a vertical surface for oled-display and rotary encoder. Documentation, BOM PCBWay
Play Front Panel (FP1) Optional Decorative front panel, mounts on Play Panel. Documentation PCBWay
BulkyMIDI-32 Faceplate (FB2) Optional Faceplate that goes on top of the device Documentation PCBWay

1.10> BulkyMIDI-32 Power Switch

Status: Untested

1.11> BulkyMIDI-32 VU SIDi

BulkyMIDI-32 VU SIDi Status: Prototype, with issues to work out

This is a module that I'll probably have to rethink properly, mostly because of attempting to integrate a little too much in one go without a proper understanding of either of them. The first part of it is a VU-meter based on the LM3915 chip which isn't a solution I particularly enjoyed using, at least in part due to one of the two modes supported by the chip doesn't really work properly when powered from 5v. The other mode is too flickery for my comfort.

The SIDi-part of it was based directly on github-project SIDI by user doctea, and I can't figure out how to get it to work. This probably isn't a problem with the code, but more my lack of understanding how to work with a music chip directly. I'm not a musician or even know how to play any sort of instrument, so it is a case of biting off more than I can chew - at least for the forseeable future.

2> Adapters

Separate from the main modules are several adapters, designed for use with the BulkyMIDI-32 in particular though most of them simply speak standard MIDI - so they should work with original equipment such as the original Roland MT-32. Follow the included in the table below for details such as build instructions, BOM and anything else you'd need for that specific module. The repository also includes a folder for schematics in PDF-format, these will be needed in order to track down any faults you encounter when building up and testing the adapters.

Module Required Description Documentation Order
Amiga MIDI Interface (DB25) Optional RS-232 to MIDI adapter for Amiga 500/600/1200/2000/3000/4000. Documentation, BOM PCBWay
Amiga MIDI Interface (IDC) Optional RS-232 to MIDI adapter for Amiga 500/600/1200/2000/3000/4000. Use with IDC to DB25 cable. Documentation, BOM PCBWay
Evolution Mk-7 Adapter Optional The Evolution Mk-7 MIDI keyboard only came with a DB15-connector as its only output, intended for plugging into a soundcard. This adapts that to regular 5-pin DIN-sockets. Documentation, BOM PCBWay
Gameport (DB15) Optional Adapter for plugging a MIDI-cable directly into the gameport on several common sound cards. Documentation, BOM PCBWay
Gameport (IDC) Optional Adapter for plugging a MIDI-cable into the gameport on common sound cards. Use with IDC-cable to a male DB15-connector, may be easier to use with several older computer case designs. Documentation, BOM PCBWay
MIDI Breakout Board Optional Handy breakout board for when you want to add MIDI-ports to an Arduino-board. Documentation, BOM PCBWay
MIDI TRS Adapter Optional TRS to MIDI adapter, has jumpers to select between TRS A- or B-wiring. Use with standard 3.5mm TRS-cable, as is commonly used for stereo audio. Documentation, BOM PCBWay

NB! The repository may contain pieces of modules and adapters designed for use with these, if they're not listed in one of these tables then they're a work in progress. They might be functional, they might blow up or I simply haven't remembered to update the documentation for them yet. PCBWay order links will always point you towards the last know good revision that I've tested, meaning they worked at least once with the equipment I have available.

3> Acknowledgements

Everything comes from something, in particular when it comes to most of my electronics projects. I mainly build things I would like to own, often doing a respin to fit my own particular style and preferences with most of the hardest parts of the designs already provided by people more knowledgable than I.

The software running on the Raspberry Pi is provided by the mt32-pi while the hardware itself can be considered to be based on the information provided by the associated wiki. As already mentioned I started out with the design files for clymsyMIDI as a starting point for the design.

About

A HW build of the MT32-PI project, allowing you to emulate a Roland MT-32 using a Raspberry Pi. Includes enough additional modules to build a MIDI-mountain as well as adapters for connecting to most things retro.

Topics

Resources

License

Stars

Watchers

Forks