Controlling parameters from external USB encoders

Hi Zynthiacs,

I’ve searched high and low here, and read many threads, but not found something like I want to do - which I understand may mean it’s not possible…

I’m a live looper type of guy, I use the Zynthian as a sound module and effects processor mainly and loop externally on a Boss rc500.

I have been digging into learning some arduino programming and have been leveraging the control_surface library to make some simple USB MIDI controllers. What I really want to do, is build a controller that has a bunch of encoders on it, to tweak parameters on the zynthian. I would like to be able to call up a snapshot, and then increment/decrement parameters with encoders. I can do it with a potentiometer, but as we all know they just change the value to the pot position instead of altering it relative to the current setting. I would also be fine with pots if there was a way to ignore the changes until they match the current zynthian setting so I don’t get big jumps.

I found this old thread from Joe:
https://discourse.zynthian.org/t/zynthian-midi-ub-controller/709
but I expect it’s out of date at this point.

Ideally the encoder would just send + - to the mapped target parameter, but I don’t think that’s possible. I expect I’m going to have to read the current value from the zynthian, and work that into the arduino routines.

I am a mediocre Arduino programmer, I used to be an excellent PHP, javascript, SQL type of dev, but it was about 10 years ago so I’m a bit rusty, and C++ is a bit different.

Before I embark on stuffing myself in this rabbit hole - do y’all think it’s possible, and if so can anyone point me in the right direction?

1 Like

Welcome!

Absolutely.
The devil is in the detail. How many encoders and how are you going to mount it in your stage rig…?

I’ve got a Roland rc-300, or rather Ive lent it to a friend of mine. I used to find it a pain to have to bend down to foot level to adjust things.
You can most certainly build something. Personally I use Blue Pills, for which you need a programmer thingy, the ST-LINK which connects to the 4 wires on the Pill to allow you to program it. @riban has a few devices that are similarly configured, and we’ve documented the process of getting MIDI out over the USB connection. This is very useful as it also Powers the ‘device’ with just one wire and that is an excellent solution to a problem most people don’t consider until they’ve built it. How to power it.

From the encoder perspective I would use these …

It’s all comms over i2c and they have rgb led’s in them. It will save you hours of debugging hardware.

Start drawing panels!

And add a device ctrl driver to the zynthian so it does what you want it to do…

2 Likes

Well, I’d like to have about 100, but 15 or 16 would be great, and i would settle for less and make it bankable. I have a StudioLogic73 inbound (hopefully tomorrow), which will be an improvement over the m-audio49 I’ve been limping along with. The SL73 has almost no controls, and a large open area on the top. I plan on assembling on perfboards and then build a housing for it - I have good woodworking chops. In the meantime I have an old Akai mk25 and a USB keypad I can put on there to use for now.

I haven’t read up much on the BluePill, but at first glance it seems similar to a Teensy. I will do some research…and will see if I can find the USB Midi documentation.

Thanks, these look great!

Check this out for inspiration

I unfortunately have an old fashioned mini, might be the first ones ever. Lacks a lot of modern features.

Well, I completed my first controller! I went with pots in the end - I originally wanted to capture a parameter’s current state and increment/decrement it with an encoder but it was a little beyond my arduino/C++ skills. I’ll tackle that down the road a bit.

Here’s what I did:



The case is some super nice wood I had a little bit left of, and the control surface is a redwood burl.

The top row of buttons are setup as program changes on channel 16 so I can jump between snapshots.

The little guys on the right I got from adafruit, and are really nice little clicky buttons. The top right button I use for tap tempos, and the others are cc buttons that I assign to zs3s.

The pots are pots, I find this kind of layout easier to use in a live setting as I can remember more easily what each one is mapped to.

The little toggles control banks for each group, so I have two sets of each to play with.

I used the control_surface Arduino library for most of the coding, and it all runs on an Arduino pro micro with two 16 channel multiplexers. It was a lot of soldering.

It’s turning out to be a great little Zynthian companion so far!

11 Likes

Wow - that is stunningly beautiful!

2 Likes

Congratulations @nagrom!

Your visually amazing contraption looks like coming from the personal studio of Captain Nemo on the Nautilus, for some steampunk deep-ocean machines control.

Useful, ingenious and aesthetically sophisticated :+1:

4 Likes

Indeed you have well done! It’s a beautiful thing.

Have you schematics?

Another one of my suggestion salads picked apart! We will, of course, be needing to see the schematics and for the true aficionado of such construction, Photos of the inside…

You are excused the Sunday extra rook soup ration for this beauty!

They do better knobs

https://www.duppa.net/product-category/knobs/?v=7885444af42e

and LED rings now!!!