What linear sensor for a keyboard?Keyboard fixingusb keyboard with many simultaneous key pressesHow would I use this 12 key keyboard?Bluetooth keyboard?Hacking USB Keyboard for external keysBest linear position sensor for piston feedbackModern keyboard controllerWhat is this keyboard connector and how to connect it to MCU?Linearizing a 0-10V non linear sensorWhat kind of led would be used for this keyboard

How do I repair my stair bannister?

Are Warlocks Arcane or Divine?

What (else) happened July 1st 1858 in London?

What should I use for Mishna study?

How to interpret the phrase "t’en a fait voir à toi"?

Calculating the number of days between 2 dates in Excel

How can I successfully establish a nationwide combat training program for a large country?

Can somebody explain Brexit in a few child-proof sentences?

Is there any significance to the Valyrian Stone vault door of Qarth?

Can a malicious addon access internet history and such in chrome/firefox?

What does the "3am" section means in manpages?

How will losing mobility of one hand affect my career as a programmer?

Can I use my Chinese passport to enter China after I acquired another citizenship?

The One-Electron Universe postulate is true - what simple change can I make to change the whole universe?

Adding empty element to declared container without declaring type of element

A known event to a history junkie

Pronouncing Homer as in modern Greek

A car is moving at 40 km/h. A fly at 100 km/h, starts from wall towards the car(20 km away)flies to car and back. How many trips can it make?

How to check participants in at events?

Can I rely on these GitHub repository files?

Simple image editor tool to draw a simple box/rectangle in an existing image

When is separating the total wavefunction into a space part and a spin part possible?

What is Sitecore Managed Cloud?

Is a naturally all "male" species possible?



What linear sensor for a keyboard?


Keyboard fixingusb keyboard with many simultaneous key pressesHow would I use this 12 key keyboard?Bluetooth keyboard?Hacking USB Keyboard for external keysBest linear position sensor for piston feedbackModern keyboard controllerWhat is this keyboard connector and how to connect it to MCU?Linearizing a 0-10V non linear sensorWhat kind of led would be used for this keyboard













7












$begingroup$


I'm trying to make a velocity-sensitive keyboard for playing music.



I have to measure the position of each key in order to know how loud the sound should be.



The volume of the sound is a function of the velocity of the keys at the end of the descent. I know the position can be recovered from the velocity by integrating it.



What would be the cheapest and easiest, yet still reasonably precise way to do it?



I don't know exactly what “reasonably precise” would mean in the context. I'll have to test it.



The length of the maximum displacement is about 2 cm.



EDIT: not as some answers seem to suggest, the loudness is NOT function of the mean velocity of the key.



EDIT2: The loudness is function of the hammer speed at the moment it hits the string, but the key isn't pushing the hammer until the end of its path. It is really like throwing a ball on a wall: the ball leaves the hand at one moment, before it hits the wall.










share|improve this question









New contributor




Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$







  • 4




    $begingroup$
    You could use an IR-diode and a photodiode next to each other below the key, the photodiode measuring the reflected light. The lower the postion of the key, the more reflected light reaches the photodiode. Then convert the photocurrent to a voltage using a transimpedance amplifier. You will have to play around to see what voltage or voltage change corresponds to which volume.
    $endgroup$
    – jusaca
    yesterday










  • $begingroup$
    Have you considered putting an accelerometer on each key? Integrating acceleration gives you velocity, and integrating velocity gives you position. Since you're dealing with short distances & time periods you could probably ignore the accelerometers' small offset errors.
    $endgroup$
    – brhans
    yesterday






  • 1




    $begingroup$
    @cat I'm familiar with Launchpads and I still have no idea what you are talking about. Can you be a little more helpful?
    $endgroup$
    – Elliot Alderson
    yesterday






  • 1




    $begingroup$
    Yes I believe you are wrong. Compare a $1 accelerometer to an individual mechanical sensor on each key. Think of the reliability from zero moving parts (assuming you do the interconnects properly). You would need a reasonably capable microcontroller and a little experience writing firmware to pull it off though.
    $endgroup$
    – brhans
    yesterday






  • 1




    $begingroup$
    @jusaca looks like that's already a product on the market: deskthority.net/wiki/Adomax_Flaretech :)
    $endgroup$
    – user60561
    yesterday















7












$begingroup$


I'm trying to make a velocity-sensitive keyboard for playing music.



I have to measure the position of each key in order to know how loud the sound should be.



The volume of the sound is a function of the velocity of the keys at the end of the descent. I know the position can be recovered from the velocity by integrating it.



What would be the cheapest and easiest, yet still reasonably precise way to do it?



I don't know exactly what “reasonably precise” would mean in the context. I'll have to test it.



The length of the maximum displacement is about 2 cm.



EDIT: not as some answers seem to suggest, the loudness is NOT function of the mean velocity of the key.



EDIT2: The loudness is function of the hammer speed at the moment it hits the string, but the key isn't pushing the hammer until the end of its path. It is really like throwing a ball on a wall: the ball leaves the hand at one moment, before it hits the wall.










share|improve this question









New contributor




Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$







  • 4




    $begingroup$
    You could use an IR-diode and a photodiode next to each other below the key, the photodiode measuring the reflected light. The lower the postion of the key, the more reflected light reaches the photodiode. Then convert the photocurrent to a voltage using a transimpedance amplifier. You will have to play around to see what voltage or voltage change corresponds to which volume.
    $endgroup$
    – jusaca
    yesterday










  • $begingroup$
    Have you considered putting an accelerometer on each key? Integrating acceleration gives you velocity, and integrating velocity gives you position. Since you're dealing with short distances & time periods you could probably ignore the accelerometers' small offset errors.
    $endgroup$
    – brhans
    yesterday






  • 1




    $begingroup$
    @cat I'm familiar with Launchpads and I still have no idea what you are talking about. Can you be a little more helpful?
    $endgroup$
    – Elliot Alderson
    yesterday






  • 1




    $begingroup$
    Yes I believe you are wrong. Compare a $1 accelerometer to an individual mechanical sensor on each key. Think of the reliability from zero moving parts (assuming you do the interconnects properly). You would need a reasonably capable microcontroller and a little experience writing firmware to pull it off though.
    $endgroup$
    – brhans
    yesterday






  • 1




    $begingroup$
    @jusaca looks like that's already a product on the market: deskthority.net/wiki/Adomax_Flaretech :)
    $endgroup$
    – user60561
    yesterday













7












7








7





$begingroup$


I'm trying to make a velocity-sensitive keyboard for playing music.



I have to measure the position of each key in order to know how loud the sound should be.



The volume of the sound is a function of the velocity of the keys at the end of the descent. I know the position can be recovered from the velocity by integrating it.



What would be the cheapest and easiest, yet still reasonably precise way to do it?



I don't know exactly what “reasonably precise” would mean in the context. I'll have to test it.



The length of the maximum displacement is about 2 cm.



EDIT: not as some answers seem to suggest, the loudness is NOT function of the mean velocity of the key.



EDIT2: The loudness is function of the hammer speed at the moment it hits the string, but the key isn't pushing the hammer until the end of its path. It is really like throwing a ball on a wall: the ball leaves the hand at one moment, before it hits the wall.










share|improve this question









New contributor




Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$




I'm trying to make a velocity-sensitive keyboard for playing music.



I have to measure the position of each key in order to know how loud the sound should be.



The volume of the sound is a function of the velocity of the keys at the end of the descent. I know the position can be recovered from the velocity by integrating it.



What would be the cheapest and easiest, yet still reasonably precise way to do it?



I don't know exactly what “reasonably precise” would mean in the context. I'll have to test it.



The length of the maximum displacement is about 2 cm.



EDIT: not as some answers seem to suggest, the loudness is NOT function of the mean velocity of the key.



EDIT2: The loudness is function of the hammer speed at the moment it hits the string, but the key isn't pushing the hammer until the end of its path. It is really like throwing a ball on a wall: the ball leaves the hand at one moment, before it hits the wall.







sensor keyboard






share|improve this question









New contributor




Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited yesterday







Jonas Daverio













New contributor




Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked yesterday









Jonas DaverioJonas Daverio

395




395




New contributor




Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Jonas Daverio is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 4




    $begingroup$
    You could use an IR-diode and a photodiode next to each other below the key, the photodiode measuring the reflected light. The lower the postion of the key, the more reflected light reaches the photodiode. Then convert the photocurrent to a voltage using a transimpedance amplifier. You will have to play around to see what voltage or voltage change corresponds to which volume.
    $endgroup$
    – jusaca
    yesterday










  • $begingroup$
    Have you considered putting an accelerometer on each key? Integrating acceleration gives you velocity, and integrating velocity gives you position. Since you're dealing with short distances & time periods you could probably ignore the accelerometers' small offset errors.
    $endgroup$
    – brhans
    yesterday






  • 1




    $begingroup$
    @cat I'm familiar with Launchpads and I still have no idea what you are talking about. Can you be a little more helpful?
    $endgroup$
    – Elliot Alderson
    yesterday






  • 1




    $begingroup$
    Yes I believe you are wrong. Compare a $1 accelerometer to an individual mechanical sensor on each key. Think of the reliability from zero moving parts (assuming you do the interconnects properly). You would need a reasonably capable microcontroller and a little experience writing firmware to pull it off though.
    $endgroup$
    – brhans
    yesterday






  • 1




    $begingroup$
    @jusaca looks like that's already a product on the market: deskthority.net/wiki/Adomax_Flaretech :)
    $endgroup$
    – user60561
    yesterday












  • 4




    $begingroup$
    You could use an IR-diode and a photodiode next to each other below the key, the photodiode measuring the reflected light. The lower the postion of the key, the more reflected light reaches the photodiode. Then convert the photocurrent to a voltage using a transimpedance amplifier. You will have to play around to see what voltage or voltage change corresponds to which volume.
    $endgroup$
    – jusaca
    yesterday










  • $begingroup$
    Have you considered putting an accelerometer on each key? Integrating acceleration gives you velocity, and integrating velocity gives you position. Since you're dealing with short distances & time periods you could probably ignore the accelerometers' small offset errors.
    $endgroup$
    – brhans
    yesterday






  • 1




    $begingroup$
    @cat I'm familiar with Launchpads and I still have no idea what you are talking about. Can you be a little more helpful?
    $endgroup$
    – Elliot Alderson
    yesterday






  • 1




    $begingroup$
    Yes I believe you are wrong. Compare a $1 accelerometer to an individual mechanical sensor on each key. Think of the reliability from zero moving parts (assuming you do the interconnects properly). You would need a reasonably capable microcontroller and a little experience writing firmware to pull it off though.
    $endgroup$
    – brhans
    yesterday






  • 1




    $begingroup$
    @jusaca looks like that's already a product on the market: deskthority.net/wiki/Adomax_Flaretech :)
    $endgroup$
    – user60561
    yesterday







