loading

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


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!

sort by: active | newest | oldest
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
electropeppers (author)  steveastrouk6 years ago
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?
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
electropeppers (author)  steveastrouk6 years ago
Thanks a lot :)
aagarwal26 years ago
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 ????
lemonie6 years ago

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

L
electropeppers (author)  lemonie6 years ago
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).
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
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
orksecurity6 years ago
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.