deMIDulator: 8-bit MIDI synthesizer & lo-fi audio sampler
deMIDulator: 8-bit MIDI synthesizer & lo-fi audio sampler
The deMIDulator is an open source 8-bit MIDI synthesizer, lo-fi audio sampler and PIC microcontroller development platform.
The deMIDulator is an open source 8-bit MIDI synthesizer, lo-fi audio sampler and PIC microcontroller development platform. Read more
About this project
What is a MIDI synthesizer and why do I want one?
A MIDI synthesizer transforms the data output from your MIDI instrument (keyboard, guitar, saxophone) or device (USB-MIDI cable, sequencer) into pure sonic energy. You want one because a silent MIDI instrument is incredibly boring. Even if you don't own a MIDI instrument, you should always carry a synthesizer just in case.
What is the deMIDulator?
The deMIDulator is an open source 8-bit polyphonic MIDI synthesizer, lo-fi audio sampler and PIC microcontroller development platform.
It offers three sound output modes: Sine Wave (smooth and rich like a royal baby), Square Wave (harsh and electronic) and Sample (whatever you want).
Sample mode allows you to record and play back your own custom audio sample using either the on-board microphone, line-in audio jack or iPhone-compatible headset. After recording a sample, you'll be able to play notes in the same way as you would in Sine and Square wave modes. You can currently record up to 2 seconds of audio. It's really fun.
There are three playback modes: Polyphonic (up to 4 notes at a time), Sustain (keep notes alive even after releasing them) and Monophonic (only one note at a time).
In addition to Note On/Off, the deMIDulator v1.00 supports the following MIDI messages: Pitch Wheel, Modulation Wheel, Program Change, Attack Time, Release Time, Sustain Pedal, Poly On, Poly Off, All Notes Off, All Sounds Off, Reset All Controllers.
The deMIDulator's firmware is upgradable via MIDI SysEx messages, which means that you won't need no fancy PIC microcontroller programming hardware to update your synthesizer with new features or to tweak its internal parameters. Almost any configuration that can send a SysEx file to your deMIDulator (eg. Computer -> USB-MIDI cable) will work.
The MIDI output jack is currently configured to forward all incoming MIDI messages, thereby serving as MIDI THRU. Among other things, this allows you to chain multiple MIDI synths together and control them simultaneously. I've done this with three chained deMIDulators and the phase shift effect between them makes for a very rich sound. The MIDI output jack is also used to read the PIC microcontroller's firmware which can be directly connected to another deMIDulator's MIDI input for firmware cloning.
The deMIDulator can be powered by 3 x AAA batteries, AC Adaptor or PIC programming header.
All of the design files including BOM (bill of materials), schematic, PCB layout, enclosure design and firmware will be open source.
All of the firmware was written from scratch in PIC Assembly.
Available in a customizable laser-cut wood enclosure. See below for details!
What does it sound like?
I recorded the audio in the above video directly from the deMIDulator's headset jack so it's a good representation of the basic sound.
Here are some tracks demonstrating different amplitude Attack / Release envelopes:
I also put these short tracks together to demonstrate its noisier side. All samples were recorded directly from the headset jack with no post-processing aside from gain and balance adjustments.
How do I get one?
Mighty kind of you to ask, stranger. As you saw in the video, the v1.00 design is ready to go! The initial production run of 100 PCBs is done, component sets have been procured and the enclosure design is final. The deMIDulator is so close to being delivered into your capable hands! The funds that I raise will allow me to:
- Pay for these PCBs, electronic components and other hardware
- Fabricate laser-cut enclosures (see note below about the enclosure)
- Redesign the current PCB to use SMT (surface mount) parts. This would increase manufacturing efficiency and reduce lead time for assembled units.
- Compensate time spent documenting, kitting, building and shipping
- Support future features and upgrades. Though I've tried to pack a lot of features into the v1.00 firmware, with only about half of the PIC's Program Memory consumed (plus the bootloader) and the possibility of 2 slave SPI devices, the deMIDulator has a lot of room to grow. Though they didn't make the cut this time around, I've considered adding functions like an arpeggiator, MIDI pattern record/playback, real-time audio effects, delay/echo/phaser effects, multiple samples with SD card for storage, video generation and sampling.
What if I have no use for the deMIDulator but want to support the project anyway?
I understand that the deMIDulator is not for everyone and will be immensely grateful for any support that you can lend this project.
Why are you doing this?
My goal with this project is to provide artists with a unique sound synthesis tool that is built upon an open and extensible hardware platform.
Why code in Assembly?
I hope to use this project as a platform for teaching microcontroller development, and I feel that the best way to understand how microcontrollers work is to code in their native language of Assembly. Plus, I love writing code in Assembly. The language is simple, powerful and easy to manage when working with 8-bit microcontrollers.
Some notes about the enclosure:
I have designed and am laser-cutting these wood enclosures myself using 1/8" thick baltic birch, as depicted in all the images at http://badhandshake.com as well as the project image on this page. I chose wood because I wanted to use as sustainable and non-toxic a material as possible, but have yet to find a suitable supplier for something more sustainable like bamboo.
To provide quick and easy access to the batteries and programming/SPI headers, the bottom panel of the enclosure attaches via a sliding latch mechanism which holds it securely in place. You can see it in action here.
The basic enclosure (as pictured above) features the Bad Handshake Electronics logo on the top panel. If you choose the "Custom Kit" or "Custom Complete", I will engrave the image of your choosing onto the top panel instead of the default logo. Here's an ego-maniacal example:
I'll work with you to make your image suitable for the laser and send you a proof before engraving. Images that translate well to black and white (1-bit color) will look best.
If you plan on assembling the enclosure yourself or anticipate ever having to gain non-bottom-side access to the PCB, then you should be aware of the following:
- The enclosure panel joints are designed to fit very tightly. This means that if you are assembling the enclosure as a kit, it will take some effort to squeeze everything together - but once it's together, it'll be really solid. The baltic birch is fairly flexible, so damage during assembly has not been an issue for me. You can also simply file down the notch nodes prior to assembly to customize your fit. If you are choosing the completely assembled option but want to assemble the enclosure yourself, be sure to let me know and I'll send you a completely assembled PCB with an unassembled enclosure and hardware (bolts, nuts, pot knobs).
- It is possible to pry the tightly-jointed enclosure apart. With patience and a flathead screwdriver, it is possible to pry this enclosure apart in the event that you need access to the non-bottom sides of the PCB. The baltic birch is a plywood so there's a chance that the layers will separate when applying lateral pressure, but you can glue these pieces back together.
Fulfillment and shipping details:
I'll make every effort to get your deMIDulator out to you in as short a time as possible. Barring any distributor supply issues, I anticipate being able to ship the following rewards within the first month after this campaign has ended:
- up to 200combined "Skeletor Kit" and "Barebones Kit"
- up to 75 combined "Full Kit" and "Custom Kit"
- up to 75 combined "Complete" and "Custom Complete"
Rewards exceeding these quantities will be subsequently fulfilled, likely at a faster rate.
The cost of shipping to the 48 contiguous United States is included in the reward pledge. Please add $10 to your pledge if shipping to an address outside this region.
Thanks for your help!
Support this project
- (42 days)