Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Choosing right unit for midi controlled pseudo plc.

Cysiu

New Member
Hi, I'm starting working at project, ideally I will try to built synth and midi controller with Arduino/Raspberry Pi (and/or with other microcontrollers/microprocessors) and then either convert midi signal or just read midi and at output control LED's, display or some other components (for example, changing midi note would change which LED would be active, etc). Correct my if I wrong but as far as I did research it should be possible. I have some experience with programming but I'm fairly new to Arduino, if this is possible, could I ask for some recommendation regarding which Arduino/Raspberry/other unit or units (or other other microcontrollers/microprocessors) should I choose? I wanna add that I will ask this question on other forums focused on other devices (like Raspberry Pi, Arduino, etc.) because I'm trying to best solution for my case and I'm free to choose what can I use in this project (I'm doing this as academy project), hope for understanding.

Best regards and thanks in advance.
 
MIDI is a very simple protocol, just about any MCU now in existence with a built-in serial port (UART) will work fine, as long as you set the baud rate correctly (31250 Baud).

The more relevant part is actually how many inputs & what type of sensors, or how many outputs you need to control, as that gives an idea of the pin count etc. required??

I'm presently working on some videos covering MIDI for my youtube channel - the first was a kind of intro, about piezo transducers & music, then moving on to a preview of a MIDI drum unit and MIDI-USB interface. The original rather battered drum controller in the white box is one I built in 1993.

I'm editing the next one at the moment, as time permits.

 
Thanks, I will check it later, basically I want to use midi controller (either build from scratch or the one I have bought...but would prefer build it) to control both at the same time (running parallel): synth (like midi controller, I would prefer building one) and something like Arduino for example to control some LED/light pattern, display some text etc (it was intended to convert midi to plc protocol but after talking with my professor we came to conclucion what I can do it without plc...but the same idea).

I need at least 3-4 outputs but would prefer 9 or more just to be safe if I deciced to do more complex project. Im not sure about inputs technically I need just to send midi to Arduino/microcontroller/microprocessor and convert it or send thru to control this LEDs or whatever would be as output.

I hope it's mostly understandable, it's probably not that common project (with this controlling) and english isn't my native language.
 
You can always run a FFT or a Goertzel algorithm to detect frequencies for LED
display.

If you need mixed signal capability, like filter, DACs, OpAmps, WaveDAC consider this SOC :

1709154232142.png


PSOC 5LP family. Multiple copies of the above components onboard SOC. In PSOC
language a component is an onchip resource.

Board to use ~$20, CY8CKIT-059 IDE (PSOC Creator) and compiler free.

An example of a programmable f() generator (used small amount of onchip resources)


Example : https://community.infineon.com/t5/C...mo-using-KIT-059-and-MIDI-Keyboard/td-p/69422


Regards, Dana.
 
You can always run a FFT or a Goertzel algorithm to detect frequencies for LED
display.

MIDI uses note numbers, not audio frequencies!

You just need to match three bytes of data from the appropriate "note on" matching the channel number, note number, plus the key velocity for brightness if wanted - or "Note off" to switch it off again.

eg. 0x91, 0x3C, 0x40 would be note on for channel 2, middle C, velocity 64.
0x81, 0x3C, 0x00 would be note off channel 2.

The lower nibble of the first byte is channel number, sent as 0-15 (0x0-0xF) for channel 1 to 16.
0x36 = note 60 = middle C.

Note numbers are sequential semitones.

The first (command) byte always has the high bit set, the data bytes that follow it have the high bit clear, so it's easy to keep them in step when decoding.
 
Another example what can be done with PSOC :

Here is a basic oscilloscope, function generator, FFT, logic analyzer done by Cypress/Infineon engineer on the $ 15 CY8CKIT-059 board.


Google "psoc music synthesizer" for some music specific projects.

Code examples : https://www.infineon.com/cms/en/des...es/psoc-3-4-5-code-examples-for-psoc-creator/


Regards, Dana.
 
Last edited:
MIDI is a very simple protocol,
Midi can be yes, I built a MiDi interface to scan 132 keys on an ELKA organ, keeping up with the scan rate and encoding was tricky, had about one usec per key stroke, then had channels and exclusive codes and notes to resolve /add , I was coding in asm and finished up with two PICs , one scanning notes,( table in EEprom that is slow ) velocity, and one doing the midi out / in, PICs 16F887s were connected with the parallel port .running at maximum Hz ..
 
Last edited:

Latest threads

New Articles From Microcontroller Tips

Back
Top