Just approaching the topic. I see this as an idea-gathering thread more than else.
The volca sample upgraded with pajen firmware really is a great workstation, and being able to send CC to the different parts is brilliant; but, the form factor gives it some limitations.
So I had this sketch in my mind of just slamming some buttons on a pcb, dividing them in two sections:
one that would send “mute” CCs on the general channel of pajen’s midi config, which would be n.11, the other sending monophonic note data on a single part channel, n.1 or n.2 or whatever.
Would such a feat be possible? Is mine just a fever dream?
Could you recommend me some resource to study the general arduino-midi topic further?
Any contribution appreciated, sorry if the thread’s not relevant I’m a noob lol
The best place to start into midi controller making is with our old pal Dave over on YouTube’s Notes and Volts channel. Still the best intro in my opinion. @lookmumnocomputer ?
Sorry, yes it’s feasible.
I can not find it now, but I think that @caustic made some great introductory posts on midi controllers?
I think, you might already be able to do what you plan if you watch some arduino basic tutorials (on how to connect knobs, buttons etc.), check how to connect a midi out to arduino (it’s really simple!) and then use a midi library (I like this 47effects library. Just start experimenting and ask along the way
I happen to have some experience with this. You’re going to need a few different things:
- Arduino (Nano probably, the small cheap one)
- A few electrical components for the MIDI circuit
- The materials for the controller
First off, check out what I found accidentally while looking for the correct circuit. The MIDI circuit is fairly universal (you’ll begin seeing the optocoupler everywhere). It’s not the same thing as you’re making, but the MIDI circuit found on this page is exactly what you should use.
This is also a fantastic resource for all Arduino related MIDI things. It’s the website for PJRC who make Teensy. Teensy microcontrollers are (basically) really powerful Arduinos that use the same software to program, so any of the information in that page applies to the Arduino Nano.
The FortySevenEffects MIDI library for Arduino makes it pretty easy if you already know your way around the IDE. If you don’t, I’d be more than happy to assist.
There are better optoisolators for MIDI than the 6N138:
I’ve breadboarded with an H11L1 and it worked, but I went with 6N137 in my MIDI-CV module. The circuit’s a little different from the 6N138. I used:
Oh wow. That’s surprising considering how commonly it shows up in MIDI circuits. I might have some replacing to do!
As it says in the next phrase, it probably doesn’t matter unless you’re really pushing the abilities of MIDI. I’d say if you already have 6N138s, or can get them a lot cheaper or more easily than a faster optoisolator, by all means go ahead and use them. But if you need to buy something and can get faster ones at a comparable price, skip the 6N138.
This is the best thing I found to explain MIDI at a low level is this: How MIDI Works - YouTube
If you really are a total noob and have never done anything on Arduino before, I reckon don’t jump straight into that as your very first step. There’s just rather a lot of concepts you’ll have to learn all at once.
If you already own a computer with a working MIDI output (with a DIN connector), you can install Python and Mido and very quickly start figuring out the MIDI messages you need to produce the desired behaviour.
If you don’t have a MIDI out on your computer there are USB to MIDI cables available for very little.
Just about any kind of Raspberry Pi with UART pins is pretty good for this kind of thing too, with only slightly more work. And you can use it to prototype your hardware interface too.
Python is a much easier language for beginners than Arduino C. And it’s a much nicer learning environment because you can interact with things much more directly using your keyboard and screen. It’s much easier to see what’s going on. And the MIDI messages are annotated with helpful names like “note_on” and “note_off” instead of having to do it all in hexadecimal on your first day.
This is just a suggestion to break the project down into more manageable chunks. It’s much fewer new concepts you have to get your head around before you get some some positive feedback and feel encouraged by your progress.
Disregard everything I’ve said if you’ve already done a bit of Arduino before. It’s a whole different thing if you’re already a bit comfortable in that ecosystem.
But isn’t the optocoupler only for midi IN? I think this project is about sending midi from Arduino to the volca. So, no optocoupler necessary:-)