529Views10Replies

Author Options:

How to do an MIDI to frequency conversation without a microcontroller? Answered


Hello!

I want to build up an MIDI synthesizer. My main problem is the conversation of the MIDI signal to a frequency. I know it could be done with a microcontroller, but I want to realize it just with resistors, coils, capacitors and non-programmable ICs, because it should be a real only-hardware synthesizer.

I do not to interpret all the MIDI control signals, just note on/off.

So does anyone has a idea how to realize this conversation just by hardware?

Thank you in advance!

10 Replies

user
steveastroukBest Answer (author)2010-12-09

Not possible for anyone who doesn't possess 20 years of digital design experience. A Midi frame is a digital instruction to do something with a signal generator. To omit the processor means that you have to build a bit-slice processor in hardware, sure, it can be done, the Apollo AGC is probably the classic example., but its not realistic.

What you WANT to do is not "Easy" at all.

Steve

Select as Best AnswerUndo Best Answer

user

My first idea was to generate a clock pulse out of the Midi signal a fill some shift registers with the incoming data. Through some logic blocks I thought it should be possible to get the Note number and the velocity.

So what would you recommend to do? Should I use a microcontroller?

Select as Best AnswerUndo Best Answer

user

Yes, without a doubt. As someone WITH 20 years of design experience, I can say I really wouldn't try and do it in hardware: Sure, if the data was arriving at gigahertz rates, the answer to the question would be different, and we would have to look at high speed FPGA solutions, but here, no, use a microcontroller liek Arduino, the code is trivially simple.

Steve

Select as Best AnswerUndo Best Answer

user
aagarwal2 (author)2011-03-21

hey ...
i have a simliar question ... i.e. to convert the transmitted data (via the midi cable) to a frequency (e.g. a square pulse). however i have to use only software ... i have the midi sounds ... basic purpose is to identify the frequency of different sounds ... anybody any idea ????

Select as Best AnswerUndo Best Answer

user
lemonie (author)2010-12-09


MIDI is a data-format, MIDI software/hardware "plays" the file as "sheet-music", what do you want to do?

L

Select as Best AnswerUndo Best Answer

user
electropeppers (author)lemonie2010-12-10

That's not 100% correct, look here: http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface. MIDI is a data transfer protocol which includes a data-format, in which the data can be stored. My idea was to convert the transmitted data (via the midi cable) to a frequency (e.g. a square pulse).

Select as Best AnswerUndo Best Answer

user

If you study the protocol, you'll see that nowhere does your tone and duration information exist as anything but a digital packet. Lemonie is simplyfying a bit, but he is correct, the information is just like a piece of sheet music, it says "Bass Clef" Middle C, 1/2 second A above, 1/4 second.

Steve

Select as Best AnswerUndo Best Answer

user
lemonie (author)electropeppers2010-12-10

From there: "it sends event messages about pitch and intensity, control signals for parameters such as volume, vibrato and panning, cues, and clock signals to set the tempo."

It equates to sheet-music in that it tells a machine what to play and how. To build up an MIDI synthesizer you need processing-power, cannot be one with resistors, coils, capacitors and non-programmable ICs. It's a data-format, not an audio-file, you can't get audio-out without "playing" it and that requites a virtual-instrument.

L

Select as Best AnswerUndo Best Answer

user
orksecurity (author)2010-12-09

If you don't want to program, and you want to use MIDI, your best bet is to buy a synth chip which has its own MIDI input stage.

If all you want is one note at a time, with absolutely no dynamics -- which would be a pretty limited synth by today's standards -- you could probably do something with a UART chip to convert the serial MIDI data stream into parallel bytes, and then a hardwired state machine to handle the protocol. Or, rather, I could probably do something along those lines. It wouldn't be worth doing, though, especially since high-quality fully-polyphonic MIDI synths are cheap and this wouldn't be.

Select as Best AnswerUndo Best Answer