4




4




$begingroup$
You could use an IR-diode and a photodiode next to each other below the key, the photodiode measuring the reflected light. The lower the postion of the key, the more reflected light reaches the photodiode. Then convert the photocurrent to a voltage using a transimpedance amplifier. You will have to play around to see what voltage or voltage change corresponds to which volume.
$endgroup$
– jusaca
yesterday




$begingroup$
You could use an IR-diode and a photodiode next to each other below the key, the photodiode measuring the reflected light. The lower the postion of the key, the more reflected light reaches the photodiode. Then convert the photocurrent to a voltage using a transimpedance amplifier. You will have to play around to see what voltage or voltage change corresponds to which volume.
$endgroup$
– jusaca
yesterday












$begingroup$
Have you considered putting an accelerometer on each key? Integrating acceleration gives you velocity, and integrating velocity gives you position. Since you're dealing with short distances & time periods you could probably ignore the accelerometers' small offset errors.
$endgroup$
– brhans
yesterday




$begingroup$
Have you considered putting an accelerometer on each key? Integrating acceleration gives you velocity, and integrating velocity gives you position. Since you're dealing with short distances & time periods you could probably ignore the accelerometers' small offset errors.
$endgroup$
– brhans
yesterday




1




1




$begingroup$
@cat I'm familiar with Launchpads and I still have no idea what you are talking about. Can you be a little more helpful?
$endgroup$
– Elliot Alderson
yesterday




$begingroup$
@cat I'm familiar with Launchpads and I still have no idea what you are talking about. Can you be a little more helpful?
$endgroup$
– Elliot Alderson
yesterday




1




1




$begingroup$
Yes I believe you are wrong. Compare a $1 accelerometer to an individual mechanical sensor on each key. Think of the reliability from zero moving parts (assuming you do the interconnects properly). You would need a reasonably capable microcontroller and a little experience writing firmware to pull it off though.
$endgroup$
– brhans
yesterday




$begingroup$
Yes I believe you are wrong. Compare a $1 accelerometer to an individual mechanical sensor on each key. Think of the reliability from zero moving parts (assuming you do the interconnects properly). You would need a reasonably capable microcontroller and a little experience writing firmware to pull it off though.
$endgroup$
– brhans
yesterday




1




1




$begingroup$
@jusaca looks like that's already a product on the market: deskthority.net/wiki/Adomax_Flaretech :)
$endgroup$
– user60561
yesterday




$begingroup$
@jusaca looks like that's already a product on the market: deskthority.net/wiki/Adomax_Flaretech :)
$endgroup$
– user60561
yesterday










10 Answers
10






active

oldest

votes


















15












$begingroup$

Most keyboards simply use two contacts per key, configured so that they close (or open) at different positions in the key's travel. They estimate velocity from the time that elapses between the two events. Even the fancy weighted "piano action" keyboards use this basic sensing method.



Trying to measure position and/or velocity directly sounds like massive overkill.






share|improve this answer









$endgroup$








  • 3




    $begingroup$
    I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.
    $endgroup$
    – Jonas Daverio
    yesterday







  • 8




    $begingroup$
    If one contact was at the bottom and the other contact was very near the bottom, you would not have this problem.
    $endgroup$
    – George White
    yesterday






  • 1




    $begingroup$
    Every real instrument has its nuances and limitations. Musicians develop techniques to exploit these for musical effect. The player will soon learn to carry through to the bottom of stroke to get the desired effect.
    $endgroup$
    – Transistor
    yesterday






  • 1




    $begingroup$
    @Transistor Yes, indeed, but my goal here is to try to simulate as close as possible a real piano. There are already plenty of keyboards available, but I never found one that did that. There are probably some really expensive one, though.
    $endgroup$
    – Jonas Daverio
    yesterday






  • 1




    $begingroup$
    The point would be to have a midi output and the possibility to have more keys (for microtonality) while keeping all the sensation of a real piano. I know this will never be reached anyway. And I also want to keep it relatively cheap, but if I can't, I'll stick on the regular solution.
    $endgroup$
    – Jonas Daverio
    yesterday


















9












$begingroup$


I have to measure the position of each key in order to know how loud the sound should be.




Normally key velocity is calculated by measuring the time between the normally closed up-switch breaking and the normally open down-switch making.





schematic





simulate this circuit – Schematic created using CircuitLab



Figure 1. A break-before-make keyboard contact is typically used for velocity measurement.




The volume of the sound is not only function of the velocity of the keys at the end of the descent. ...
The length of the maximum displacement is about 2 cm.




In this case you need to mechanically arrange the normally closed contact so that it breaks in the last few mm of travel.





schematic





simulate this circuit



Figure 2. The mechanical switching arrangement.



It seems to me that your best bet would be to modify an existing MIDI bass pedalboard to suit your purposes.




OP's comment to Dave Tweed:




I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.




That is why I proposed activating the changeover switch in the last few mm of travel.






share|improve this answer











