element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum Sensing Velocity for MIDI using Arduino
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 7 replies
  • Subscribers 418 subscribers
  • Views 2073 views
  • Users 0 members are here
Related

Sensing Velocity for MIDI using Arduino

bnelson218
bnelson218 over 13 years ago

Hello,

My name's Bruce and I have both programming (Visual Basic) and electronics experience, but no experiance with Arduino. My quest here is to find a way to use force sensing resistor strips and Arduino to obtain and send velocity sensitivity data to a MIDI controller. If unfamiliar, MIDI stands for Musical Instrument Digital Interface and represents a language through which musical instruments, namely synthesizers, can communicate with each other (although it has been expaned greatly since its inception in the early '80s). Velocity sensitivity refers to, for instance, how hard a pianist strikes the key--the harder it is struck the louder the note sounds. In the digital world, such as with digital pianos, key contacts are used, one closing slightly before the other, and thereby producing a differential which is then calculated and transferred to velocity data thus sounding the note at the appropriate amplitude. Through a Google search I came across a fellow (I believe it was the HackADay.com site) who used resistive force strips in conjunction with an Arduino processor to calculate and transmit the velocity data to his MIDI processor. Unfortunately, the fellow won't return any of my inquiries so I am exploring other avenues. My ultimate goal is to come up with a system that will work beneath the keys of a Hammond organ, such as a B3 or C3. Due to the amount of space available beneath the keys--5mm when a key is pressed--switch contacts are absolutely out of the question. The force-sensing strips I've seen, such as pololu.com's item #1697, seem perfect for the job. They are 24" long (so 2 would be needed to cover a 61-note keyboard) and would fit perfectly under the keys. All I have to do now is figure out the rest of the puzzle.  image

So, if anyone has any thoughts on this, or perhaps needs more info, I would appreciate hearing from you.

Regards,

Bruce Nelson

bnelson218@yahoo.com

  • Sign in to reply
  • Cancel
