FSR72: Designing a compact pressure sensitive keyboard


#16

Thanks for the link, and from the looks of that list, nearly everything out there uses Fatar keybeds anyway, apart from the big manufacturers who use their own. Looks like I'll have to do the same when the time comes. I've nothing against Fatar though, other than the prices.

It's a shame CASIO don't sell their keybeds, cause to be honest, I really like their latest keybeds, as used in their latest synths and workstation keyboards. If I'd had a choice, I would definitely have used theirs.

On the plus side I suppose the Fatar keybeds are well documented in how to rig them up to other hardware. Due to the popularity of them, it's a wonder there's not a dedicated Fatar keybed input object designed for Axoloti seeing as Fatar is pretty much the only option we have anyway (new I mean).

Anyway, thanks again, I'll get notifications from this thread now. I'm interested in learning about keybeds and connecting them up to Axoloti.


Velostat multitouch matrix
#17

The idea of 3D-printing is very close to my heart. It would for intance also be ideal to make a more advanced version of my isomorphic Janko adapters. Until now I have however resisted the temptation to actually buy a printer because I do not want to end up in a situation where using one means more frutration then actual output. I've encountered that once with the first colour printers for home use when trying to print my own CD labels. On paper it was THE solution. In practice it was a dead horse. As soon as I find out the technology hass really become mature and affordable I'll jump in though.

I did however already buy a sort of handheld estranged printhead injector tool.

Your own brains and hands have to provide the coördination, which of course kinda sucks, but one could build a reusable mould first and fill that in by hand. As long as the outer surface is formed by the mouldside the results would look just as good when assembled.

The downside would of course be that one has to fill that mould umpteen times hand. It would be a bit like manufacturing chocolate bonbons one at a time. Since both my adapters where built out of hundreds of parts I wouldn't recommend it for such big builds but a few dozen would be reasonably practical.


#18

It's just me siguing on but not a bad association anyway. :grin:


#19

I think the next one will be Denim with stacked 2 octave Janko inspired layouts.
As the layout will be hexagonal, it will be programmatically possible to change the configuration to isomorphic layouts...

I am still in the dreamy, pre-design phase, it is not easy to build and prepare the different layers without missing something... so every detail must be on full scale paper before i start building this one (96 keys, 30x20 cm).


#20

Great stuff!

If you apreciate any help conceptualizing it let me know. It might even be nice to do a parallel build, making it a sort of joined effort so to speak, although you of course deserve all credit for getting there first.

A minimum number of 88 "keys" is my first proposal (only kidding of course). :wink:


#21

Even if it is a purely pressure sensitive keyboard - without velocity nor mechanical parts - I think it is really nice for some sort of sounds (warmpads, brass and solo strings).


With the FSR72, the problem is that stacked octaves cause issues when playing melodies, it is not very natural to go from line to line. Thus, i think having two octaves per row would be nice.


I would say 96 keys on an hexagonal pattern

Different layouts (with redundant keys) are possible:

oct:note

stacked octaves à la Janko (5 octaves):

   3:01  3:03  3:05  3:07  3:09  3:11  4:01  4:03  4:05  4:07  4:09  4:11
3:00  3:02  3:04  3:06  3:08  3:10  4:00  4:02  4:04  4:06  4:08  4:10
   2:01  2:03  2:05  2:07  2:09  2:11  3:01  3:03  3:05  3:07  3:09  3:11
2:00  2:02  2:04  2:06  2:08  2:10  3:00  3:02  3:04  3:06  3:08  3:10
   1:01  1:03  1:05  1:07  1:09  1:11  2:01  2:03  2:05  2:07  2:09  2:11
1:00  1:02  1:04  1:06  1:08  1:10  2:00  2:02  2:04  2:06  2:08  2:10
   0:01  0:03  0:05  0:07  0:09  0:11  1:01  1:03  1:05  1:07  1:09  1:11
0:00  0:02  0:04  0:06  0:08  0:10  1:00  1:02  1:04  1:06  1:08  1:10

iso 3m and 3M (harmonic accordion, 3 octaves):

   2:01  2:02  2:03  2:04  2:05  2:06  2:07  2:08  2:09  2:10  2:11  3:00