$endgroup$












  • $begingroup$
    I responded back for why I think this is still insufficient.
    $endgroup$
    – Jonas Daverio
    yesterday










  • $begingroup$
    I think you misread what I wrote. I meant "The volume of the sound is NOT only function of the velocity of the keys at the end of the descent."
    $endgroup$
    – Jonas Daverio
    yesterday










  • $begingroup$
    Indeed, the energy depends on the speed over the time-length of the impact, which is a function of acceleration (and the jerk, if you don't assume constant acceleration). However, are sure that makes much of a difference? Can you characterize the specifics that you have or are looking for? I don't know what that would be. It might depend on the effect that it's supposed to have on the algorithm.
    $endgroup$
    – vectory
    1 hour ago



















7












$begingroup$

If the important variable is the impact of a "hammer" that you're trying to emulate, consider piezo sensors which allow you to measure this directly. They produce a pulse whose amplitude depends on the impact impulse.






share|improve this answer









$endgroup$




















    5












    $begingroup$

    You should take a look at analog keyboards. Take a look at this video. This is just an example of concept.



    Edit:
    Also, if optical switches are not working for you, take a look at this:



    enter image description here






    share|improve this answer










    New contributor




    Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






    $endgroup$












    • $begingroup$
      Apparently, they use a pair of IR-LED and photosensor: blog.wooting.nl/flaretech-the-optical-keyboard-switch However, I'm not sure wether they measure the delay between the emission and the detection or wether they measure the intensity of the light that could make through the tunnel.
      $endgroup$
      – Jonas Daverio
      12 hours ago











    • $begingroup$
      I linked that just for the example of analog keyboard. You can take a look at reddit.com/r/MechanicalKeyboards/comments/9ii6gw/… and imgur.com/gallery/ImrH7nO . I'am not too familiar with the subject, just trying to help to push you into right direction :)
      $endgroup$
      – Matt
      12 hours ago






    • 1




      $begingroup$
      While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review
      $endgroup$
      – Blair Fonville
      12 hours ago






    • 1




      $begingroup$
      @BlairFonville Fair enough. Let me summarize it. There is a PCB printed coil under each key cap. As you press the button coil measures the inductance change caused by key spring compressing and decompressing, therefore, you can get pretty accurate reading of the switch position.
      $endgroup$
      – Matt
      11 hours ago


















    2












    $begingroup$

    You can treat this as a hybrid digital/analog instrument by placing microphones[1] inside the keyboard, tuned to the sound of striking the keys. Signals from the microphones augment the traditional switch-based input, so the switch tells you which key is pressed, and the microphones tell you how loud the most recent keypress was.



    2 or more microphones along the keyboard's length would permit decoding a chord with loud/low notes and soft/high notes and vice versa.



    [1]: I keep saying "microphone", but I mean "generic vibration sensing device".






    share|improve this answer









    $endgroup$












    • $begingroup$
      That's pretty much how an E-Guitar works, I guess. However, the question didn't mention any acoustic parts, just keys.
      $endgroup$
      – vectory
      1 hour ago


















    2












    $begingroup$

    How about capacitive sensing? Tape some aluminum foil to the bottom of the key, ground the bottom of the keyboard, and measure the rise time through a 100k resistor.



    This method can be made almost arbitrarily precise, as long as your processor is fast enough to discriminate the change in capacitance.






    share|improve this answer









    $endgroup$












    • $begingroup$
      So, I would have to pass AC in it, wouldn't I?
      $endgroup$
      – Jonas Daverio
      23 hours ago






    • 1




      $begingroup$
      @JonasDaverio I'm not sure what you're connecting the keys to, but one GPIO per key would suffice.
      $endgroup$
      – 0xDBFB7
      22 hours ago










    • $begingroup$
      I'm not sure how I am supposed to measure the capacitance. One plate is connected to ground and the other is connected to what? A constant voltage source?
      $endgroup$
      – Jonas Daverio
      12 hours ago






    • 1




      $begingroup$
      The Teensy LC microcontroller[1] has 11 capacitive sensing inputs and a C++ library that makes it as easy as calling analogRead in Arduino. [1]: pjrc.com/teensy/teensyLC.html
      $endgroup$
      – hoosierEE
      9 hours ago






    • 1




      $begingroup$
      @JonasDaverio sorry, I didn't explain the circuit very well. You connect a digital output to the key via a high value resistor, set it low to discharge any stray charge, and then set it high. You also connect a digital input directly to the key. The capacitance will slowly charge through the resistor, and you time how long it takes before the digital input turns on. This time is equal to the RC time constant of the circuit.
      $endgroup$
      – 0xDBFB7
      8 hours ago


















    2












    $begingroup$

    One option could be Hall sensors, which sense the strength of a magnetic field. There are different types of Hall sensors for digital and analog sensing, you need one that has analog. For example SI7211 costs about 0.80 USD.



    You also need a small magnet underneath each key. When the magnet gets closer to the sensor, the magnetic field increases which increases the sensor's output voltage.






    share|improve this answer









    $endgroup$








    • 1




      $begingroup$
      Apparently, they use it on some music keyboards. I think this is a really simple and good solution. I will compare the costs with 0xDBFB7's solution.
      $endgroup$
      – Jonas Daverio
      6 hours ago


















    0












    $begingroup$

    You may want to research spring return variable resistors, spring return potentiometers, or linear position sensors. Here is one example:
    http://ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0



    Another possibility may be to use a small rotary encoder (and mechanically convert the linear key press motion to rotary motion). The encoder would output one or more sets of pulses as the shaft rotates. A higher pulse rate would indicate a higher velocity press. The encoder position could be tracked directly if the pulse groups are sent to additional digital logic. Here's an example part: https://www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbIjOSa4QIVCEsNCh3JAAKuEAQYAyABEgKM_fD_BwE






    share|improve this answer











    $endgroup$




















      0












      $begingroup$

      If you want super-accuracy at a reasonable price, how about using a linear encoder, attaching a Gray-coded strip (which you print yourself using a laser printer onto a transparent sheet, then cut up and attach one to each key) - more details of how they work under rotary encoders here. This way you need two (perhaps 3 so you get an accurate indication of end position) digital lines per key. This will allow you to measure velocity with very good accuracy and even position if that's relevant. The advantage of this is you could retrofit it to an old keyboard (even an acoustic keyboard).



      Caution: when I was a teenager (a long while ago) I wondered for ages whether I could make a realistic keyboard more cheaply than buying them. It seemed unlikely then and it seems even less likely now. The cost effective method is therefore probably "buy a velocity sensitive keyboard and take it apart" which is no fun.






      share|improve this answer









      $endgroup$








      • 1




        $begingroup$
        Yes, I'm not pretending this will end up cheaper than a commercial one, but I'm trying to construct a special arrangement of keys that doesn't exist on the market. For your answer, I'm not really sure what you mean. Do you mean making a linear encoder from scratch? I don't understand what's the point of the transparent strip. And 3 bits seems a bit low to encode precisely the position and to deduce the velocity from it.
        $endgroup$
        – Jonas Daverio
        12 hours ago











      • $begingroup$
        A linear encoder will give you velocity with 2 bits only (see links) to a great resolution (you could get position to 256ths of the travel distance very easily). By timing the period between grey code bit transitions you will get a very accurate picture of velocity at different stages of travel of the key. 3rd bit gives you accurate 'hammer hits strings' signal. I was suggesting you use a linear encoder optical reader with your own 'tape' - transparent strip.
        $endgroup$
        – abligh
        1 hour ago



















      0












      $begingroup$

      Resistive sensing was already mentioned in comments.



      Strain Gauges are used in weight scales and the like.






      share|improve this answer










      New contributor




      vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      $endgroup$












        Your Answer





        StackExchange.ifUsing("editor", function ()
        return StackExchange.using("mathjaxEditing", function ()
        StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
        StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
        );
        );
        , "mathjax-editing");

        StackExchange.ifUsing("editor", function ()
        return StackExchange.using("schematics", function ()
        StackExchange.schematics.init();
        );
        , "cicuitlab");

        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "135"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: false,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: null,
        bindNavPrevention: true,
        postfix: "",
        imageUploader:
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        ,
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );






        Jonas Daverio is a new contributor. Be nice, and check out our Code of Conduct.









        draft saved

        draft discarded


















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f428802%2fwhat-linear-sensor-for-a-keyboard%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown

























        10 Answers
        10






        active

        oldest

        votes








        10 Answers
        10






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        15












        $begingroup$

        Most keyboards simply use two contacts per key, configured so that they close (or open) at different positions in the key's travel. They estimate velocity from the time that elapses between the two events. Even the fancy weighted "piano action" keyboards use this basic sensing method.



        Trying to measure position and/or velocity directly sounds like massive overkill.






        share|improve this answer









        $endgroup$








        • 3




          $begingroup$
          I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.
          $endgroup$
          – Jonas Daverio
          yesterday







        • 8




          $begingroup$
          If one contact was at the bottom and the other contact was very near the bottom, you would not have this problem.
          $endgroup$
          – George White
          yesterday






        • 1




          $begingroup$
          Every real instrument has its nuances and limitations. Musicians develop techniques to exploit these for musical effect. The player will soon learn to carry through to the bottom of stroke to get the desired effect.
          $endgroup$
          – Transistor
          yesterday






        • 1




          $begingroup$
          @Transistor Yes, indeed, but my goal here is to try to simulate as close as possible a real piano. There are already plenty of keyboards available, but I never found one that did that. There are probably some really expensive one, though.
          $endgroup$
          – Jonas Daverio
          yesterday






        • 1




          $begingroup$
          The point would be to have a midi output and the possibility to have more keys (for microtonality) while keeping all the sensation of a real piano. I know this will never be reached anyway. And I also want to keep it relatively cheap, but if I can't, I'll stick on the regular solution.
          $endgroup$
          – Jonas Daverio
          yesterday















        15












        $begingroup$

        Most keyboards simply use two contacts per key, configured so that they close (or open) at different positions in the key's travel. They estimate velocity from the time that elapses between the two events. Even the fancy weighted "piano action" keyboards use this basic sensing method.



        Trying to measure position and/or velocity directly sounds like massive overkill.






        share|improve this answer









        $endgroup$








        • 3




          $begingroup$
          I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.
          $endgroup$
          – Jonas Daverio
          yesterday







        • 8




          $begingroup$
          If one contact was at the bottom and the other contact was very near the bottom, you would not have this problem.
          $endgroup$
          – George White
          yesterday






        • 1




          $begingroup$
          Every real instrument has its nuances and limitations. Musicians develop techniques to exploit these for musical effect. The player will soon learn to carry through to the bottom of stroke to get the desired effect.
          $endgroup$
          – Transistor
          yesterday






        • 1




          $begingroup$
          @Transistor Yes, indeed, but my goal here is to try to simulate as close as possible a real piano. There are already plenty of keyboards available, but I never found one that did that. There are probably some really expensive one, though.
          $endgroup$
          – Jonas Daverio
          yesterday






        • 1




          $begingroup$
          The point would be to have a midi output and the possibility to have more keys (for microtonality) while keeping all the sensation of a real piano. I know this will never be reached anyway. And I also want to keep it relatively cheap, but if I can't, I'll stick on the regular solution.
          $endgroup$
          – Jonas Daverio
          yesterday













        15












        15








        15





        $begingroup$

        Most keyboards simply use two contacts per key, configured so that they close (or open) at different positions in the key's travel. They estimate velocity from the time that elapses between the two events. Even the fancy weighted "piano action" keyboards use this basic sensing method.



        Trying to measure position and/or velocity directly sounds like massive overkill.






        share|improve this answer









        $endgroup$



        Most keyboards simply use two contacts per key, configured so that they close (or open) at different positions in the key's travel. They estimate velocity from the time that elapses between the two events. Even the fancy weighted "piano action" keyboards use this basic sensing method.



        Trying to measure position and/or velocity directly sounds like massive overkill.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        Dave TweedDave Tweed

        122k9152264




        122k9152264







        • 3




          $begingroup$
          I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.
          $endgroup$
          – Jonas Daverio
          yesterday







        • 8




          $begingroup$
          If one contact was at the bottom and the other contact was very near the bottom, you would not have this problem.
          $endgroup$
          – George White
          yesterday






        • 1




          $begingroup$
          Every real instrument has its nuances and limitations. Musicians develop techniques to exploit these for musical effect. The player will soon learn to carry through to the bottom of stroke to get the desired effect.
          $endgroup$
          – Transistor
          yesterday






        • 1




          $begingroup$
          @Transistor Yes, indeed, but my goal here is to try to simulate as close as possible a real piano. There are already plenty of keyboards available, but I never found one that did that. There are probably some really expensive one, though.
          $endgroup$
          – Jonas Daverio
          yesterday






        • 1




          $begingroup$
          The point would be to have a midi output and the possibility to have more keys (for microtonality) while keeping all the sensation of a real piano. I know this will never be reached anyway. And I also want to keep it relatively cheap, but if I can't, I'll stick on the regular solution.
          $endgroup$
          – Jonas Daverio
          yesterday












        • 3




          $begingroup$
          I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.
          $endgroup$
          – Jonas Daverio
          yesterday







        • 8




          $begingroup$
          If one contact was at the bottom and the other contact was very near the bottom, you would not have this problem.
          $endgroup$
          – George White
          yesterday






        • 1




          $begingroup$
          Every real instrument has its nuances and limitations. Musicians develop techniques to exploit these for musical effect. The player will soon learn to carry through to the bottom of stroke to get the desired effect.
          $endgroup$
          – Transistor
          yesterday






        • 1




          $begingroup$
          @Transistor Yes, indeed, but my goal here is to try to simulate as close as possible a real piano. There are already plenty of keyboards available, but I never found one that did that. There are probably some really expensive one, though.
          $endgroup$
          – Jonas Daverio
          yesterday






        • 1




          $begingroup$
          The point would be to have a midi output and the possibility to have more keys (for microtonality) while keeping all the sensation of a real piano. I know this will never be reached anyway. And I also want to keep it relatively cheap, but if I can't, I'll stick on the regular solution.
          $endgroup$
          – Jonas Daverio
          yesterday







        3




        3




        $begingroup$
        I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.
        $endgroup$
        – Jonas Daverio
        yesterday





        $begingroup$
        I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.
        $endgroup$
        – Jonas Daverio
        yesterday





        8




        8




        $begingroup$
        If one contact was at the bottom and the other contact was very near the bottom, you would not have this problem.
        $endgroup$
        – George White
        yesterday




        $begingroup$
        If one contact was at the bottom and the other contact was very near the bottom, you would not have this problem.
        $endgroup$
        – George White
        yesterday




        1




        1




        $begingroup$
        Every real instrument has its nuances and limitations. Musicians develop techniques to exploit these for musical effect. The player will soon learn to carry through to the bottom of stroke to get the desired effect.
        $endgroup$
        – Transistor
        yesterday




        $begingroup$
        Every real instrument has its nuances and limitations. Musicians develop techniques to exploit these for musical effect. The player will soon learn to carry through to the bottom of stroke to get the desired effect.
        $endgroup$
        – Transistor
        yesterday




        1




        1




        $begingroup$
        @Transistor Yes, indeed, but my goal here is to try to simulate as close as possible a real piano. There are already plenty of keyboards available, but I never found one that did that. There are probably some really expensive one, though.
        $endgroup$
        – Jonas Daverio
        yesterday




        $begingroup$
        @Transistor Yes, indeed, but my goal here is to try to simulate as close as possible a real piano. There are already plenty of keyboards available, but I never found one that did that. There are probably some really expensive one, though.
        $endgroup$
        – Jonas Daverio
        yesterday




        1




        1




        $begingroup$
        The point would be to have a midi output and the possibility to have more keys (for microtonality) while keeping all the sensation of a real piano. I know this will never be reached anyway. And I also want to keep it relatively cheap, but if I can't, I'll stick on the regular solution.
        $endgroup$
        – Jonas Daverio
        yesterday




        $begingroup$
        The point would be to have a midi output and the possibility to have more keys (for microtonality) while keeping all the sensation of a real piano. I know this will never be reached anyway. And I also want to keep it relatively cheap, but if I can't, I'll stick on the regular solution.
        $endgroup$
        – Jonas Daverio
        yesterday













        9












        $begingroup$


        I have to measure the position of each key in order to know how loud the sound should be.




        Normally key velocity is calculated by measuring the time between the normally closed up-switch breaking and the normally open down-switch making.





        schematic





        simulate this circuit – Schematic created using CircuitLab



        Figure 1. A break-before-make keyboard contact is typically used for velocity measurement.




        The volume of the sound is not only function of the velocity of the keys at the end of the descent. ...
        The length of the maximum displacement is about 2 cm.




        In this case you need to mechanically arrange the normally closed contact so that it breaks in the last few mm of travel.





        schematic





        simulate this circuit



        Figure 2. The mechanical switching arrangement.



        It seems to me that your best bet would be to modify an existing MIDI bass pedalboard to suit your purposes.




        OP's comment to Dave Tweed:




        I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.




        That is why I proposed activating the changeover switch in the last few mm of travel.






        share|improve this answer











        $endgroup$












        • $begingroup$
          I responded back for why I think this is still insufficient.
          $endgroup$
          – Jonas Daverio
          yesterday










        • $begingroup$
          I think you misread what I wrote. I meant "The volume of the sound is NOT only function of the velocity of the keys at the end of the descent."
          $endgroup$
          – Jonas Daverio
          yesterday










        • $begingroup$
          Indeed, the energy depends on the speed over the time-length of the impact, which is a function of acceleration (and the jerk, if you don't assume constant acceleration). However, are sure that makes much of a difference? Can you characterize the specifics that you have or are looking for? I don't know what that would be. It might depend on the effect that it's supposed to have on the algorithm.
          $endgroup$
          – vectory
          1 hour ago
















        9












        $begingroup$


        I have to measure the position of each key in order to know how loud the sound should be.




        Normally key velocity is calculated by measuring the time between the normally closed up-switch breaking and the normally open down-switch making.





        schematic





        simulate this circuit – Schematic created using CircuitLab



        Figure 1. A break-before-make keyboard contact is typically used for velocity measurement.




        The volume of the sound is not only function of the velocity of the keys at the end of the descent. ...
        The length of the maximum displacement is about 2 cm.




        In this case you need to mechanically arrange the normally closed contact so that it breaks in the last few mm of travel.





        schematic





        simulate this circuit



        Figure 2. The mechanical switching arrangement.



        It seems to me that your best bet would be to modify an existing MIDI bass pedalboard to suit your purposes.




        OP's comment to Dave Tweed:




        I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.




        That is why I proposed activating the changeover switch in the last few mm of travel.






        share|improve this answer











        $endgroup$












        • $begingroup$
          I responded back for why I think this is still insufficient.
          $endgroup$
          – Jonas Daverio
          yesterday










        • $begingroup$
          I think you misread what I wrote. I meant "The volume of the sound is NOT only function of the velocity of the keys at the end of the descent."
          $endgroup$
          – Jonas Daverio
          yesterday










        • $begingroup$
          Indeed, the energy depends on the speed over the time-length of the impact, which is a function of acceleration (and the jerk, if you don't assume constant acceleration). However, are sure that makes much of a difference? Can you characterize the specifics that you have or are looking for? I don't know what that would be. It might depend on the effect that it's supposed to have on the algorithm.
          $endgroup$
          – vectory
          1 hour ago














        9












        9








        9





        $begingroup$


        I have to measure the position of each key in order to know how loud the sound should be.




        Normally key velocity is calculated by measuring the time between the normally closed up-switch breaking and the normally open down-switch making.





        schematic





        simulate this circuit – Schematic created using CircuitLab



        Figure 1. A break-before-make keyboard contact is typically used for velocity measurement.




        The volume of the sound is not only function of the velocity of the keys at the end of the descent. ...
        The length of the maximum displacement is about 2 cm.




        In this case you need to mechanically arrange the normally closed contact so that it breaks in the last few mm of travel.





        schematic





        simulate this circuit



        Figure 2. The mechanical switching arrangement.



        It seems to me that your best bet would be to modify an existing MIDI bass pedalboard to suit your purposes.




        OP's comment to Dave Tweed:




        I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.




        That is why I proposed activating the changeover switch in the last few mm of travel.






        share|improve this answer











        $endgroup$




        I have to measure the position of each key in order to know how loud the sound should be.




        Normally key velocity is calculated by measuring the time between the normally closed up-switch breaking and the normally open down-switch making.





        schematic





        simulate this circuit – Schematic created using CircuitLab



        Figure 1. A break-before-make keyboard contact is typically used for velocity measurement.




        The volume of the sound is not only function of the velocity of the keys at the end of the descent. ...
        The length of the maximum displacement is about 2 cm.




        In this case you need to mechanically arrange the normally closed contact so that it breaks in the last few mm of travel.





        schematic





        simulate this circuit



        Figure 2. The mechanical switching arrangement.



        It seems to me that your best bet would be to modify an existing MIDI bass pedalboard to suit your purposes.




        OP's comment to Dave Tweed:




        I think this method is insufficient. Here's why: if I slowly push the key down half of the path, and then quickly push it down to the end, the sound would be loud on a real piano, and this method would think the key was pushed really slowly and therefore output a really quiet sound. In addition, if I want to repeat a note, I would have to let the key completely return to its original position, which is not at all what I would do on a real piano.




        That is why I proposed activating the changeover switch in the last few mm of travel.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited yesterday

























        answered yesterday









        TransistorTransistor

        87.4k785189




        87.4k785189











        • $begingroup$
          I responded back for why I think this is still insufficient.
          $endgroup$
          – Jonas Daverio
          yesterday










        • $begingroup$
          I think you misread what I wrote. I meant "The volume of the sound is NOT only function of the velocity of the keys at the end of the descent."
          $endgroup$
          – Jonas Daverio
          yesterday










        • $begingroup$
          Indeed, the energy depends on the speed over the time-length of the impact, which is a function of acceleration (and the jerk, if you don't assume constant acceleration). However, are sure that makes much of a difference? Can you characterize the specifics that you have or are looking for? I don't know what that would be. It might depend on the effect that it's supposed to have on the algorithm.
          $endgroup$
          – vectory
          1 hour ago

















        • $begingroup$
          I responded back for why I think this is still insufficient.
          $endgroup$
          – Jonas Daverio
          yesterday










        • $begingroup$
          I think you misread what I wrote. I meant "The volume of the sound is NOT only function of the velocity of the keys at the end of the descent."
          $endgroup$
          – Jonas Daverio
          yesterday










        • $begingroup$
          Indeed, the energy depends on the speed over the time-length of the impact, which is a function of acceleration (and the jerk, if you don't assume constant acceleration). However, are sure that makes much of a difference? Can you characterize the specifics that you have or are looking for? I don't know what that would be. It might depend on the effect that it's supposed to have on the algorithm.
          $endgroup$
          – vectory
          1 hour ago
















        $begingroup$
        I responded back for why I think this is still insufficient.
        $endgroup$
        – Jonas Daverio
        yesterday




        $begingroup$
        I responded back for why I think this is still insufficient.
        $endgroup$
        – Jonas Daverio
        yesterday












        $begingroup$
        I think you misread what I wrote. I meant "The volume of the sound is NOT only function of the velocity of the keys at the end of the descent."
        $endgroup$
        – Jonas Daverio
        yesterday




        $begingroup$
        I think you misread what I wrote. I meant "The volume of the sound is NOT only function of the velocity of the keys at the end of the descent."
        $endgroup$
        – Jonas Daverio
        yesterday












        $begingroup$
        Indeed, the energy depends on the speed over the time-length of the impact, which is a function of acceleration (and the jerk, if you don't assume constant acceleration). However, are sure that makes much of a difference? Can you characterize the specifics that you have or are looking for? I don't know what that would be. It might depend on the effect that it's supposed to have on the algorithm.
        $endgroup$
        – vectory
        1 hour ago





        $begingroup$
        Indeed, the energy depends on the speed over the time-length of the impact, which is a function of acceleration (and the jerk, if you don't assume constant acceleration). However, are sure that makes much of a difference? Can you characterize the specifics that you have or are looking for? I don't know what that would be. It might depend on the effect that it's supposed to have on the algorithm.
        $endgroup$
        – vectory
        1 hour ago












        7












        $begingroup$

        If the important variable is the impact of a "hammer" that you're trying to emulate, consider piezo sensors which allow you to measure this directly. They produce a pulse whose amplitude depends on the impact impulse.






        share|improve this answer









        $endgroup$

















          7












          $begingroup$

          If the important variable is the impact of a "hammer" that you're trying to emulate, consider piezo sensors which allow you to measure this directly. They produce a pulse whose amplitude depends on the impact impulse.






          share|improve this answer









          $endgroup$















            7












            7








            7





            $begingroup$

            If the important variable is the impact of a "hammer" that you're trying to emulate, consider piezo sensors which allow you to measure this directly. They produce a pulse whose amplitude depends on the impact impulse.






            share|improve this answer









            $endgroup$



            If the important variable is the impact of a "hammer" that you're trying to emulate, consider piezo sensors which allow you to measure this directly. They produce a pulse whose amplitude depends on the impact impulse.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered yesterday









            pjc50pjc50

            34.3k34288




            34.3k34288





















                5












                $begingroup$

                You should take a look at analog keyboards. Take a look at this video. This is just an example of concept.



                Edit:
                Also, if optical switches are not working for you, take a look at this:



                enter image description here






                share|improve this answer










                New contributor




                Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                $endgroup$












                • $begingroup$
                  Apparently, they use a pair of IR-LED and photosensor: blog.wooting.nl/flaretech-the-optical-keyboard-switch However, I'm not sure wether they measure the delay between the emission and the detection or wether they measure the intensity of the light that could make through the tunnel.
                  $endgroup$
                  – Jonas Daverio
                  12 hours ago











                • $begingroup$
                  I linked that just for the example of analog keyboard. You can take a look at reddit.com/r/MechanicalKeyboards/comments/9ii6gw/… and imgur.com/gallery/ImrH7nO . I'am not too familiar with the subject, just trying to help to push you into right direction :)
                  $endgroup$
                  – Matt
                  12 hours ago






                • 1




                  $begingroup$
                  While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review
                  $endgroup$
                  – Blair Fonville
                  12 hours ago






                • 1




                  $begingroup$
                  @BlairFonville Fair enough. Let me summarize it. There is a PCB printed coil under each key cap. As you press the button coil measures the inductance change caused by key spring compressing and decompressing, therefore, you can get pretty accurate reading of the switch position.
                  $endgroup$
                  – Matt
                  11 hours ago















                5












                $begingroup$

                You should take a look at analog keyboards. Take a look at this video. This is just an example of concept.



                Edit:
                Also, if optical switches are not working for you, take a look at this:



                enter image description here






                share|improve this answer










                New contributor




                Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                $endgroup$












                • $begingroup$
                  Apparently, they use a pair of IR-LED and photosensor: blog.wooting.nl/flaretech-the-optical-keyboard-switch However, I'm not sure wether they measure the delay between the emission and the detection or wether they measure the intensity of the light that could make through the tunnel.
                  $endgroup$
                  – Jonas Daverio
                  12 hours ago











                • $begingroup$
                  I linked that just for the example of analog keyboard. You can take a look at reddit.com/r/MechanicalKeyboards/comments/9ii6gw/… and imgur.com/gallery/ImrH7nO . I'am not too familiar with the subject, just trying to help to push you into right direction :)
                  $endgroup$
                  – Matt
                  12 hours ago






                • 1




                  $begingroup$
                  While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review
                  $endgroup$
                  – Blair Fonville
                  12 hours ago






                • 1




                  $begingroup$
                  @BlairFonville Fair enough. Let me summarize it. There is a PCB printed coil under each key cap. As you press the button coil measures the inductance change caused by key spring compressing and decompressing, therefore, you can get pretty accurate reading of the switch position.
                  $endgroup$
                  – Matt
                  11 hours ago













                5












                5








                5





                $begingroup$

                You should take a look at analog keyboards. Take a look at this video. This is just an example of concept.



                Edit:
                Also, if optical switches are not working for you, take a look at this:



                enter image description here






                share|improve this answer










                New contributor




                Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                $endgroup$



                You should take a look at analog keyboards. Take a look at this video. This is just an example of concept.



                Edit:
                Also, if optical switches are not working for you, take a look at this:



                enter image description here







                share|improve this answer










                New contributor




                Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                share|improve this answer



                share|improve this answer








                edited 11 hours ago





















                New contributor




                Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                answered 14 hours ago









                MattMatt

                1503




                1503




                New contributor




                Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.





                New contributor





                Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                Matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.











                • $begingroup$
                  Apparently, they use a pair of IR-LED and photosensor: blog.wooting.nl/flaretech-the-optical-keyboard-switch However, I'm not sure wether they measure the delay between the emission and the detection or wether they measure the intensity of the light that could make through the tunnel.
                  $endgroup$
                  – Jonas Daverio
                  12 hours ago











                • $begingroup$
                  I linked that just for the example of analog keyboard. You can take a look at reddit.com/r/MechanicalKeyboards/comments/9ii6gw/… and imgur.com/gallery/ImrH7nO . I'am not too familiar with the subject, just trying to help to push you into right direction :)
                  $endgroup$
                  – Matt
                  12 hours ago






                • 1




                  $begingroup$
                  While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review
                  $endgroup$
                  – Blair Fonville
                  12 hours ago






                • 1




                  $begingroup$
                  @BlairFonville Fair enough. Let me summarize it. There is a PCB printed coil under each key cap. As you press the button coil measures the inductance change caused by key spring compressing and decompressing, therefore, you can get pretty accurate reading of the switch position.
                  $endgroup$
                  – Matt
                  11 hours ago
















                • $begingroup$
                  Apparently, they use a pair of IR-LED and photosensor: blog.wooting.nl/flaretech-the-optical-keyboard-switch However, I'm not sure wether they measure the delay between the emission and the detection or wether they measure the intensity of the light that could make through the tunnel.
                  $endgroup$
                  – Jonas Daverio
                  12 hours ago











                • $begingroup$
                  I linked that just for the example of analog keyboard. You can take a look at reddit.com/r/MechanicalKeyboards/comments/9ii6gw/… and imgur.com/gallery/ImrH7nO . I'am not too familiar with the subject, just trying to help to push you into right direction :)
                  $endgroup$
                  – Matt
                  12 hours ago






                • 1




                  $begingroup$
                  While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review
                  $endgroup$
                  – Blair Fonville
                  12 hours ago






                • 1




                  $begingroup$
                  @BlairFonville Fair enough. Let me summarize it. There is a PCB printed coil under each key cap. As you press the button coil measures the inductance change caused by key spring compressing and decompressing, therefore, you can get pretty accurate reading of the switch position.
                  $endgroup$
                  – Matt
                  11 hours ago















                $begingroup$
                Apparently, they use a pair of IR-LED and photosensor: blog.wooting.nl/flaretech-the-optical-keyboard-switch However, I'm not sure wether they measure the delay between the emission and the detection or wether they measure the intensity of the light that could make through the tunnel.
                $endgroup$
                – Jonas Daverio
                12 hours ago





                $begingroup$
                Apparently, they use a pair of IR-LED and photosensor: blog.wooting.nl/flaretech-the-optical-keyboard-switch However, I'm not sure wether they measure the delay between the emission and the detection or wether they measure the intensity of the light that could make through the tunnel.
                $endgroup$
                – Jonas Daverio
                12 hours ago













                $begingroup$
                I linked that just for the example of analog keyboard. You can take a look at reddit.com/r/MechanicalKeyboards/comments/9ii6gw/… and imgur.com/gallery/ImrH7nO . I'am not too familiar with the subject, just trying to help to push you into right direction :)
                $endgroup$
                – Matt
                12 hours ago




                $begingroup$
                I linked that just for the example of analog keyboard. You can take a look at reddit.com/r/MechanicalKeyboards/comments/9ii6gw/… and imgur.com/gallery/ImrH7nO . I'am not too familiar with the subject, just trying to help to push you into right direction :)
                $endgroup$
                – Matt
                12 hours ago




                1




                1




                $begingroup$
                While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review
                $endgroup$
                – Blair Fonville
                12 hours ago




                $begingroup$
                While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review
                $endgroup$
                – Blair Fonville
                12 hours ago




                1




                1




                $begingroup$
                @BlairFonville Fair enough. Let me summarize it. There is a PCB printed coil under each key cap. As you press the button coil measures the inductance change caused by key spring compressing and decompressing, therefore, you can get pretty accurate reading of the switch position.
                $endgroup$
                – Matt
                11 hours ago




                $begingroup$
                @BlairFonville Fair enough. Let me summarize it. There is a PCB printed coil under each key cap. As you press the button coil measures the inductance change caused by key spring compressing and decompressing, therefore, you can get pretty accurate reading of the switch position.
                $endgroup$
                – Matt
                11 hours ago











                2












                $begingroup$

                You can treat this as a hybrid digital/analog instrument by placing microphones[1] inside the keyboard, tuned to the sound of striking the keys. Signals from the microphones augment the traditional switch-based input, so the switch tells you which key is pressed, and the microphones tell you how loud the most recent keypress was.



                2 or more microphones along the keyboard's length would permit decoding a chord with loud/low notes and soft/high notes and vice versa.



                [1]: I keep saying "microphone", but I mean "generic vibration sensing device".






                share|improve this answer









                $endgroup$












                • $begingroup$
                  That's pretty much how an E-Guitar works, I guess. However, the question didn't mention any acoustic parts, just keys.
                  $endgroup$
                  – vectory
                  1 hour ago















                2












                $begingroup$

                You can treat this as a hybrid digital/analog instrument by placing microphones[1] inside the keyboard, tuned to the sound of striking the keys. Signals from the microphones augment the traditional switch-based input, so the switch tells you which key is pressed, and the microphones tell you how loud the most recent keypress was.



                2 or more microphones along the keyboard's length would permit decoding a chord with loud/low notes and soft/high notes and vice versa.



                [1]: I keep saying "microphone", but I mean "generic vibration sensing device".






                share|improve this answer









                $endgroup$












                • $begingroup$
                  That's pretty much how an E-Guitar works, I guess. However, the question didn't mention any acoustic parts, just keys.
                  $endgroup$
                  – vectory
                  1 hour ago













                2












                2








                2





                $begingroup$

                You can treat this as a hybrid digital/analog instrument by placing microphones[1] inside the keyboard, tuned to the sound of striking the keys. Signals from the microphones augment the traditional switch-based input, so the switch tells you which key is pressed, and the microphones tell you how loud the most recent keypress was.



                2 or more microphones along the keyboard's length would permit decoding a chord with loud/low notes and soft/high notes and vice versa.



                [1]: I keep saying "microphone", but I mean "generic vibration sensing device".






                share|improve this answer









                $endgroup$



                You can treat this as a hybrid digital/analog instrument by placing microphones[1] inside the keyboard, tuned to the sound of striking the keys. Signals from the microphones augment the traditional switch-based input, so the switch tells you which key is pressed, and the microphones tell you how loud the most recent keypress was.



                2 or more microphones along the keyboard's length would permit decoding a chord with loud/low notes and soft/high notes and vice versa.



                [1]: I keep saying "microphone", but I mean "generic vibration sensing device".







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered yesterday









                hoosierEEhoosierEE

                1,120714




                1,120714











                • $begingroup$
                  That's pretty much how an E-Guitar works, I guess. However, the question didn't mention any acoustic parts, just keys.
                  $endgroup$
                  – vectory
                  1 hour ago
















                • $begingroup$
                  That's pretty much how an E-Guitar works, I guess. However, the question didn't mention any acoustic parts, just keys.
                  $endgroup$
                  – vectory
                  1 hour ago















                $begingroup$
                That's pretty much how an E-Guitar works, I guess. However, the question didn't mention any acoustic parts, just keys.
                $endgroup$
                – vectory
                1 hour ago




                $begingroup$
                That's pretty much how an E-Guitar works, I guess. However, the question didn't mention any acoustic parts, just keys.
                $endgroup$
                – vectory
                1 hour ago











                2












                $begingroup$

                How about capacitive sensing? Tape some aluminum foil to the bottom of the key, ground the bottom of the keyboard, and measure the rise time through a 100k resistor.



                This method can be made almost arbitrarily precise, as long as your processor is fast enough to discriminate the change in capacitance.






                share|improve this answer









                $endgroup$












                • $begingroup$
                  So, I would have to pass AC in it, wouldn't I?
                  $endgroup$
                  – Jonas Daverio
                  23 hours ago






                • 1




                  $begingroup$
                  @JonasDaverio I'm not sure what you're connecting the keys to, but one GPIO per key would suffice.
                  $endgroup$
                  – 0xDBFB7
                  22 hours ago










                • $begingroup$
                  I'm not sure how I am supposed to measure the capacitance. One plate is connected to ground and the other is connected to what? A constant voltage source?
                  $endgroup$
                  – Jonas Daverio
                  12 hours ago






                • 1




                  $begingroup$
                  The Teensy LC microcontroller[1] has 11 capacitive sensing inputs and a C++ library that makes it as easy as calling analogRead in Arduino. [1]: pjrc.com/teensy/teensyLC.html
                  $endgroup$
                  – hoosierEE
                  9 hours ago






                • 1




                  $begingroup$
                  @JonasDaverio sorry, I didn't explain the circuit very well. You connect a digital output to the key via a high value resistor, set it low to discharge any stray charge, and then set it high. You also connect a digital input directly to the key. The capacitance will slowly charge through the resistor, and you time how long it takes before the digital input turns on. This time is equal to the RC time constant of the circuit.
                  $endgroup$
                  – 0xDBFB7
                  8 hours ago















                2












                $begingroup$

                How about capacitive sensing? Tape some aluminum foil to the bottom of the key, ground the bottom of the keyboard, and measure the rise time through a 100k resistor.



                This method can be made almost arbitrarily precise, as long as your processor is fast enough to discriminate the change in capacitance.






                share|improve this answer









                $endgroup$












                • $begingroup$
                  So, I would have to pass AC in it, wouldn't I?
                  $endgroup$
                  – Jonas Daverio
                  23 hours ago






                • 1




                  $begingroup$
                  @JonasDaverio I'm not sure what you're connecting the keys to, but one GPIO per key would suffice.
                  $endgroup$
                  – 0xDBFB7
                  22 hours ago










                • $begingroup$
                  I'm not sure how I am supposed to measure the capacitance. One plate is connected to ground and the other is connected to what? A constant voltage source?
                  $endgroup$
                  – Jonas Daverio
                  12 hours ago






                • 1




                  $begingroup$
                  The Teensy LC microcontroller[1] has 11 capacitive sensing inputs and a C++ library that makes it as easy as calling analogRead in Arduino. [1]: pjrc.com/teensy/teensyLC.html
                  $endgroup$
                  – hoosierEE
                  9 hours ago






                • 1




                  $begingroup$
                  @JonasDaverio sorry, I didn't explain the circuit very well. You connect a digital output to the key via a high value resistor, set it low to discharge any stray charge, and then set it high. You also connect a digital input directly to the key. The capacitance will slowly charge through the resistor, and you time how long it takes before the digital input turns on. This time is equal to the RC time constant of the circuit.
                  $endgroup$
                  – 0xDBFB7
                  8 hours ago













                2












                2








                2





                $begingroup$

                How about capacitive sensing? Tape some aluminum foil to the bottom of the key, ground the bottom of the keyboard, and measure the rise time through a 100k resistor.



                This method can be made almost arbitrarily precise, as long as your processor is fast enough to discriminate the change in capacitance.






                share|improve this answer









                $endgroup$



                How about capacitive sensing? Tape some aluminum foil to the bottom of the key, ground the bottom of the keyboard, and measure the rise time through a 100k resistor.



                This method can be made almost arbitrarily precise, as long as your processor is fast enough to discriminate the change in capacitance.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered yesterday









                0xDBFB70xDBFB7

                551517




                551517











                • $begingroup$
                  So, I would have to pass AC in it, wouldn't I?
                  $endgroup$
                  – Jonas Daverio
                  23 hours ago






                • 1




                  $begingroup$
                  @JonasDaverio I'm not sure what you're connecting the keys to, but one GPIO per key would suffice.
                  $endgroup$
                  – 0xDBFB7
                  22 hours ago










                • $begingroup$
                  I'm not sure how I am supposed to measure the capacitance. One plate is connected to ground and the other is connected to what? A constant voltage source?
                  $endgroup$
                  – Jonas Daverio
                  12 hours ago






                • 1




                  $begingroup$
                  The Teensy LC microcontroller[1] has 11 capacitive sensing inputs and a C++ library that makes it as easy as calling analogRead in Arduino. [1]: pjrc.com/teensy/teensyLC.html
                  $endgroup$
                  – hoosierEE
                  9 hours ago






                • 1




                  $begingroup$
                  @JonasDaverio sorry, I didn't explain the circuit very well. You connect a digital output to the key via a high value resistor, set it low to discharge any stray charge, and then set it high. You also connect a digital input directly to the key. The capacitance will slowly charge through the resistor, and you time how long it takes before the digital input turns on. This time is equal to the RC time constant of the circuit.
                  $endgroup$
                  – 0xDBFB7
                  8 hours ago
















                • $begingroup$
                  So, I would have to pass AC in it, wouldn't I?
                  $endgroup$
                  – Jonas Daverio
                  23 hours ago






                • 1




                  $begingroup$
                  @JonasDaverio I'm not sure what you're connecting the keys to, but one GPIO per key would suffice.
                  $endgroup$
                  – 0xDBFB7
                  22 hours ago










                • $begingroup$
                  I'm not sure how I am supposed to measure the capacitance. One plate is connected to ground and the other is connected to what? A constant voltage source?
                  $endgroup$
                  – Jonas Daverio
                  12 hours ago






                • 1




                  $begingroup$
                  The Teensy LC microcontroller[1] has 11 capacitive sensing inputs and a C++ library that makes it as easy as calling analogRead in Arduino. [1]: pjrc.com/teensy/teensyLC.html
                  $endgroup$
                  – hoosierEE
                  9 hours ago






                • 1




                  $begingroup$
                  @JonasDaverio sorry, I didn't explain the circuit very well. You connect a digital output to the key via a high value resistor, set it low to discharge any stray charge, and then set it high. You also connect a digital input directly to the key. The capacitance will slowly charge through the resistor, and you time how long it takes before the digital input turns on. This time is equal to the RC time constant of the circuit.
                  $endgroup$
                  – 0xDBFB7
                  8 hours ago















                $begingroup$
                So, I would have to pass AC in it, wouldn't I?
                $endgroup$
                – Jonas Daverio
                23 hours ago




                $begingroup$
                So, I would have to pass AC in it, wouldn't I?
                $endgroup$
                – Jonas Daverio
                23 hours ago




                1




                1




                $begingroup$
                @JonasDaverio I'm not sure what you're connecting the keys to, but one GPIO per key would suffice.
                $endgroup$
                – 0xDBFB7
                22 hours ago




                $begingroup$
                @JonasDaverio I'm not sure what you're connecting the keys to, but one GPIO per key would suffice.
                $endgroup$
                – 0xDBFB7
                22 hours ago












                $begingroup$
                I'm not sure how I am supposed to measure the capacitance. One plate is connected to ground and the other is connected to what? A constant voltage source?
                $endgroup$
                – Jonas Daverio
                12 hours ago




                $begingroup$
                I'm not sure how I am supposed to measure the capacitance. One plate is connected to ground and the other is connected to what? A constant voltage source?
                $endgroup$
                – Jonas Daverio
                12 hours ago




                1




                1




                $begingroup$
                The Teensy LC microcontroller[1] has 11 capacitive sensing inputs and a C++ library that makes it as easy as calling analogRead in Arduino. [1]: pjrc.com/teensy/teensyLC.html
                $endgroup$
                – hoosierEE
                9 hours ago




                $begingroup$
                The Teensy LC microcontroller[1] has 11 capacitive sensing inputs and a C++ library that makes it as easy as calling analogRead in Arduino. [1]: pjrc.com/teensy/teensyLC.html
                $endgroup$
                – hoosierEE
                9 hours ago




                1




                1




                $begingroup$
                @JonasDaverio sorry, I didn't explain the circuit very well. You connect a digital output to the key via a high value resistor, set it low to discharge any stray charge, and then set it high. You also connect a digital input directly to the key. The capacitance will slowly charge through the resistor, and you time how long it takes before the digital input turns on. This time is equal to the RC time constant of the circuit.
                $endgroup$
                – 0xDBFB7
                8 hours ago




                $begingroup$
                @JonasDaverio sorry, I didn't explain the circuit very well. You connect a digital output to the key via a high value resistor, set it low to discharge any stray charge, and then set it high. You also connect a digital input directly to the key. The capacitance will slowly charge through the resistor, and you time how long it takes before the digital input turns on. This time is equal to the RC time constant of the circuit.
                $endgroup$
                – 0xDBFB7
                8 hours ago











                2












                $begingroup$

                One option could be Hall sensors, which sense the strength of a magnetic field. There are different types of Hall sensors for digital and analog sensing, you need one that has analog. For example SI7211 costs about 0.80 USD.



                You also need a small magnet underneath each key. When the magnet gets closer to the sensor, the magnetic field increases which increases the sensor's output voltage.






                share|improve this answer









                $endgroup$








                • 1




                  $begingroup$
                  Apparently, they use it on some music keyboards. I think this is a really simple and good solution. I will compare the costs with 0xDBFB7's solution.
                  $endgroup$
                  – Jonas Daverio
                  6 hours ago















                2












                $begingroup$

                One option could be Hall sensors, which sense the strength of a magnetic field. There are different types of Hall sensors for digital and analog sensing, you need one that has analog. For example SI7211 costs about 0.80 USD.



                You also need a small magnet underneath each key. When the magnet gets closer to the sensor, the magnetic field increases which increases the sensor's output voltage.






                share|improve this answer









                $endgroup$








                • 1




                  $begingroup$
                  Apparently, they use it on some music keyboards. I think this is a really simple and good solution. I will compare the costs with 0xDBFB7's solution.
                  $endgroup$
                  – Jonas Daverio
                  6 hours ago













                2












                2








                2





                $begingroup$

                One option could be Hall sensors, which sense the strength of a magnetic field. There are different types of Hall sensors for digital and analog sensing, you need one that has analog. For example SI7211 costs about 0.80 USD.



                You also need a small magnet underneath each key. When the magnet gets closer to the sensor, the magnetic field increases which increases the sensor's output voltage.






                share|improve this answer









                $endgroup$



                One option could be Hall sensors, which sense the strength of a magnetic field. There are different types of Hall sensors for digital and analog sensing, you need one that has analog. For example SI7211 costs about 0.80 USD.



                You also need a small magnet underneath each key. When the magnet gets closer to the sensor, the magnetic field increases which increases the sensor's output voltage.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 11 hours ago









                jpajpa

                1,566711




                1,566711







                • 1




                  $begingroup$
                  Apparently, they use it on some music keyboards. I think this is a really simple and good solution. I will compare the costs with 0xDBFB7's solution.
                  $endgroup$
                  – Jonas Daverio
                  6 hours ago












                • 1




                  $begingroup$
                  Apparently, they use it on some music keyboards. I think this is a really simple and good solution. I will compare the costs with 0xDBFB7's solution.
                  $endgroup$
                  – Jonas Daverio
                  6 hours ago







                1




                1




                $begingroup$
                Apparently, they use it on some music keyboards. I think this is a really simple and good solution. I will compare the costs with 0xDBFB7's solution.
                $endgroup$
                – Jonas Daverio
                6 hours ago




                $begingroup$
                Apparently, they use it on some music keyboards. I think this is a really simple and good solution. I will compare the costs with 0xDBFB7's solution.
                $endgroup$
                – Jonas Daverio
                6 hours ago











                0












                $begingroup$

                You may want to research spring return variable resistors, spring return potentiometers, or linear position sensors. Here is one example:
                http://ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0



                Another possibility may be to use a small rotary encoder (and mechanically convert the linear key press motion to rotary motion). The encoder would output one or more sets of pulses as the shaft rotates. A higher pulse rate would indicate a higher velocity press. The encoder position could be tracked directly if the pulse groups are sent to additional digital logic. Here's an example part: https://www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbIjOSa4QIVCEsNCh3JAAKuEAQYAyABEgKM_fD_BwE






                share|improve this answer











                $endgroup$

















                  0












                  $begingroup$

                  You may want to research spring return variable resistors, spring return potentiometers, or linear position sensors. Here is one example:
                  http://ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0



                  Another possibility may be to use a small rotary encoder (and mechanically convert the linear key press motion to rotary motion). The encoder would output one or more sets of pulses as the shaft rotates. A higher pulse rate would indicate a higher velocity press. The encoder position could be tracked directly if the pulse groups are sent to additional digital logic. Here's an example part: https://www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbIjOSa4QIVCEsNCh3JAAKuEAQYAyABEgKM_fD_BwE






                  share|improve this answer











                  $endgroup$















                    0












                    0








                    0





                    $begingroup$

                    You may want to research spring return variable resistors, spring return potentiometers, or linear position sensors. Here is one example:
                    http://ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0



                    Another possibility may be to use a small rotary encoder (and mechanically convert the linear key press motion to rotary motion). The encoder would output one or more sets of pulses as the shaft rotates. A higher pulse rate would indicate a higher velocity press. The encoder position could be tracked directly if the pulse groups are sent to additional digital logic. Here's an example part: https://www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbIjOSa4QIVCEsNCh3JAAKuEAQYAyABEgKM_fD_BwE






                    share|improve this answer











                    $endgroup$



                    You may want to research spring return variable resistors, spring return potentiometers, or linear position sensors. Here is one example:
                    http://ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0



                    Another possibility may be to use a small rotary encoder (and mechanically convert the linear key press motion to rotary motion). The encoder would output one or more sets of pulses as the shaft rotates. A higher pulse rate would indicate a higher velocity press. The encoder position could be tracked directly if the pulse groups are sent to additional digital logic. Here's an example part: https://www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbIjOSa4QIVCEsNCh3JAAKuEAQYAyABEgKM_fD_BwE







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited yesterday

























                    answered yesterday









                    NeddNedd

                    4,378713




                    4,378713





















                        0












                        $begingroup$

                        If you want super-accuracy at a reasonable price, how about using a linear encoder, attaching a Gray-coded strip (which you print yourself using a laser printer onto a transparent sheet, then cut up and attach one to each key) - more details of how they work under rotary encoders here. This way you need two (perhaps 3 so you get an accurate indication of end position) digital lines per key. This will allow you to measure velocity with very good accuracy and even position if that's relevant. The advantage of this is you could retrofit it to an old keyboard (even an acoustic keyboard).



                        Caution: when I was a teenager (a long while ago) I wondered for ages whether I could make a realistic keyboard more cheaply than buying them. It seemed unlikely then and it seems even less likely now. The cost effective method is therefore probably "buy a velocity sensitive keyboard and take it apart" which is no fun.






                        share|improve this answer









                        $endgroup$








                        • 1




                          $begingroup$
                          Yes, I'm not pretending this will end up cheaper than a commercial one, but I'm trying to construct a special arrangement of keys that doesn't exist on the market. For your answer, I'm not really sure what you mean. Do you mean making a linear encoder from scratch? I don't understand what's the point of the transparent strip. And 3 bits seems a bit low to encode precisely the position and to deduce the velocity from it.
                          $endgroup$
                          – Jonas Daverio
                          12 hours ago











                        • $begingroup$
                          A linear encoder will give you velocity with 2 bits only (see links) to a great resolution (you could get position to 256ths of the travel distance very easily). By timing the period between grey code bit transitions you will get a very accurate picture of velocity at different stages of travel of the key. 3rd bit gives you accurate 'hammer hits strings' signal. I was suggesting you use a linear encoder optical reader with your own 'tape' - transparent strip.
                          $endgroup$
                          – abligh
                          1 hour ago
















                        0












                        $begingroup$

                        If you want super-accuracy at a reasonable price, how about using a linear encoder, attaching a Gray-coded strip (which you print yourself using a laser printer onto a transparent sheet, then cut up and attach one to each key) - more details of how they work under rotary encoders here. This way you need two (perhaps 3 so you get an accurate indication of end position) digital lines per key. This will allow you to measure velocity with very good accuracy and even position if that's relevant. The advantage of this is you could retrofit it to an old keyboard (even an acoustic keyboard).



                        Caution: when I was a teenager (a long while ago) I wondered for ages whether I could make a realistic keyboard more cheaply than buying them. It seemed unlikely then and it seems even less likely now. The cost effective method is therefore probably "buy a velocity sensitive keyboard and take it apart" which is no fun.






                        share|improve this answer









                        $endgroup$








                        • 1




                          $begingroup$
                          Yes, I'm not pretending this will end up cheaper than a commercial one, but I'm trying to construct a special arrangement of keys that doesn't exist on the market. For your answer, I'm not really sure what you mean. Do you mean making a linear encoder from scratch? I don't understand what's the point of the transparent strip. And 3 bits seems a bit low to encode precisely the position and to deduce the velocity from it.
                          $endgroup$
                          – Jonas Daverio
                          12 hours ago











                        • $begingroup$
                          A linear encoder will give you velocity with 2 bits only (see links) to a great resolution (you could get position to 256ths of the travel distance very easily). By timing the period between grey code bit transitions you will get a very accurate picture of velocity at different stages of travel of the key. 3rd bit gives you accurate 'hammer hits strings' signal. I was suggesting you use a linear encoder optical reader with your own 'tape' - transparent strip.
                          $endgroup$
                          – abligh
                          1 hour ago














                        0












                        0








                        0





                        $begingroup$

                        If you want super-accuracy at a reasonable price, how about using a linear encoder, attaching a Gray-coded strip (which you print yourself using a laser printer onto a transparent sheet, then cut up and attach one to each key) - more details of how they work under rotary encoders here. This way you need two (perhaps 3 so you get an accurate indication of end position) digital lines per key. This will allow you to measure velocity with very good accuracy and even position if that's relevant. The advantage of this is you could retrofit it to an old keyboard (even an acoustic keyboard).



                        Caution: when I was a teenager (a long while ago) I wondered for ages whether I could make a realistic keyboard more cheaply than buying them. It seemed unlikely then and it seems even less likely now. The cost effective method is therefore probably "buy a velocity sensitive keyboard and take it apart" which is no fun.






                        share|improve this answer









                        $endgroup$



                        If you want super-accuracy at a reasonable price, how about using a linear encoder, attaching a Gray-coded strip (which you print yourself using a laser printer onto a transparent sheet, then cut up and attach one to each key) - more details of how they work under rotary encoders here. This way you need two (perhaps 3 so you get an accurate indication of end position) digital lines per key. This will allow you to measure velocity with very good accuracy and even position if that's relevant. The advantage of this is you could retrofit it to an old keyboard (even an acoustic keyboard).



                        Caution: when I was a teenager (a long while ago) I wondered for ages whether I could make a realistic keyboard more cheaply than buying them. It seemed unlikely then and it seems even less likely now. The cost effective method is therefore probably "buy a velocity sensitive keyboard and take it apart" which is no fun.







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered 17 hours ago









                        ablighabligh

                        21716




                        21716







                        • 1




                          $begingroup$
                          Yes, I'm not pretending this will end up cheaper than a commercial one, but I'm trying to construct a special arrangement of keys that doesn't exist on the market. For your answer, I'm not really sure what you mean. Do you mean making a linear encoder from scratch? I don't understand what's the point of the transparent strip. And 3 bits seems a bit low to encode precisely the position and to deduce the velocity from it.
                          $endgroup$
                          – Jonas Daverio
                          12 hours ago











                        • $begingroup$
                          A linear encoder will give you velocity with 2 bits only (see links) to a great resolution (you could get position to 256ths of the travel distance very easily). By timing the period between grey code bit transitions you will get a very accurate picture of velocity at different stages of travel of the key. 3rd bit gives you accurate 'hammer hits strings' signal. I was suggesting you use a linear encoder optical reader with your own 'tape' - transparent strip.
                          $endgroup$
                          – abligh
                          1 hour ago













                        • 1




                          $begingroup$
                          Yes, I'm not pretending this will end up cheaper than a commercial one, but I'm trying to construct a special arrangement of keys that doesn't exist on the market. For your answer, I'm not really sure what you mean. Do you mean making a linear encoder from scratch? I don't understand what's the point of the transparent strip. And 3 bits seems a bit low to encode precisely the position and to deduce the velocity from it.
                          $endgroup$
                          – Jonas Daverio
                          12 hours ago











                        • $begingroup$
                          A linear encoder will give you velocity with 2 bits only (see links) to a great resolution (you could get position to 256ths of the travel distance very easily). By timing the period between grey code bit transitions you will get a very accurate picture of velocity at different stages of travel of the key. 3rd bit gives you accurate 'hammer hits strings' signal. I was suggesting you use a linear encoder optical reader with your own 'tape' - transparent strip.
                          $endgroup$
                          – abligh
                          1 hour ago








                        1




                        1




                        $begingroup$
                        Yes, I'm not pretending this will end up cheaper than a commercial one, but I'm trying to construct a special arrangement of keys that doesn't exist on the market. For your answer, I'm not really sure what you mean. Do you mean making a linear encoder from scratch? I don't understand what's the point of the transparent strip. And 3 bits seems a bit low to encode precisely the position and to deduce the velocity from it.
                        $endgroup$
                        – Jonas Daverio
                        12 hours ago





                        $begingroup$
                        Yes, I'm not pretending this will end up cheaper than a commercial one, but I'm trying to construct a special arrangement of keys that doesn't exist on the market. For your answer, I'm not really sure what you mean. Do you mean making a linear encoder from scratch? I don't understand what's the point of the transparent strip. And 3 bits seems a bit low to encode precisely the position and to deduce the velocity from it.
                        $endgroup$
                        – Jonas Daverio
                        12 hours ago













                        $begingroup$
                        A linear encoder will give you velocity with 2 bits only (see links) to a great resolution (you could get position to 256ths of the travel distance very easily). By timing the period between grey code bit transitions you will get a very accurate picture of velocity at different stages of travel of the key. 3rd bit gives you accurate 'hammer hits strings' signal. I was suggesting you use a linear encoder optical reader with your own 'tape' - transparent strip.
                        $endgroup$
                        – abligh
                        1 hour ago





                        $begingroup$
                        A linear encoder will give you velocity with 2 bits only (see links) to a great resolution (you could get position to 256ths of the travel distance very easily). By timing the period between grey code bit transitions you will get a very accurate picture of velocity at different stages of travel of the key. 3rd bit gives you accurate 'hammer hits strings' signal. I was suggesting you use a linear encoder optical reader with your own 'tape' - transparent strip.
                        $endgroup$
                        – abligh
                        1 hour ago












                        0












                        $begingroup$

                        Resistive sensing was already mentioned in comments.



                        Strain Gauges are used in weight scales and the like.






                        share|improve this answer










                        New contributor




                        vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                        Check out our Code of Conduct.






                        $endgroup$

















                          0












                          $begingroup$

                          Resistive sensing was already mentioned in comments.



                          Strain Gauges are used in weight scales and the like.






                          share|improve this answer










                          New contributor




                          vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.






                          $endgroup$















                            0












                            0








                            0





                            $begingroup$

                            Resistive sensing was already mentioned in comments.



                            Strain Gauges are used in weight scales and the like.






                            share|improve this answer










                            New contributor




                            vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.






                            $endgroup$



                            Resistive sensing was already mentioned in comments.



                            Strain Gauges are used in weight scales and the like.







                            share|improve this answer










                            New contributor




                            vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.









                            share|improve this answer



                            share|improve this answer








                            edited 1 hour ago





















                            New contributor




                            vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.









                            answered 1 hour ago









                            vectoryvectory

                            1012




                            1012




                            New contributor




                            vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.





                            New contributor





                            vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.






                            vectory is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.




















                                Jonas Daverio is a new contributor. Be nice, and check out our Code of Conduct.









                                draft saved

                                draft discarded


















                                Jonas Daverio is a new contributor. Be nice, and check out our Code of Conduct.












                                Jonas Daverio is a new contributor. Be nice, and check out our Code of Conduct.











                                Jonas Daverio is a new contributor. Be nice, and check out our Code of Conduct.














                                Thanks for contributing an answer to Electrical Engineering Stack Exchange!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid


                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.

                                Use MathJax to format equations. MathJax reference.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f428802%2fwhat-linear-sensor-for-a-keyboard%23new-answer', 'question_page');

                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown







                                Popular posts from this blog

                                Àrd-bhaile Cathair chruinne/Baile mòr cruinne | Artagailean ceangailte | Clàr-taice na seòladaireachd

                                대한민국 목차 국명 지리 역사 정치 국방 경제 사회 문화 국제 순위 관련 항목 각주 외부 링크 둘러보기 메뉴북위 37° 34′ 08″ 동경 126° 58′ 36″ / 북위 37.568889° 동경 126.976667°  / 37.568889; 126.976667ehThe Korean Repository문단을 편집문단을 편집추가해Clarkson PLC 사Report for Selected Countries and Subjects-Korea“Human Development Index and its components: P.198”“http://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EA%B5%AD%EA%B8%B0%EB%B2%95”"한국은 국제법상 한반도 유일 합법정부 아니다" - 오마이뉴스 모바일Report for Selected Countries and Subjects: South Korea격동의 역사와 함께한 조선일보 90년 : 조선일보 인수해 혁신시킨 신석우, 임시정부 때는 '대한민국' 국호(國號) 정해《우리가 몰랐던 우리 역사: 나라 이름의 비밀을 찾아가는 역사 여행》“남북 공식호칭 ‘남한’‘북한’으로 쓴다”“Corea 대 Korea, 누가 이긴 거야?”국내기후자료 - 한국[김대중 前 대통령 서거] 과감한 구조개혁 'DJ노믹스'로 최단기간 환란극복 :: 네이버 뉴스“이라크 "韓-쿠르드 유전개발 MOU 승인 안해"(종합)”“해외 우리국민 추방사례 43%가 일본”차기전차 K2'흑표'의 세계 최고 전력 분석, 쿠키뉴스 엄기영, 2007-03-02두산인프라, 헬기잡는 장갑차 'K21'...내년부터 공급, 고뉴스 이대준, 2008-10-30과거 내용 찾기mk 뉴스 - 구매력 기준으로 보면 한국 1인당 소득 3만弗과거 내용 찾기"The N-11: More Than an Acronym"Archived조선일보 최우석, 2008-11-01Global 500 2008: Countries - South Korea“몇년째 '시한폭탄'... 가계부채, 올해는 터질까”가구당 부채 5000만원 처음 넘어서“‘빚’으로 내몰리는 사회.. 위기의 가계대출”“[경제365] 공공부문 부채 급증…800조 육박”“"소득 양극화 다소 완화...불평등은 여전"”“공정사회·공생발전 한참 멀었네”iSuppli,08年2QのDRAMシェア・ランキングを発表(08/8/11)South Korea dominates shipbuilding industry | Stock Market News & Stocks to Watch from StraightStocks한국 자동차 생산, 3년 연속 세계 5위자동차수출 '현대-삼성 웃고 기아-대우-쌍용은 울고' 과거 내용 찾기동반성장위 창립 1주년 맞아Archived"중기적합 3개업종 합의 무시한 채 선정"李대통령, 사업 무분별 확장 소상공인 생계 위협 질타삼성-LG, 서민업종인 빵·분식사업 잇따라 철수상생은 뒷전…SSM ‘몸집 불리기’ 혈안Archived“경부고속도에 '아시안하이웨이' 표지판”'철의 실크로드' 앞서 '말(言)의 실크로드'부터, 프레시안 정창현, 2008-10-01“'서울 지하철은 안전한가?'”“서울시 “올해 안에 모든 지하철역 스크린도어 설치””“부산지하철 1,2호선 승강장 안전펜스 설치 완료”“전교조, 정부 노조 통계서 처음 빠져”“[Weekly BIZ] 도요타 '제로 이사회'가 리콜 사태 불러들였다”“S Korea slams high tuition costs”““정치가 여론 양극화 부채질… 합리주의 절실””“〈"`촛불집회'는 민주주의의 질적 변화 상징"〉”““촛불집회가 민주주의 왜곡 초래””“국민 65%, "한국 노사관계 대립적"”“한국 국가경쟁력 27위‥노사관계 '꼴찌'”“제대로 형성되지 않은 대한민국 이념지형”“[신년기획-갈등의 시대] 갈등지수 OECD 4위…사회적 손실 GDP 27% 무려 300조”“2012 총선-대선의 키워드는 '국민과 소통'”“한국 삶의 질 27위, 2000년과 2008년 연속 하위권 머물러”“[해피 코리아] 행복점수 68점…해외 평가선 '낙제점'”“한국 어린이·청소년 행복지수 3년 연속 OECD ‘꼴찌’”“한국 이혼율 OECD중 8위”“[통계청] 한국 이혼율 OECD 4위”“오피니언 [이렇게 생각한다] `부부의 날` 에 돌아본 이혼율 1위 한국”“Suicide Rates by Country, Global Health Observatory Data Repository.”“1. 또 다른 차별”“오피니언 [편집자에게] '왕따'와 '패거리 정치' 심리는 닮은꼴”“[미래한국리포트] 무한경쟁에 빠진 대한민국”“대학생 98% "외모가 경쟁력이라는 말 동의"”“특급호텔 웨딩·200만원대 유모차… "남보다 더…" 호화病, 고질병 됐다”“[스트레스 공화국] ① 경쟁사회, 스트레스 쌓인다”““매일 30여명 자살 한국, 의사보다 무속인에…””“"자살 부르는 '우울증', 환자 중 85% 치료 안 받아"”“정신병원을 가다”“대한민국도 ‘묻지마 범죄’,안전지대 아니다”“유엔 "학생 '성적 지향'에 따른 차별 금지하라"”“유엔아동권리위원회 보고서 및 번역본 원문”“고졸 성공스토리 담은 '제빵왕 김탁구' 드라마 나온다”“‘빛 좋은 개살구’ 고졸 취업…실습 대신 착취”원본 문서“정신건강, 사회적 편견부터 고쳐드립니다”‘소통’과 ‘행복’에 목 마른 사회가 잠들어 있던 ‘심리학’ 깨웠다“[포토] 사유리-곽금주 교수의 유쾌한 심리상담”“"올해 한국인 평균 영화관람횟수 세계 1위"(종합)”“[게임연중기획] 게임은 문화다-여가활동 1순위 게임”“영화속 ‘영어 지상주의’ …“왠지 씁쓸한데””“2월 `신문 부수 인증기관` 지정..방송법 후속작업”“무료신문 성장동력 ‘차별성’과 ‘갈등해소’”대한민국 국회 법률지식정보시스템"Pew Research Center's Religion & Public Life Project: South Korea"“amp;vwcd=MT_ZTITLE&path=인구·가구%20>%20인구총조사%20>%20인구부문%20>%20 총조사인구(2005)%20>%20전수부문&oper_YN=Y&item=&keyword=종교별%20인구& amp;lang_mode=kor&list_id= 2005년 통계청 인구 총조사”원본 문서“한국인이 좋아하는 취미와 운동 (2004-2009)”“한국인이 좋아하는 취미와 운동 (2004-2014)”Archived“한국, `부분적 언론자유국' 강등〈프리덤하우스〉”“국경없는기자회 "한국, 인터넷감시 대상국"”“한국, 조선산업 1위 유지(S. Korea Stays Top Shipbuilding Nation) RZD-Partner Portal”원본 문서“한국, 4년 만에 ‘선박건조 1위’”“옛 마산시,인터넷속도 세계 1위”“"한국 초고속 인터넷망 세계1위"”“인터넷·휴대폰 요금, 외국보다 훨씬 비싸”“한국 관세행정 6년 연속 세계 '1위'”“한국 교통사고 사망자 수 OECD 회원국 중 2위”“결핵 후진국' 한국, 환자가 급증한 이유는”“수술은 신중해야… 자칫하면 생명 위협”대한민국분류대한민국의 지도대한민국 정부대표 다국어포털대한민국 전자정부대한민국 국회한국방송공사about korea and information korea브리태니커 백과사전(한국편)론리플래닛의 정보(한국편)CIA의 세계 정보(한국편)마리암 부디아 (Mariam Budia),『한국: 하늘이 내린 한 폭의 그림』, 서울: 트랜스라틴 19호 (2012년 3월)대한민국ehehehehehehehehehehehehehehWorldCat132441370n791268020000 0001 2308 81034078029-6026373548cb11863345f(데이터)00573706ge128495

                                Cannot Extend partition with GParted The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election ResultsCan't increase partition size with GParted?GParted doesn't recognize the unallocated space after my current partitionWhat is the best way to add unallocated space located before to Ubuntu 12.04 partition with GParted live?I can't figure out how to extend my Arch home partition into free spaceGparted Linux Mint 18.1 issueTrying to extend but swap partition is showing as Unknown in Gparted, shows proper from fdiskRearrange partitions in gparted to extend a partitionUnable to extend partition even though unallocated space is next to it using GPartedAllocate free space to root partitiongparted: how to merge unallocated space with a partition