Parameter control: midi vs analog?


#1

Hi all,

I'm looking for help navigating my options for external parameter control via knobs and/or expression pedals. I know to some extent the decisions are driven by how you intend to play/use the Axoloti, but I'd like to understand if there are basic performance differences between different options.

So, specifically, suppose I have some parameter that I want to control/modulate in real time. I could set this up to be controlled by a potentiometer-based expression pedal, by a midi expression pedal, or (per the work @Gavin is doing), a rotary encoder.

What are the key considerations (not on the playability-side, but in terms of intrinsic differences in, e.g. response speed and resolution) that would drive choosing one or another of these?


#2

MIDI has a resolution of 0-127, which could cause some audible stepping if you use it on a filter. In that case, a potentiometer connected to an analog input would be better. Rotary encoders are not that useful for expression in my opinion, since they are digital.


#3

resolution is the key difference, gpio/analog is done to 12bit resolution, whereas commonly midi is 7bit, but we do support 14 bit midi - if your controller supports it.
(processing speed is unlikely to be a factor, unless, perhaps your using a slow midi controller over din)

other consideration, midi is a bit easier to incorporate into patches e.g. you can assign a midi cc directly to a parameter.

you only have a limited number gpio, going above this you will need to starting using multiplexer, not hard but more code/soldering.
(midi, has only 128 cc, but you can send on different channels, or use nrpn etc.)

practically, id say, id use gpio/analog for controls where sensitivity is important, so perhaps use on the main controls, use midi beyond that for flexibility.
(fortunately its not either/or use can use both)

starting out on the patch etc, unless the response was a critical part of the patch, id probably use midi to initial develop, and then add pots etc once finalising the enclosure.

EDIT: just see jans post, steppiness, you can reduce by smoothing between values... this obviously doesn't increase resolution, but it means when you move the control it wont step, it will glide between values ... or use 14 bit as I mentioned earlier :slight_smile:

EDIT: its worth noting you are likely to still end up filtering/smoothing with analog too, due to noise... at least I have so far when Ive used it (albeit, less that 7bit midi)


#4

Thanks both of you for the super helpful responses. It's one thing to have a sense of the differences in principle, but it's another thing to have a feel for how it ends up sounding in practice. These are some excellent practical approaches to take, and hopefully save me (and some other novices) some trial and error.


#5

I assume that all of your sound processing occurs within the Axoloti platform, and therefore all external control will be digital. In other words, even if you add knobs or pots, those values will be converted to a 12-bit number by the Axoloti A/D, which only has about an 8-bit resolution after filtering.

The key thing is that handling your own analog control signals can be very difficult if you want low noise and high accuracy. Grounding and shielding are critical, and that's not always easy for someone who isn't an expert in electronics.

It's going to be far easier to find one of the few MIDI controllers that supports 14-bit CC values. Those companies will have figured out the noise issues and will supply the physical controls in a sturdy enclosure that you can rely on. In this respect, you'll be doing better than adding your own pots, because the Axoloti cannot quantize to 14 bits (the best it can do is 12 bits, usually reduced to 8 bits or less).

Of course, there can be delays in the MIDI stream, but there can also be delays when scanning pots.

A rotary encoder might be a good option if you need precision, as opposed to fast and coarse changes. There should be no noise at all with a rotary encoder. You can have as many bits as you like, with the stipulation that it takes longer to change from minimum to maximum if you increase the total range.


#6

Thanks @rsdio for weighing in. A couple of quick followups just so that others following similar paths of thinking have more to refer to...

Yes, this was kind of my question... given the practical facts of digitized control even via potentiometer, I was wondering (and still kind-of wonder) in what circumstances you can really hear a difference between modulating something with a pot and modulating with standard MIDI CC (0-127).

Also, I am trying to do all my projects on the cheap. So, that is a factor.

I did find a used MIDI controller that I have been using instead of bothering with knobs for the short term. This is working fine for now... most of what I am tweaking is things like delay rates and signal blends, and I think the ear just doesn't pick up steppiness in that kind of context.

Reasonable point. I've got experience debugging noise issues in electronics in wholly different non-music-related contexts, so I think I could probably sort it out if it mattered... but "low noise" and "accuracy" are not relevant for my particular applications with the axoloti... that is, designing guitar effects that are part of a rather noise-forward approach to music-making!

I still would like to know if there are specific applications in which people have found that potentiometers are absolutely the way to go, and why... so far I'm doing fine without them, but curious to know when/if I am likely to hit the point where the soldering iron needs to come out...


#7

Coming from the side of also designing guitar effects, the only difference I see between a potentiometer and a midi pot cc 0 to 127 is as follows..
midi..
- its already made, just plug it in and of you go.
- other options also maybe available like saving presets etc..
- you may end up with more than you need.

direct pot..
- its just a pot, can be mounted almost anywhere.
- it takes up an analogue input pin on the Axo.
- All be it very tiny, but requires extra processing to read the pin status at k-rate.
- If required, the pot could be modified to read higher resolution than 0 to 127, as it input is capable of 12 bit resolution.
- One of my favorites is that pots can be harvested from old electronic waste.

Both options work fine, the challenge is what suits you the most. You may want to consider both options while you are figuring it all out. I tried to consider multi effect systems I have seen over the years, and tried to seek influence there. Its my fourth design base that finally feels like it will meet my needs, but I have never done anything like this before, so for more experienced members may not need as many rebuilds..
:grin:


#8

also lets remember 12 bit over 7 bit, is quite a resolution jump, even if you have to bring it down to 10bit to cope with noise, its still a big improvement.