1:09  1:10  1:11  2:00  2:01  2:02  2:03  2:04  2:05  2:06  2:07  2:09
   1:06  1:07  1:08  1:09  1:10  1:11  2:00  2:01  2:02  2:03  2:04  2:05
1:02  1:03  1:04  1:05  1:06  1:07  1:08  1:09  1:10  1:11  2:00  2:01
   0:11  1:00  1:01  1:02  1:03  1:04  1:05  1:06  1:07  1:08  1:09  1:10
0:07  0:08  0:09  0:10  0:11  1:00  1:01  1:02  1:03  1:04  1:05  1:06
   0:04  0:05  0:06  0:07  0:08  0:09  0:10  0:11  1:00  1:01  1:02  1:03
0:00  0:01  0:02  0:03  0:04  0:05  0:06  0:07  0:08  0:09  0:10  0:11

iso 4th and 5th (à la stringed instruments, 5 octaves)

   3:07  3:09  3:11  4:01  4:03  4:05  4:07  4:09  4:11  5:01  5:03  5:05
3:00  3:02  3:04  3:06  3:08  3:10  4:00  4:02  4:04  4:06  4:08  4:10
   2:07  2:09  2:11  3:01  3:03  3:05  3:07  3:09  3:11  4:01  4:03  4:05
2:00  2:02  2:04  2:06  2:08  2:10  3:00  3:02  3:04  3:06  3:08  3:10
   1:07  1:09  1:11  2:01  2:03  2:05  2:07  2:09  2:11  3:01  3:03  3:05
1:00  1:02  1:04  1:06  1:08  1:10  2:00  2:02  2:04  2:06  2:08  2:10
   0:07  0:09  0:11  1:01  1:03  1:05  1:07  1:09  1:11  2:01  2:03  2:05
0:00  0:02  0:04  0:06  0:08  0:10  1:00  1:02  1:04  1:06  1:08  1:10

It will be scanned 3000/8=375 times per second. Which should be enough considering the kind of sound I want to control.


My goal is to keep it compact (30x20 cm or so). That's why i stack octaves.
If you prefer a wider format, i think it is quite possible.


I think that a 12 x 16 = 192 key keyboard is still doable (scan freq=3000/16 = 187 times/s using 74HC4067 mux,16 2N7000 and 192 1N4148)... but that's a lot of work.


#22

Fimo/plasticine can be interesting if you don't have a 3D printer. I think that it is better than 3D pens.


#23

Even if it is a purely pressure sensitive keyboard - without velocity nor mechanical parts - I think it is really nice for some sort of sounds (warmpads, brass and solo strings).

I can set a velocity number on my R2M ribbon controller. That is not a standard function though but a code mod somebody did for me. If velocity is not present one can then at least place the velocity on a fitting level. First of all it avoids everything sounding FF all the time which also helps to keep the DAC's from whatever you use as a sound generator from overdriving. Furthermore one simply needs the MIDI headroom to make the poly aftertouch / control aspects work at all!

Basically people have been living without velocity for years and with good poly aftertouch the pressure component becomes a velocity equivalent or can even be converted into velocity data. So imagine that preset level as a sort of minimum level and everyhting hitting hard and fast enough above that level, call it immediate pressure, will work very equal to velocity.

An effect I love to use on the Yamaha CS80 is to have one channel on all the time but set the filtering of the other channel up in such in such a way that that channel only fades in when aftertocuh is applied. Just a user tip of course but also a good example of how one can think when poly expression is available.

Main conclusion: Good poly afterotuch will compensate for a lack of velocity,

With the FSR72, the problem is that stacked octaves cause issues when playing melodies, it is not very natural to go from line to line. Thus, i think having two octaves per row would be nice.

Two octaves would actually be a bit of a minimum to get a good natural from left to right pitch perception.

I would say 96 keys on an hexagonal pattern

My bad joke basically menatto implie that one would replace every note on a full size piano keyboard by at least 2 keys per note. An original Janko actually has 3 keys per note but that might be overkill anyway

