Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

how to decode a MIDI file?

Not open for further replies.


Advanced Member level 3
Oct 31, 2009
Reaction score
Trophy points
Kerala (INDIA)
Activity points
i would like to play a midi file stored in a MMC using a PIC microcontroller.
But what is actually a midi file? How it could be decoded ? Is it simple or much complicated ?

See here **broken link removed** or other web links. The problem with playing it is that the information contains note, duration and instrument type, for example, but not the actual sound. So, if the sound is a piano, you need a piano sound stored in the PIC to reproduce it. Normally it is done with a DSP rather than a microcontroller - I think the processing and memory requirements are a bit much for a simple PIC - maybe the bigger ones or dspic would be OK. If you search for midi and PIC you will mostly find PICs being used for creating the midi information rather than decoding it which is quite different.

then what about AMR? What about its decoding? Is that also really tough like MP3 decoding? And dedicated decoder chips are required?

That is another complex one I think. MP3 can be done with some of the PICs I think - there is a Microchip development board which will play MP3s but it may use a Wolfson MP3 decoder, I cannot remember.


If you like to read more.....

Description: The VS1103b is a single-chip MIDI/ADPCM/WAV audio decoder and ADPCM encoder that can handle up to three simultaneous audio streams. It can also act as a MIDI synthesizer. General MIDI and SP-MIDI format files are played, with a maximum simultaneous polyphony of 40!

Breakout Board for VS1103 MIDI Decoder - SparkFun - BOB-08953 - - UK Suppliers of Electonics - Robotics - SparkFun - LilyPad - Arduino

As Keith wrote midi signal is only codes how to play and what instruments.
Instruments and sounds are not included.

Decoding MIDI can be done with PIC,
but creating voice for every needed instrument is another thing.

( Then becomes synthesizers and samplers , with PC there is software VSTi instruments
etc. for helping that part of problem )

All these instrument can be controlled with midi signal
( serial line (8 data bits, 1 start bit, 1 stop bit) 31250 bps )

Musical Instrument Digital Interface - Wikipedia, the free encyclopedia

Tech Specs & Info

Regards KAK


if i am saving the recorded audio as a DPCM in a memory card, then i think it will be like a compressed audio and saves 8 times memory. I think i could compress the 8bit sample to a single bit.

So what is your opinion in this case? If this is good then no need for me to go behind any AMR MP3 etc.

Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to