having played with this more recently though, for me, its more about:
do you want to use an existing (midi) surface/layout, or have make something custom, designed specifically for your needs... e.g. there is no way id make a grid, id just buy a Launchpad/midi fighter pro etc, but often you want something smaller or in a different layout.
... and of course, pots aren't the only thing, there are sliders, encoders, FSRs ... so lots of choices.

if you want to be really flexible you could create a midi surface with your own layout using pots/sliders etc, using a Arduino to convert to midi, but that's more work, albeit you can then reuse it for other things too...


#9

The other thing you may want to consider is how you want to interact with your setup.
For example, for me it is important that I can make all required changes with my feet, so my options where based around this, I have chosen to incorporate 3 options, 4 x expression pedals that use a pot, momentary footswitches that will either increase or decrease the value when pressed which I expect will be quite crude, and my own design of a foot controlled rotary encoder that will adjust values, this will allow the control of up to 2 sets of of 32 lots of parameters for any given Axo patch with my feet, you cant change parameters with your hands if you are playing guitar !! :wink:

Would you mind me asking what you mean by "noise-forward approach to music-making!", I have never heard a reference like this before ? :grin:


#10

Haha... what I mean here is that when I am working on songs, usually I am trying to find ways to put more noise in rather than take it out. It's just my current taste musically... I know people stress about power supply noise, clicks, pickup, etc... but as long as it's not on a vocal track, I'm probably going to decide it's adding character!

It's interesting hearing about your setup, which sounds pretty comprehensive. Right now my aims evolve with every song that I am writing. I kind of like the way that the axoloti lets me integrate effects experimentation with songwriting, and I think it's fine if my physical interface actually changes for different songs/projects too. I don't really need a comprehensive performance setup right now (yet). So the questions about pots vs. midi and such are more about just having a feel for what differences there are in terms of what it means for sound quality in the context of different types of parameter modulation.


#11

OK now I understand, nice way to name it.
I usualy refer to it as dirty, it can often be enhanced by also playing messy or what purists like to call "unclean".. ! Dirty is very important to my sound, it gives the multi-layer distortion I am aming for, individuality.
So for me, a sort of holy grail is to find a way to have effects in the axo have its own character. I am about to delve into its random number generators, so maybe this will help.. :grin:


#12

I love noise! … but only in the sound where artistically desired.

I find that noise in a control input is more annoying than helpful. You don't hear this noise directly, but rather it ends up changing the value when you least desire it to.

I prefer precise control, even if I'm controlling noise. That's what I mean by accuracy, which is also about fine control that doesn't jump around randomly.

Yes, you can add a pot just about anywhere - but if a long, unshielded cable from the Axoloti to your hand-made controller ends up thwarting your ability to control your music, then that seems like a detriment.

Of course, maybe you want to incorporate that into a specific part of your music, in which case there's more opportunity to create bizarre (not) controllers using the analog inputs.


#13

Yeah, and on my side I was just noodling around with how to add random jitter in parameter control on purpose! I guess I had not really thought about this as a potential "feature" of pot control... that makes sense, though. It is one more thing to consider as a potential challenge or a musically interesting side effect, depending on the application.

One of these days (long in the future probably) I would love to set up some direct A vs. B vs. C (and D, E...) comparisons to see how it sounds to control the same thing with standard MIDI, 14-bit CC, pots, etc. Will report back if I ever do...


#14

The biggest advantage of the MIDI vs. Pots approaches is the with MIDI you have the ability of presets or machine control. You can do this with analog too, with programming cards (basically trimmers on a PCB card) or presets on the Axoloti itself, but via MIDI you can get dynamic programing over time and presets that fade from one to the next that would be harder with the analog inputs.

I have recently bought a Doepfer A-193 CV to MIDI CC converter module (should arrive today) and plan on merging it with an Axoloti to make a Axoloti Eurorack module with 16 CV inputs. As a byproduct, the MIDI can be recorded of course, so all modulations given to the Axoloti can be recorded too. Can't wait to build it up.


#15

I landed here searching for the actual resolution of analog pots, as I can't test it atm.
After reading this discussion I still don't know the actual performance of an analog pot in practice, what I mean:
When assigning an analog pot to "math/*c" or a parameter dial in general - will the resolution be 0,00x? or 0,x?
Or can one decide? If so what would be max res?
& when does the jitter problem starts/ends (assuming small distance cables in one little box)
0,00x will probably jitter around, what about 0,0x?
Thanks! :slight_smile:


#16

I use 15 pots on the analog ins. I get 0.0x resolution for the 0-64 range, but anything smaller than 0.x i find impossible to adjust reliably. My pots jitter up to 0.06 worst case, but then i'm not the greatest of sauderers.

I ended up making a custom object that reads all 15 analog gpios, one at each k-rate cycle and sends them to midi channels when there is a significant change. I found that to be the most economical wrt. SRAM use, even if I lose resolution that way.

Another question on this issue: My Seaboard connects via USB (doesn't have Din), so i don't really have the option of using a simple midi controller like my Samson Graphite. Or do you guys know of a way to connect a USB midi controller in addition to a USB keyboard?


#17

usb hub support in the dev branch of the firmware...


#18

This HR midi stuff kept on going through my head, and I found that lokki actually made a hr midi out object that you can use for midi-cc-ing control values at high resolution (see here or the patch below).

To take full advantage of that with my pots, I needed to make an object that allows me to `zoom in' on the value, sort of like what pressing Shift and Ctrl do in the GUI. In case anyone's interested, here's a MWE.

hr midi suite.axp (12.3 KB)