I'd say: go for a prctivcal number (and then 96 is already quite high) and simply make the ends of the boards in such a way that using more then one beside the other will be reasoably practical. Just like Roli now offers 2 octave units that can be used in a modular fashion. If one then really wants a bigger size version (say 6 octaves) and has the balls to kleep building it at least is still an option.

stacked octaves à la Janko (5 octaves):

3:01 3:03 3:05 3:07 3:09 3:11 4:01 4:03 4:05 4:07 4:09 4:11
3:00 3:02 3:04 3:06 3:08 3:10 4:00 4:02 4:04 4:06 4:08 4:10
2:01 2:03 2:05 2:07 2:09 2:11 3:01 3:03 3:05 3:07 3:09 3:11
2:00 2:02 2:04 2:06 2:08 2:10 3:00 3:02 3:04 3:06 3:08 3:10
1:01 1:03 1:05 1:07 1:09 1:11 2:01 2:03 2:05 2:07 2:09 2:11
1:00 1:02 1:04 1:06 1:08 1:10 2:00 2:02 2:04 2:06 2:08 2:10
0:01 0:03 0:05 0:07 0:09 0:11 1:01 1:03 1:05 1:07 1:09 1:11
0:00 0:02 0:04 0:06 0:08 0:10 1:00 1:02 1:04 1:06 1:08 1:10

First of all a question: What is the system in the numbering you use in these examples? Per 2 rows it all makes sense but I see no Jnako style repetition of the same numbers in the other row combos. As you can see with my convertors I have decided on 4 rows on top of each other. Having 2 keys per note and the offset is allready very errgonomic. So if I understand you correctly my Janko solution woudl be coded:

0:01 0:03 0:05 0:07 0:09 0:11 1:01 1:03 1:05 1:07 1:09 1:11
0:00 0:02 0:04 0:06 0:08 0:10 1:00 1:02 1:04 1:06 1:08 1:10
0:01 0:03 0:05 0:07 0:09 0:11 1:01 1:03 1:05 1:07 1:09 1:11
0:00 0:02 0:04 0:06 0:08 0:10 1:00 1:02 1:04 1:06 1:08 1:10

and the other notes then to the right of that in a similar fashion.

(Oops, why does this copy not repeat the row offsets? I Hope you get the idea anyway!)

My goal is to keep it compact (30x20 cm or so). That's why i stack octaves.
If you prefer a wider format, i think it is quite possible.

Ah yes. now I get it. Then I would actually like to further focus my earlier remark. Make the standard layout 4 rows high, 2 octaves wide. So basiclly half the height of what you propose above. One can then decide where to place the other octaves by combining more then one pad. Again: Make it modualr so to speak. In my minds eye I now suddenly see jigsaw puzzle type lugs in the rubber to connect evrything up, ha ha. :slight_smile:

I think that a 12 x 16 = 192 key keyboard is still doable (scan freq=3000/16 = 187 times/s using 74HC4067 mux,16 2N7000 and 192 1N4148)... but that's a lot of work.

Sounds fine. As long as the latency stays within a few milliseconds it should actually still outdo DIN MIDI anyway

Let me know what you think of the modular idea.


#24

Never thought of that. It's sooooo long ago I used such stuff. Do modern versions become hard enough quickly enough and what is the shrinking behaviour?

If it's about making pad shapes only: I cut all the pads on my build simply with a circular table saw. Including 2 pieces per lever, so 4 pieces per lever including its 2 pads, the total number of prefab roughs was over 500! :sweat:

Now how's that about perseverence? Have look here how cooky it made me: :stuck_out_tongue_winking_eye:

For your information: The "submarine" is one lever only, still without the 2 pads.


#25

No, they are still the same, but a option for small things.


The notation is

oct:note

oct being the octave
note being the semitone in the octave.


for three octave width, the width of the board woul be something like 40cm.
That's too much for a portable device.


Sort of velocity can be calculated as the initial variation of the pressure when the pressure goes from below the note on threshold to above the note on threshold. But as far as i can tell, it is not very accurate.

