Softpot ribbon controller


#22

depends a bit if you want an emulation of a string or a floating piano roll. As a guitar player I would prefer the first, so yes converting the linear input makes sense :slight_smile:

I think to achieve one could combine two different sensors, like the softpot in combination with a capacitive touch sensor.

Thanks for sharing! I would be really intrigued by such an instrument/controllers but it is not really on my high priority. At the moment I'm exploring my diy fretless guitar, and with an ebow and some filters+effects in axoloti I can make sounds close to onde matenos / gliding synthesizer.


#23

I stand totally corrected on that remark about the neccesity of the ribbon controllers scale being linear. How very Keyboard-centric of me! :pensive:

An advantage of a linaar layout is however that higher notes will have the same scale length as the lower ones. Most of us are no violin or frettless bass players and then a bit of leeway before serious detuning accidents occur can be an advantage.

Marc


#24

combine a softpot for pitch with a force sensitive resistor below it for sending velocity... I used a guitar tuner to help me identify where to place some note markers... a great visual tool.


#25

Playing great. I love it! And although I have a few ideas to add to the build, they can wait. :star_struck:


#26

Hi @timeorspace,
I'm experimenting with a 20cm softpot and it is quite fun to use even if i limited it to 12 semitones (~1.5 cm per semitone is quite playable).

I have added an object (a subpatch) in the library:
tiar -> kfunc -> smoothSemiToneQuant

You simply have to insert it between your pitch control and the oscillators pitch input.

It quantizes the pitch smoothly, i.e. it preserves vibrato and glides.


#27

As @mtyas stated, it is possible to linearise @johannes "dual touch" trick, it is just a matter of a few math ops.

Here is an ASCIImatic of my little setup :

 0v---[ 1k ]-----[softPot]-----[ 1k ]---0v
              |      ^      |
              V      |      V
             PC0   VDDA    PC1

The soft cursor is connected to VDDA and the sides are connected to the ground through resistors.
Finding where the fingers are is a matter of inverting the voltage dividers formed by the 1k resistors and the sections of the softPot.

The math/gain depends on the ratio between the softpot total resistance and the "side" resistance (thus side resistors main have to be adapted).

The math for the other side is the same, but it will provide the distance from the other border of the softPot, so, you have to "complement it" (64-x):

Note: when there is no "touchés", PC0 and PC1 goes towards zero (zero+noise). If no FSR is layered, this can be used to generate a gate signal and to control a sample and hold object for pitches.

The main interest in the linearisation is that both "touchés" are on the same scale...
thus it is possible to detect when both "touchés" are so close that they correspond to a single finger (left side and right side of the same finger).

In the case the "touchés" are separate, it is even possible to correct the position by asserting an offset (5mm or so, corresponding to the half width of the finger touch)

I think that those tricks (and sort of cheating) make a ribbon controller much more enjoyable.

Well... now, i'll have to get a 50 cm softpot... one octave is not enough !


#28

@SmashedTransistors thank you... will look at it. much appreciated.


#29

very very informative... thank you @SmashedTransistors. As of yet, I haven't wired it for proper duo-touch but plan to. During the build there were a lot of 'space' issues that gave me grief and just wanted to get it done... so I could mess with it :wink: Winter is here so a good 5 months to include some new ekciting updates. :slight_smile:


#30

Even with a small ribbon it is quite tricky to match left and right "touchés" positions.
It is a delicate calibration work.

  • linearisation must be good for both
  • scale
  • offset
  • mirror

The accuracy of the linearisation seems very important to me and the values of the side resistors is influential. This evening I tried with 10k instead of 1k resistors. The result is more accurate

Even if it is tricky i think it is quite worth the effort :
* Duo phony of course
* Left/right note priority: when you play legato with more than one finger, the pitch goes to the correct value (and not a mean value).

I imagine that it will need some time to get duo touch accurately working with a long softpot.


#31

my findings with my controller (4 soft pots a 50mm) were that each softpot is different and not very linear by itself. so it is easier to create a calibration routine and a lookup table for the pitches.

EDIT: that should read of course 500mm :slight_smile:


#32

Hi @lokki,

I've a "spectra symbol" SP-L-0200-103 (as sold by sparkfun and its distributors)
and it seems I am quite lucky, it is very linear.

the datasheet specifies +-3% for linearity:

So, you're quite right @lokki !
Even for a small 20 cm softpot, 3% represent 0.6 cm.

So, for a 1m, it will be +-3cm

It seems that spectra symbol also produce +-1% linear softpots.


#33

