Semi-modular hardware patch bay?


#6

Dear Smasho,

This confuses me.

What I understood until now is that switching to live mode means that one sends the software to the Axoloti but that all th eknobs in the main screen can then still be controlled by either screen input , amnalog input or MIDI input. Of MIDI I am sure and Mathew Tyass's video tutorial seems to indicate that anlog input is also possible.

What you write however seems to imply is that one cannot tweak the software on the screen in the Live mode and at the same time do the same for assigned parameters via the analog and digital inputs on the card!

If that is right it would be a major bummer because that would automatically card-input-wise, lead to an OR situation in stead of an EITHER / OR situation, basically only leaving the possibility of combining the Live mode with a MIDI controller.

Is that right?

The rest what you say is basically what I already tried to describe. Axoloti wil not use the actual analog signals but interpret them by measuring them and convert them to the right binary code.

The in/output sheet seems to indicate only the PAS and PA4 board connections can be used as analog outs, thus at best leading to a bit of a lobsided situation of 13 analog inputs against only 2 outputs. Making the use of a hardware patchfield for the Axoloti itself rather unpractical indeed.

Well let's say it would indeed be rather akward to do external patching since everything can already be done wihtin the software. Which sort of brings me back to the conclusion that one can better use the analog inputs for other things.

But if one insists patching could still play a part, for instance by patching signals from an external modular system into the Axoloti, assuming the right voltages are fed in of course.


#7

The knobs, yes, they can be modified real time.

the interconnexions between the objects no.


#8

Interconnections could be done, but would be rather complicated within the patching environment given that it is not realy required.
For example, interconnections could be re-routed via mux / demux situation where plugging a connection into a certain GPIO pin would tell the mux / demux which value to apply and in turn re-route the interconection to your desired destination. But you would still need to find away to ensure both connections are correctly paired, More to consider. One may seem simple enough, but how would you apply many of them.

But it is it worth it to go to so much effort for the look of patching between options, if it is alot easier and uses less resources to just hit a switch of some sorts, maybe not. But this is the beauty of the Axo, we don't do it because its easy, we do it because we want to.
:grin:


#9

That's why I mentioned scanning.

In the scan process only one (digital) output is active at a time. And its interconnexions can be evaluated.

In fact, i imagine a process similar to a keyboard scan (including anti ghosting diodes).


#10

OK, then the rest still applies. Since a patchfield can provide similar input info as a set of knobs a patchfield should still be posisble within the confines I sketched. For an anlog inoput it will not make a difference if the incoming voltage is generated by changing a voltage via a variable resistor or via some other (external) means,as long as (one can not repeat it often enough) the voltage specs are kept in mind.


#11

I got to thinking that their might actually be quite a simple solution that does not take up too much resources, and a patch bay type scenario is just one of many that could easily be adapted. I am not Synth guy, so please bare with me.
The way I see it, just like in an object, we want to go from somewhere to somewhere, in this setup, you could go A to B, A to B to C, but not B to A, C to A or C to B.
In this example, lets focus on A to B.

In the Axo patch,
- B is a monopole dial connected to a midi CC value.
- A is a Midi Internal send object where the CC value is connected a value read from an analogue input pin.

In the hardware,
- Build an output port for B with Resistor / 3.3V / GND setup to create a unique analogue value sent out of port B, single wire only required.
- Build an input port for A connected to an analogue pin so the unique analogue value read will set the CC value on the midi internal send object to the same CC value set on the monopole dial that you want the values to go to.

The above describes a simple approach that could easily be expanded in a patch without too much impact on resources, not only that, it should work fine in live mode, might be a bit twitchy when connecting depending on the plugs you use, but I think what I like about it is, it could easily be extended to other styles without patch cords etc.. and it could easily be implemented between several Axo boards as well.

I am sure that are many ways the idea could be fine tuned, but there it is.
I hope I have explained it well enough to get the idea across.
:grin:


#12

Further thinking.. :thinking:
It could be setup in reverse.
Setup A to B,
- A Contains the specific CC value, sent via "Internal midi send", and output hardware.
- B instead has "Internal midi receive" and input hardware.
In this setup, it would mimic the Axo path setup in the patch, also allowing multiple outputs.
So if you had an LFO, you could send the same CC data to several inputs.
:grin:


#13

At this point, we should make some schematics...


#14

I wouldn't normally offer a schematic without knowing it works, as my skills in this area are limited.
So anyway, here is at least something that my show the direction I am going in.
Even though I have separated outputs in inputs, parts or portions of can be swapped when patched in objects, just as long as 2 outputs are not connected to each other.


#15

I understand better, it is much simpler that what i described.

On the inputs, you can guess which input is connected simply with its value.

I think you should add pull up resistors on the inputs so that +3v3 means "nothing connected".


#16

I don't think it would make much of a difference, I tried this setup n the Axo once before, the resistor ladder was connected to switches. I tried it because I was hoping it might filter out a spike that happened when the button was pressed, a falling edge trigger instead of the rising edge, but didn't work, but the spike never exceeded 3.3v on the analogue pin. To solve it, I had to apply a delay that would wait for the spike to disappear before reading the pin. I don't think it would be an issue if using patch cables.


#17