Like you point out, i think that there is a lot of nice stuff to do with poly
aftertouch.
Some basic processing like low pass and high pass filtering we discussed somewhere else.
But more complicated processing can be imagined (delayed control signals, non linearities...)
The more i play we aftertouch, the more I believe that control signals are as important as audio signals.


Do you know the "Dualo" ?


#26

I've seen similar concept before and I understand you want to go for a compact layout anyway.

Therefore I actually just proposed a version with 4 rows of 12 or 13 notes, leading to a 48 or 52 pad basic layout. As already mentioned one could then, for instance simply use 2 of such pads stacked on top of each other (which you seem to prefer) or beside each other (which I prefer), in both cases leading to a 4 octave range.

Let me know if you want me to make a quick sketch to visualise it.

Marc


#27

this really looks great @SmashedTransistors

Ive messed about with this quite a bit on the soundplane (and also eigenharps) :slight_smile:

velocity on a full range pressure surface is theoretically very simple, just measure the change over N samples... and calibrate according to the surface.

the difficult bit is capturing the attack transient (which is hugely important for many types of sounds) , since this over a very small number of samples, and also when some sensors are least stable/accurate (at low pressure)

this is why the Eigenharp/Continuum have high sample rates (eigenharp is 3000/sec) and are very stable at very light pressures.... this means you can even get percussive sounds, by directly 'playing the envelope'

honestly, though, I think surface have a 'character' ... if you want a keyboard action, get a keyboard :slight_smile: - so let the surface be what it is, and celebrate it ...

I initially was a bit 'upset' with the soundplane, as it wasn't as 'snappy' as the Eigenharp, but after a while I realised... i bought it to be different, so it doesn't matter..
the soundplane is beautiful for pads/strings, flowing gestures,
the eigenharp is more precise, more dynamic, great for percussive... it can do slow/ambient too, but its very different (as its not a continuous x/y).

anyway, id not get too concerned about aftertouch/velocity, just use pressure, and if you have to use midi, then use MPE, and write/use synths that allow you to 'play the envelope', this is what i do probably 80-90% of the time anyway :slight_smile:

(p.s. if the sample rates a bit low, or jittery, you will probably need to smooth it, otherwise the sound will tend to 'warble' a bit)


#28

Hi,

here is some pics of a new attempt,

this is a 24x32cm Axoloti synth/controller with 108 pressure sensors.

The FSR72 works fine but I have dexterity issues with the "one octave per row" layout.
That's why I try to have two octaves per row, it will be much easier to play melodies.

As I have 108 sensors, I try to simplify the building process based on what i experienced with FSR72.

I use the same trick as before: I use diode tips as electrodes. To get more contact surface, i use a small piece of copper tape under each diode tip. As I had a lot of trouble doing an accurate cardboard grid for the eeontex patches, i simply glue the patches with a nice margin (I don't want the glue to insulate the contact).

Here is the sensor side:

Here is the diode side, organized by octave patches :

Another issue was aligning the columns over the sensor. Here, I use some "conductive" adhesive copper tape. As the conductivity of the adhesive is far from perfect, I insert small patches of aluminium foil.

Here is the temporary holidays layout:

The next step will consist to connect it to the Axoloti, my main concern being that I may have sensitivity variations because of the simplified building process...


#29

many of the grids tune in fourths, this gives comfortable fingering for chords (obviously that depends a bit on grid size) , and also so its isomorphic - which makes it easy to navigate.
the downside, is it uses a lot of 'cells' for quite a small range, as there are lots of repeats - however, those repeats provide alternative fingering, which is useful at times.

(all touches are fully independent in this designed?)


#30

Yes, so the layout can be changed to pretty much anything


#31

It seems that EEONYX stopped the production of the EEONTEX pressure sensitive fabric. It is no more available from sparkfun and many other distributors :frowning:


#32

https://www.ebay.co.uk/sch/velostat :wink:


#33

velostat it is not as good as eeontex


#34

Out of curiosity, what's wrong with the Velostat stuff? I'm curious now, cause I was going to buy some a few weeks back and have a go at making a really long ribbon controller out of it!


#35

Eeontex has a better pressure sensitivity range.
Velostat is a good alternative.