The 500mm softpot I am using (also from sparkfun) also has this tolerance... but I can assure you that the pitches are always at the same location along its length
(Edit: well, with my finger they are always at the dots I laid out... but who knows, maybe out a mm or so? I haven't done long studies). I believe the tolerance comes into play more with temperature, altitude, that sort of thing (but could be wrong?). I have it set up to have a 2 octave range with 8 octaves selectable via a pot. I read the analog voltage and convert it to a note number. The pitch I calculate to later use in a pitchbend calculation.

Of course, I am doing all this in arduino to send midi so it may not be as applicable for true analog connection:

potentiometer_reading = analogRead(POTENTIOMETER_PIN); // Read the softpot
note = ((potentiometer_reading * RANGE)/1023); // Range is 24 notes
note += 12 * octave; // Transpose to the right octave selected
pitch = 440 * pow(2,((note-69)/12.0)); // Use later for pitchbend calc

#34

My first prototype used that 'Coagula' calibration routine at startup which would after two touches high and low, it would set the 'limits' of the readings. It seemed to work well, and I may go back to that approach but for now happy with it... (and I don't play gigs soooo... :wink: )


#35

@SmashedTransistors @lokki
Edit #3: :rofl:
my ribbon is definately not linear, like a piano, the notes play much more like a guitar... which I am accustomed to... getting closer/further together/apart with pitch. (for clarification)


#36

nono the tolerance is from softpot to softpot. so if you write code for one it will most certainly not work the same way on another. since i use 4 soft pots in my build i had to find a way to "generalise" the setup process.


#37

ah yes, that makes more sense from a manufacturing point.


#38

Schneiderladen in Berlin offers a lot of nice alternatives.

https://www.schneidersladen.de/en/catalogsearch/result/?q=ribbon+controller

Some are discontinued (such as the separately sold Eowave ribbons) but the separate Doepfer ribbon controller without the R2M's control box is still avialable

https://www.schneidersladen.de/en/doepfer-a-198-ribbon-controller-nur-only-manual.html

Not the cheapest alternative fur sure but including that extra pressure sensor and I can pledge for it's good functionality and feel, except some, probably unavoidable, temperature sensibility (I assume all ribbons are in essence still analog devices in themselves). Thus the exact note positions tend to drift a slight bit during operation. I simply compensate by keeping my note position scale (see my article) on a loose and thus adjustabale ruler. A very basic fix and it all reminds one of pitch-drifting Minimoog days but it does the job al the same. :grinning:


#39

But, yes your right, i'm already imagining calibration methods

  • locating effective semitones
  • or pressing every 1cm and making a reciprocal table/function.

But, if I'm going duo touch I'll certainly have to go for the second option as the non linearity is not necessarily symetrical (in this case i will have a table for left and a table for right "touché").


#40

Hi @brasso
I think that both MESI/Eowave and Doepfer ribbon controllers are based on the Spectra Symbol softpots.
There are few softpot / membrane potentiometers manufacturers and as far as i found, they provide small sized softpots (such as the force and position FSLP Sensor from interlink).


An alternative would be to use a pressure sensitive material and a bunch of electrodes...
Knowing the pressure on 3 points around a maximum allows interpolation of the continuous position of the maximum (quadratic interpolation).
But it seems for too complicated to me on both hardware and software points of view for hobbyists.
I think that Roli and Mc Millen stuff work that way (pressure sensors lines / arrays) while the Haken Audio Continuum controller used and uses other technologies such as cameras to hall effect sensors.


#41

Yeah, That is all amazing technology. I'd love to own a Hakan because it is about the best concept one can come up with. It's a real instrument again that one has to master to get the best out of it.

I do not get all the technological terms you are using but I gues they all work with some network of measuring points / lines and that a specific position and / or pressure amount is extrapolated from the different measured "anomalies" within the grid when the surface is touched. At least that is the way I'd do it. If I had the technology.

I persoanlly went for a solution that is a bit less high tech, mostly for budgetary reasons. I use poly aftertouch to at least have a fully polyphonic X axis and add the obviously monophonic ribbon controller for th eodd momen tof X-control, although that of course uses up one finger / hand. By building mechanical Janko type keyboard adapters I have converted my keyboards into a isomorphic solution. So everything I play can just be transposed by startign the same fingering on another key It is a very natural solution that given one an almost linear feeling for pitch on the keyboard.

The advantage of this solution is that it bridges the gap between the old mechanical approach with its distinct ergonomic advantages and manual feedback and the somewhat more "'distant" feel of most flat surface controllers. Banging out the emediacy in the music through sheer muscle force is still a great way to invoke emotion.

But Hakan or softpot: Uisn gextar comtrolelrs to increase expressio nalwys gets a thumbs up from me. Too much music is made by just injecting events into a quantised grid. No wonder everybody sounds alike.