Parents
  • e14 Contributor
    0 e14 Contributor over 13 years ago

    Bruce, do you already have a key-on/key-off system in place? Or in simpler terms, a key-press detection system without any velocity detection?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • bnelson218
    0 bnelson218 over 13 years ago in reply to e14 Contributor

    Hi,

    Yes, there's a system in place in case I can't develop the VS ability. It's a VS-capable midi controller board made by midiboutique.com, model MKCV128SN, which offers 128-note capability. The nice thing with this company is that at time of purchase I can describe the various functions I need (in my case this'll include octave up and down switches, a level control, and Pitch amd Mod' wheels) and they'll burn the processor with these options. So I'm assuming they can also burn in whatever's needed to accept VS data from an Arduino/force resistor circuit. The only thing that's bugging me is what I'm calling the release factor. Perhaps hard to explain if you're not a keyboard player, but I'm assuming that if I press a key, and the Arduino circuit reads and sends the key's velocity data, will that key need to be released before VS data can be read again? I'm guessing so and this may cause problems if you're plating arpeggios that require the notes to be held

    down as succesive note are added. Like I said, it's a little hard to explain to non players, but if you do play keyboards then you can likely imagine what I'm getting at. The VS data for the first key played will likely establish the VS for any subsequent keys played if the first key is not released.

     

    This fellow has done exactly what I'd like to do, using 4 force resistor strips under a toy keyboard, probably to establish some independeny along the keyboard in dealing with the situation I descibed above. Actually, since these strips can be cut to specific lengths, couldn't I do one for each key?

    Here's a YouTube video by a guy named Jen Shen who's installed the force resistor strips in a toy keyboard and achieved not only velocity sensitivity but also after touch:

    http://www.youtube.com/watch?v=yIBBxDHOa0g

     

    Once a key is held down, after touch allows the player to alter the sound by changing the pressure on the key.

     

    Here's Jen's Jen's tutorial on cutting the strips:

    http://www.youtube.com/watch?v=x-pQ651_iZY

     

    By the way, this is the same fellow I saw originally that lead me to the idea of using these strips, unfortunately he won't answer any of my inquiries--probably inundated with emails and busy. Go figure. There's a ton of info on this. On Google I searched "midi velocity diy arduino" and got all kinds of returns, but not being familiar with Arduino and tghe associated verbage I could very well be looking at exactly what I need and not know it. Arrrg...

     

    Well, I appreciate your interest in this and hope you can assist me in making it work.

    Best regards,

    Bruce Nelson

    Toledo, OH

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • e14 Contributor
    0 e14 Contributor over 13 years ago in reply to bnelson218

    Hello there Bruce, I understand a little bit of keyboard playing, so I can perfectly understand what you're getting at! image. I'm not entire sure if I can help you, but here is my two cents about the subject;

    I'm familiar with the project that you've linked, did you've checked the blog post about it? in it you can have a schematic and even a part-list. The main problem is that for every Velocity/Aftertouch detector, you'll have to expend an average of 4$. He uses those "slide" pads that i'm sure you're familiar with. So, I'm not sure this is the way to go, if you're looking for a keyboard with a decent amont of keys.

     

    I'm not entirely sure if I will help you or confuse you even more, but here it goes.

    The reason why I've asked if you already have a "Note-On/Off" system in place, is because for velocity calculation you would simply have to duplicate it. You would put two pressure pads on each key, one would be activated if the key is just touched and the other only when the key is fully pressed. Using an Arduino you would then calculate the delay between the two Inputs and have the "Velocity".

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • mcb1
    0 mcb1 over 13 years ago in reply to e14 Contributor

    Not to barge in on your conversation.....

     

    Would an accelerometer be of any use.?

    It will detect the force of the key hitting home and transfer that into a 'z' axis.(up/down)

    You know what key and from the accelerometer, how much force was applied.

     

    At worst you might need three to cover the whole organ more evenly.

     

    I wouldn't have thought this was possible, until I ran across the "secret knock' example on mbed.org using a KL25z board.

    With a setting of about 1/2 g the knock on the table is not at all loud, so the sensitivity is there.

     

     

    Mark

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • bnelson218
    0 bnelson218 over 13 years ago in reply to e14 Contributor

    Hi again,

    Well, with the Midi Boutique controller in place, I'll have Note On function. It was my hope to be able to augment it with the resistive force strip(s) in order to provide the VS data. In a perfect world I'd have my CNC up and running and would simply machine 61 small SPDT lever switches to reside under each key and the whole resistive strip idea could be chucked out the window. But I can't afford the CNC. haha Maybe next year. I guess my hope here is to learn how to collect and process analog data into digital data using Arduino. With that ability any number of methods could be tried. I still like the optical method, too. A guy named Sebastian Steppler, a German engineering student, has perfected an array of optical sensors, called Epick, that reside under the keys and provide VS and after touch data. It's really cool but he won't bring it to the US for fear of copyright infringements with companies doing the same.

    Well, I appreciate your advise and interest in this. I'll talke another look at Jen Shen's blog and see what open source material is available.

    Thanks again,

    Bruce

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • bnelson218
    0 bnelson218 over 13 years ago in reply to e14 Contributor

    Hi again,

    Well, with the Midi Boutique controller in place, I'll have Note On function. It was my hope to be able to augment it with the resistive force strip(s) in order to provide the VS data. In a perfect world I'd have my CNC up and running and would simply machine 61 small SPDT lever switches to reside under each key and the whole resistive strip idea could be chucked out the window. But I can't afford the CNC. haha Maybe next year. I guess my hope here is to learn how to collect and process analog data into digital data using Arduino. With that ability any number of methods could be tried. I still like the optical method, too. A guy named Sebastian Steppler, a German engineering student, has perfected an array of optical sensors, called Epick, that reside under the keys and provide VS and after touch data. It's really cool but he won't bring it to the US for fear of copyright infringements with companies doing the same.

    Well, I appreciate your advise and interest in this. I'll talke another look at Jen Shen's blog and see what open source material is available.

    Thanks again,

    Bruce

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube