Intro
In my ongoing quest for a cheap MIDI synthesizer, I came across the VS1053 chip which is a pretty spectacular audio chip. It has many features like encoding and decoding many audio standards and implementing several different interface standards. The datasheet is linked below for those interested, however I was specifically interested in its ability to play any note from 215 different synthesized instruments. In fact it can play up to 16 notes or instruments at the same time.
I also found that there are many suppliers who have used this chip in low cost audio modules, unfortunately none of them really cater to its MIDI capabilities. Almost none of them even make the MIDI selection pin available to be jumpered, and of course none of them have a MIDI connector. They all seem to implement the chip as an MP3 player, which is fine, but why ignore the synthesizer capabilities?
So naturally I had to design my own synthesizer around this chip. All the "music" in this blog is produced by this synthesizer, except the percussion intro. I played that on a PC to contrast it with this synthesizer. The percussion sequences may only loosely be called music, because I made them all up and I am not a musician. Fortunately a program called Hydrogen makes fooling around with percussion sequences a lot of fun. I am not playing popular music in this blog since we have to wait until the musicians involved have been dead for a century or two to play that music. Of course that music may no longer be popular then, but hopefully some of the music capabilities of this chip will come through just playing some old classical music. This synthesizer can play just about any real music and it all sounds great, although I have to say it sounds better playing modern music. About the audio setup, my microphone system is adding plenty of noise because my audio lab is not set up yet and also these speakers are not hi-fi. I don't quite get how some web sites will play just about any music ever written down, but every expert on the subject indicates that it is illegal to do so.
Anyway, if you have some unencumbered MIDI music and want to hear what this device sounds like playing it, enclose it below, and I will post it.
The Circuit Card
Design Features
This system is based on the VS1053 audio processor. The custom PCB for this chip is designed to provide a full breakout of every pin on the chip to 0.1" pitch connector pads that will insert directly into a standard breadboard. In fact it can be used as a breakout card for any 48 pin QFN footprint chip of the same physical size. The PCB does not stop there, however, it also breaks out a full microcontroller interface to allow it to have a display and SD card to store music or audio. It also has an auxiliary audio input connector, a stereo power amplifier and an optically isolated MIDI connector. There is a USB connector to supply power to the circuit and regulators to step down to 3.3V and 1.8V as required by the chip.
Description and Demo Video
The first video plays a percussion sequence I made using Hydrogen, first with a PC then using this synthesizer. Then the device is opened up to explore what is inside, followed by an explanation of the 3D printed case.
Anthems
Here are excerpts from a selection of anthems just to show that the synthesizer can play a bunch of instruments. How many anthems do you recognize? I have a tenuous connection to most of these countries but on a good day I would not recognize more than 4 of these. If your anthem is not included, indicate in the comments which one is missing and I will add more to the blog.
Classical Music
In case you didn't recognize any of the anthems, here are a few excerpts from some classical pieces everyone is familiar with:
MIDI Tools & Synthesizer Connections
This video shows how the synthesizer connects to MIDI sources:
Schematic
Here is the schematic
In case it isn't clear what relationship this project has with clocks, everything about music has to do with clocks, especially digital music. Every note is made up of frequencies which in a synthesizer are generated by clocks. The timing between notes is controlled by clocks and even the software that is running is all based on clocks. This circuit includes a 12.288 MHz crystal clock that is used in the synthesis of instrument sounds and notes. The note timing is coming from the MIDI source, which is also a clock driven computer.
PCB Layout
Here is the PCB layout
BoM
Here is the parts list:
Part | Value | Package | Description | MFR | FARNELL | NEWARK # |
C1, C6, C14, C15 | 4.7nf | C0805 | CAPACITOR | |||
C2-C4,C9,C12,C13,C16,C20 | 1uf | C0805 | CAPACITOR | |||
C5,C8,C22-C30 | .1uf | C0603K | CAPACITOR | |||
C18 | .1uf | C0805 | CAPACITOR | |||
C7, C19, C21 | 10uf | C0805 | CAPACITOR | |||
C10, C11 | 18pf | C0805 | CAPACITOR | |||
C17 | .01uf | C0805 | CAPACITOR | |||
D1 | 4148 | SOD123 | DIODE | |||
J1, J2 | RCA1 | RCA1 | RCA Connector | |||
J4 | MTA10-100 | 10-100 | AMP MTA connector | AMP | ||
J5 | PG203J | PG203J | MIC/HEADPHONE JACK | |||
J6 | MAB5SH | MAB5SH | Female CONNECTOR | 809883 | ||
J7 | USB-MB-H | USB Connectors | ||||
LED | LED5MM | LED | ||||
LED1 | LED5MM | LED | ||||
M2 | PAM8403V | PAM8403V | PAM8403 Stereo Amplifier | |||
Q1 | 12.288MHz | HC49/S | CRYSTAL | 1667008 | 75Y2298 | |
R1,R2,R4,R9,R10,R13,R14,R15 | 1K | M0805 | RESISTOR | |||
R3, R8 | 100K | M0805 | RESISTOR | |||
R5 | 220 | M0805 | RESISTOR | |||
R6 | 4.7K | M0805 | RESISTOR | |||
R7 | 270 | M0805 | RESISTOR | |||
R11 | 1M | M0805 | RESISTOR | |||
R12, R16 | 10K | M0805 | RESISTOR | |||
U1 | VS1053 | LQFP48 | VS1053 synthesizer | VLSI | ||
U2 | 3.3V | SOT223 | LDO regulator | |||
U3 | 1.8V | SOT223 | LDO regulator | |||
U4 | 6N138 | DIL08 | Optocoupler | ONSemi | 93R4620 | |
F1-F4 | DTRPOF-40059 | Push on rubber feet | Duratool | 43Y4284 |
Enclosure
The 3D print files used to make the case are enclosed:
Discussion
This project ended up to be a very neat, very useable, and very low cost MIDI synthesizer capable of playing any MIDI music. The PCB has lots of flexibility to be used in different applications, but this application is focused on its MIDI capabilities.
I am extremely happy with the way it turned out. It works and sounds better than expected, and the 3D printed box ties it all up into a fully deployable device. Now I need to get busy learning how to compose real music and perhaps building a MIDI controller. Hopefully members will contribute some MIDI files they want this device to play.
Enclosure STL Files
Links
/challenges-projects/project14/musictime?ICID=P14main-feature-widget
Top Comments