So each analog input will be reading a constant value based on how far down the "output" ladder it's patched to? Sounds like a good idea honestly. I feel like it's a bit inefficient though, even though we have 15 analog inputs. There must be a way to fit more in there while also leaving room for pots.


#18

There are a few ways to increase the analogue inputs.
You will find this post interesting reading.


And there are few more floating around to read.
But I would test a small version just in case I have missed anything, and to iron out the tweeks etc..
I think what has realy made this idea cool, is the internal midi that can be patched in so easily.


#19

First problem I haven't considered is linking an audio line.
The patch does it perfectly with the red s-rate link, but I highly doubt there is any value sending audio data down an internal midi line.

So what is the alternative,
I have thought of replacing the internal midi objects with a custom object.
Inputs from the pins to read the analogue value.
Inputs for signal origin.
Outputs that link to signal destination.
The difference in this object, the analogue value read would link the signal destination to the signal origin.
Example..
Analogue read A, B, C, D
Origin input iA, iB, iC, iD
Destination output o1, o2, o3, o4

  • If value at B = 3, Destination output o3 will be connected to Origin input iB.
    And so on etc..

And different objects could be created to encompass S-rate, K-rate and bool where needed.

:thinking:


#20

The other advantage an object like this would offer, if you swapped out the analogue read pins for midi input values, you could control this with an external midi controller.

So who makes midi controllers that look like patch bays ?.. I don't know, my knowledge of synths is very limited, only what I have learnt on this forum.. :stuck_out_tongue_winking_eye:

I guess you could make it yourself. Just like any other diy midi controller with different hardware. By applying the analogue read concept in this post, should be pretty straight forward.

Why am I so fascinated with this idea... because it replaces the need for a display of sorts to know what's connected etc.. all the cable will tell you what is connected to what.
:sunglasses:


#21

I have considered this idea before, actually inspired by the MS20-ic

in my idea, this was solely for patching 'on the fly' within axoloti .. I'll come back to this later, as I'm not sure if this is your goal or not (as bastls approach allows for other devices to get involved)

my approach:
i considered this actually as mainly a software problem (perhaps because I'm a software guy :slight_smile: ) , basically the GPIO , would just connect digital OUT to digital IN(s) , and then each digital out woud send a unique digital signature , such that the input would know to which output it was connected.
for patching, I was then just going to create an input and output objects, a bit like the send and receive objects... but which would be gated/routed according to the current physical connections.

your approach is different... (my understanding could be incorrect, so bare with me :slight_smile: )
I guess you must still be using digital outs... as there are only 2 analog outs.
in which case, you still end up with a essentially a switch... but your using the voltage as a signature.
... one question, won't the voltage change, if you have 2 outputs connected to 2 different inputs?
as the 3.3v will now be divided thru two different paths?
(i.e. OUT 5 -> IN 5 = X volts, but when you in addition connect OUT1 -> IN1 , is the O5I5 still X?)
I guess this could be avoided if you essentially scan the outputs, or perhaps you can just calculate this, as its still a constant... perhaps you covered this above, but I just missed it.

internal midi, yeah nice if you want to have easy, CC mapping, but it does limit you to 7 bit, and its also not at audio rate. (which I think was the point you were making about s-rate link)

'on the fly within axoloti' ... so another approach its to go the whole 'cv' approach, and just make it a 3.3v voltage... this would allow other devices (or even multiple axoloti) to join in the fun... as the signal is not just a routing switch, but a real signal (this is what bastl do)
Ive actually made up some boards which allow, this but using 5v, so I can interface to an AE modular, and other BASTL stuff which is 5v, which was the primary advantage of this approach as i saw it.

the main issue here, is Axoloti only having 2 analog outputs... and there are not at audio either.. but perhaps buying a cheap DAC for output would be a solution... not sure if there is one with many outputs.... something like 8 would be ideal for me :slight_smile: (hmm, I guess bastl must do similar, or perhaps I can just use an teensy/ arduino or something)

yeah I think I did once come across a midi controller like this... cant remember what it was called... not sure if it was called a patch bay, or a matrix... which is basically the same thing.

EDIT: he, he discourse is pointing out @gavin and I have touched on this before


#22

Thanks TB, think you may be right about the resistance division, that's why I was thinking if you used trim pots instead, you know the tiny little potentiometers that get soldered directly to pcb's.
They can be adjusted but not recommended to be adjusted as much as the standard pots we use in our builds. If you used these for each output, you won't need a pile of resistors too build you analogue division, additionally the trim pots can be adjusted for each output as required, and it would make adding more later much easier.
There was never any intention to use analogue output, shouldn't be needed. Only analogue inputs are required.


#23

Something like this..


#24

Mathematically speaking, a patch bay, even with mixing resistors, is a linear system.
It means that you can determine how the systems works for any inputs if you measure its response to an elementary set of signals i.e. scanning.


#25

Here is a setup that might work with only two analogue inputs.
This will provide a lot of options and still leave plenty of pins for other things.
The idea is to switch between different analogue values on the output, which can be read on pin1 as to which one is on, the voltage on in the output will be connected to the input providing voltage to that resistor ladder providing an analogue reading at pin2 providing you with an analogue value to read as the input.
The switching device connected to 3.3v can be any type from manual to digital to IC.
A decade counter IC may be a good option here, but not sure if they can operate at 3.3V.