Building a matrix keyboard using velostat film

Поделиться
HTML-код
  • Опубликовано: 9 сен 2024

Комментарии • 54

  • @naikrovek
    @naikrovek 20 дней назад +2

    this is cool. I am not a musician but I do like to make custom keyboards for specific purposes, and this is a revelation to me. thank you for putting this up.

    • @markfdesimone
      @markfdesimone  20 дней назад +1

      Thanks for commenting! I've stumbled on countless videos and blog posts from hobbyists and felt the same way, so I wanted to contribute a little to the community.

    • @3333218
      @3333218 9 дней назад

      I really wish more Computer and Programming Custom Keyboard people start discovering these kinds of things!!!

    • @3333218
      @3333218 9 дней назад

      ​@@markfdesimoneWould you be so kind as to point me in the direction of those?

  • @joaquinmartinez4889
    @joaquinmartinez4889 4 месяца назад +2

    Good stuff!! Thanks for sharing your project. Really enjoyed watching the whole process.

  • @flywittzbeats4008
    @flywittzbeats4008 10 месяцев назад +2

    This is incredible, I built a teensy prototype for a chord gen/articulator with homemade velostat, but I have had such a hard time getting a 2nd prototype that is more of a product as opposed to a block of old wood and misfiring buttons 🤣🤣 so this giving me so many awesome ideas, thank you so much for sharing.

    • @flywittzbeats4008
      @flywittzbeats4008 10 месяцев назад +3

      Not homemade velostat 😂 just regular velostat, sorry I’m exhausted haha

    • @markfdesimone
      @markfdesimone  10 месяцев назад +1

      Ooh that sounds really neat. Do you have any footage of your prototype?

  • @johnplatter4535
    @johnplatter4535 8 месяцев назад +2

    Amazing project!! Wow very inspiring

  • @leoboel5755
    @leoboel5755 8 месяцев назад +1

    Grazie per aver condiviso con tutti così tante informazioni preziose per questo importante progetto

    • @markfdesimone
      @markfdesimone  Месяц назад +1

      Grazie per aver dedicato del tempo per guardare e commentare. Se hai intenzione di provare un progetto come questo, fammi sapere!

  • @nikbivation
    @nikbivation 9 месяцев назад +2

    this is so cool, this helps me a lot!

  • @Rob_65
    @Rob_65 21 день назад

    This is a cool keypad. I played around with resistive pressure sensors but those are too expensive to build into a complete keypad. I never thought of using Velostat as a pressure mat. The aftertouch addition is a nice touch (pun intended) and I'll definitely play around with this.
    Teensy 4 is a great microcontroller. It used to be my standard "arduino" board before the Raspberry Pi Pico came out. I still use it, especially for audio and for some macro-pads (Teensy 4 has a high speed, low latency USB keyboard interface - this is missing on most other boards)

    • @markfdesimone
      @markfdesimone  21 день назад

      I haven't had great luck with the Pico, and I'm sure it's a me problem. They are so cheap and capable though, I want to get used to them at some point. I didn't come up with the velostat idea, btw! I just hyperfocused on the idea of making a cheap midi controller with LOTS of keys and found great resources.

  • @personalview7388
    @personalview7388 11 месяцев назад

    Main thing about Linnstrument is expression abilities. Here we don't have anything beyond Launchpad functions (and lack of leds!). Yes it is smaller pads and more of them.
    Using of film sensors lead to another problem - hardness and lack of feedback, this is also quality of Linnstrument.
    We need something like soft flexible clothing that is stretched and can travel under pressure.
    More (in feeling) like endless parallel strings of Erhu.
    Think about using small ring with accelerometer for expression control. It will be more limited but will keep your design.

    • @markfdesimone
      @markfdesimone  11 месяцев назад +3

      Thanks for taking the time to check this out! It is not as expressive as a Linnstrument, for sure. What excited me the most about this project was its low cost. The key ingredient is dirt cheap, and I imagine you could use it in tons of different ways. Also, I'm just a hobbyist, so I'm not aiming for a reproduction of a Linnstrument, or a polished commercial product. My main goal was to have a keyboard that I could use to explore microtonal scales more easily, and this definitely succeeds in that regard!

    • @personalview7388
      @personalview7388 11 месяцев назад +1

      @@markfdesimone Yeah, pretty cool. Just remember that cost is not low at all. It requires lot of skill, time to get components.
      One thing I want to propose for you is to look at Matrix grid open source controller.
      If you manage to modify their design for smaller and pressure sensitive pads and also make such 8x8 controllers stackable without border - it can be real deal for masses. As they have skills to really manufacture them in China.
      Check Striso thing, it is expressive, tiny, and uses 3 pads under each key. May be it is viable design for larger controllers.
      One of my ideas is stretchable clothing (similar to one used in Continuum) with IR reflective dots below it (around 200-300). So 240-480fps speed camera can be able to read any deformations caused by fingers. Here only costly component is camera and they are mass produced and progressing fast.
      Do you think it'll work nice? By idea scan rate is not too good, but can be usable.

    • @markfdesimone
      @markfdesimone  11 месяцев назад

      @@personalview7388 That's a really interesting idea, and it capitalizes like you said on a technology that's got tons of research behind it. I've seen videos of the Striso, and it sounds lovely! Very expressive. I will definitely have a look at that open source Matrix controller. Thanks for putting it on my radar!

    • @personalview7388
      @personalview7388 11 месяцев назад

      @@markfdesimone I suggest you to get Erhu and try it. As Roger Linn, for example came from guitar, making feeling similar to mix of guitar and violin. And issue is that fretboard limits the instrument expression.
      Also always take into account package size and molding costs.
      VMETER author has good economic article stating that any small batch controllers must have 1:4 cost to manufacture to retail cost ratio, never less.
      Linnstrument cost to manufacture is also around same ration, being $300-450.
      Such ratio also stops authors from moving to mass production as it is different expertise, very busy life and initially they'll have profits even drop sharply.

  • @robinmorabito6518
    @robinmorabito6518 4 месяца назад +1

    huge inspiration for what i'm currently working on but kind of a noob on electrical matters, how did you calculate the right resistance for the resistor grounding each column to the ground pin?
    keep up the awesome work :D

    • @markfdesimone
      @markfdesimone  4 месяца назад

      Awesome! I didn't calculate the value myself; I based the hardware approach on the Instructable that I have linked in the description. I don't know how you'd go about calculating such a thing!
      If you get to the point of sharing what you're making, ping me. I'd love to see what's up!

  • @gdclemo
    @gdclemo 4 месяца назад +1

    This is cool. I tried building a simple sensor with a piece of velostat with cardboard on top, copper tape on both sides of the velostat and then attached a multimeter to the copper tape with crocodile clips. But the resistance is so random. I'm not sure what's going wrong. I can just leave it still and the multimeter is measuring huge swings in the resistance such that there doesn't seems to be any reliable cutoff between pressing and not pressing the sensor, even between high and no pressure. Maybe I got sold something that isn't really velostat.

    • @markfdesimone
      @markfdesimone  4 месяца назад +2

      Oh that's a drag. Is the sticky side of the copper stuck to the velostat?

    • @excrubulent
      @excrubulent Месяц назад

      ​​@@markfdesimoneI actually tried using sticky copper tape against the velostat, and even though it was supposedly conductive glue, it practically inverted the function of the velostat (resistance first increased then decreased with pressure), so I had to conclude that it wasn't a viable way to make a pressure sensor.
      Using crossed strips is actually a really interesting way to use that sort of tape.

  • @sinisterbydesign
    @sinisterbydesign 11 месяцев назад +1

    Nice! Thank you!

  • @j.b.cristian
    @j.b.cristian 7 месяцев назад +1

    amazing!

  • @flywittzbeats4008
    @flywittzbeats4008 10 месяцев назад +2

    Can I ask if you’re getting any false starts on the FSR’s? I have tried small copper tape cuts, more copper, carbon fiber sandwiches, even a pretty intricate tape cut. The best results I got were the carbon fiber on either side. I still get some but I think it’s because I want it to be extremely responsive, or maybe there’s something in my code, not sure

    • @markfdesimone
      @markfdesimone  10 месяцев назад +2

      Well, it did take a fair amount of experimentation to find out what the maximum and minimum pressure values were, but that was a question of fine-tuning the code after I built the circuit.
      If you can describe your trouble in more detail I'm happy to try and help! My problem regarding responsiveness is that some of the sensors are more sensitive than others, which means I have to hit some harder than others to get them to sound. For those issues, the sensors were either on the edge of the velostat, or there was a ripple or bump that created a bit of space between the copper and the velostat. I'm not sure that's what you would call a false-start. It's more like some of them are stubborn.
      Is it possible that your code is a factor in the setup? Or, could there be a pin or connection in your circuit that's not properly grounded?
      Regarding the responsiveness, I am not a professional keyboardist or anything, but I've been pretty darn happy with this thing's performance in that regard.

    • @flywittzbeats4008
      @flywittzbeats4008 10 месяцев назад +1

      @@markfdesimone gotcha, yeah I actually unfortunately lost my program I wrote for the instrument when updating to a new OS 🥲 but I am going to get back to it in probably the next couple weeks so I will certainly check back in. It was just that it would play a midi note every once in a while with out me doing anything haha. So I guess I was trying to bring the threshold to low. Maybe my breadboard was bad, grounding shouldn’t have been an issue but maybe. Emi perhaps? Ever since I built that prototype I have been coming up with more ideas in my head that I’m ready to try and get out of there haha, this video is perfect because I have yet to work with mux’s, and I love the practicality of your design. One idea I have is making an fsr/switch to both complete the circuit and measure resistance. I have a way I want to test it out so I will definitely keep you updated (: thanks again for making this video, so glad RUclips recommended it to me.

    • @markfdesimone
      @markfdesimone  10 месяцев назад

      @@flywittzbeats4008 Excited to hear more! I'm jazzed about the velostat too. It's cheap, and it seems like you can do almost anything with it.

  • @matiasmorant4484
    @matiasmorant4484 6 месяцев назад +2

    This looks like the sensor on Linnstrument

    • @markfdesimone
      @markfdesimone  6 месяцев назад +1

      Yup, and lots of insight came from Roger Linn about his Linnstrument on his website.

  • @lisaayres-zp5jj
    @lisaayres-zp5jj 9 месяцев назад +2

    do you ever experience key ghosting? will you try to write a piece?

    • @markfdesimone
      @markfdesimone  9 месяцев назад +2

      Yes. Like on the Linnstrument, if you play 3 corners of a rectangle, the fourth will also sound. I think Roger Linn has some software logic that anticipates this and prevents the fourth from playing.

    • @willemfeltkamp5314
      @willemfeltkamp5314 3 месяца назад

      @@markfdesimone there is a simple way to prevent ghosting by inserting diodes into the schematics. do an internet search and there are multiple examples of how to do this.

  • @willemfeltkamp5314
    @willemfeltkamp5314 3 месяца назад

    you explain the schematics at counter 33.00. It seems simple enough, but do you have a drawing?

    • @markfdesimone
      @markfdesimone  3 месяца назад

      I don't have one of my own, but the instructable I linked to in the description does have a useful diagram.

  • @matiasmorant4484
    @matiasmorant4484 6 месяцев назад +1

    Could this be adapted to make an hexagonal pattern grid? Like Lumatone or accordions

    • @markfdesimone
      @markfdesimone  6 месяцев назад

      Physically, I think so. The code for it would need to be reworked though, I think. The power of the Lumatone comes from the fact that you can map any pitch to any button through their software, which I don't think could be done here.

  • @excrubulent
    @excrubulent Месяц назад

    So you used multiplexers, that's interesting because another person making midi pressure pads found that the multiplexing inside the microcontroller he was using made it lose sensitivity after adding more than a handful of sensors, but you've got multiplexing working smoothly with over 200 sensors! Have you run into any sensitivity issues at all with this?

    • @markfdesimone
      @markfdesimone  Месяц назад +1

      Yeah, I was definitely worried about how quickly and accurately the thing could measure 200 sensors. Imagining each reading takes 1 ms, I was worried that I'd get 5 or fewer measurements per second for each sensor. But I did a little bit of digging in the Teensy forum, and read that those microcontrollers have high-quality DACs, as well as speedy processors. It's been a while now since I worked on this, but I think that the reality is that the main code loop circles back really quickly, and the DACs can handle being called rapidly, so the measurements must be several times faster than 1ms per sensor.
      TL:DR; I gave it a try with a fast, solid microcontroller and I think it just worked out?

    • @excrubulent
      @excrubulent Месяц назад

      @@markfdesimone Okay, well great! The other guy was using a bare ATMega328p, I don't know how it compares performance wise but maybe it's not as fast? I'll just have to give it a try myself I guess.

    • @markfdesimone
      @markfdesimone  Месяц назад +1

      @@excrubulent In case it helps, this is the lowest-spec microcontroller I've used for these: The teensy LC has a clock rate of 48mhz.
      Could be wrong about the ATMega328p, but it seems like it runs at 20mhz. I'm sure there are other architectural differences between the two boards, and I'm not an expert. I think the key is probably to keep the loop short and optimized to run fast (maybe use arrays where possible to look up values instead of doing calculations on the fly?), and then try a Teensy if you can. They don't produce the Teensy LC any more but the new 4.0 microcontrollers are WAY faster and fancier, and still pretty affordable (~ $25 I think)

    • @markfdesimone
      @markfdesimone  Месяц назад +1

      Or, if it seems like the analog readings are bleeding into each other (the sensitivity issues I think you're talking about), you can use some extra code to throttle the speed of the loop so it only runs as often as the DAC can measure reliably.

    • @excrubulent
      @excrubulent Месяц назад

      @@markfdesimone Yup, so another option is to use a MCP3008 DAC IC which runs at 200,000 sps (which I believe is samples per second), so should be more than enough.
      My current plan is to use an ESP32 which can run at 320MHz, so far more than I'll need. Thanks for all the information, I really appreciate the replies!

  • @romeolz
    @romeolz 4 месяца назад +1

    I'm seriously considering building one of these, I have a few questions
    would it be possible to use a shift register instead of a multiplexer as the "output" cols/rows? (someone told me it could work in a normal non-analog keyboard matrix)
    could key ghosting be minimized by changing the layout of the rows and columns? (by making them diagonal or something)
    does the velostat have to be a single sheet or can you have a couple smaller sheets of it next to each other?
    instead of a foam pad, can you use squishy keys instead?
    and maybe you could add LEDs if you 3d printed the keys in transparent tpu filament?
    I might not get my points across clearly so I'd love to chat about this on somewhere, do you have socials?

    • @markfdesimone
      @markfdesimone  4 месяца назад

      Hey romeolz! I'm happy to connect and chat. If you're on Facebook, I'm in a few instrument-maker groups (Experimental Instrument Builders, Experimental Music Software and Hardware). Beware, I'm not an expert, and don't have a great understanding of shift registers. Maybe we can talk about it and figure out together if it's an option. The multiplexers are super cheap, and have worked really well in my limited experience though, and I'm sure you could add more rows and columns with a couple more multiplexers if that's what you're trying to do.
      I think the key ghosting would be a consideration with any column+row setup, even if they're not 90 degrees from each other. The way my instrument turned out, the only ghosting I have to deal with is when you press four keys that form a rectangle, which isn't too often. And what happens is that if you press down 3 corners of the rectangle, the fourth corner will act as if it were pressed too. I think Linnstrument must have code that handles this more elegantly, and prevents that fourth corner from triggering a note-on. BTW the Linnstrument's code is open-source!
      I haven't tried using several velostat sheets next to each other. I bet it would work, but the keys that are on the border between two sheets would probably be less responsive than other keys. Adafruit sells 11 inch sheets for a pretty good price, if you're able to buy from them.
      The foam pad is not necessary. I used it because I needed some flat material to stick the copper tape to. I think having a little bit of squishiness is nice, but I would recommend trying a few different approaches to see what feels best for you. I've played with printing TPU for keys; that worked OK but they weren't much more squishy than PLA keys, and were less consistent. I think there's lots of room for improvement on the key design.
      I do wish I could have LEDs under the keys, but I decided against it for cost and complexity reasons. I think using stickers or washii tape is a nice low-tech way to experiment without needing to touch any code or software.

    • @romeolz
      @romeolz 4 месяца назад

      @@markfdesimone let's do it! I can't get on Facebook right now so I want to know what time zone you're in (so I know not to message you at 3am waiting for a response, I'm in UTC+2)

    • @markfdesimone
      @markfdesimone  4 месяца назад

      @@romeolz Cool, I'm in Pacific daylight time, which is UTC+7

  • @DanielMiclos
    @DanielMiclos 9 месяцев назад +1

    Very nice! I bought some Velostat sheets, a Teensy 4.0, resistors, copper tape, and analog multiplexers years ago with the intention of making a Janko keyboard with poly-aftertouch. However, the only thing I'm missing is the willpower to overcome my laziness. 🥱

    • @markfdesimone
      @markfdesimone  8 месяцев назад +3

      I hope you find the mojo to give it a go! I have been tinkering with mine for quite a while, and it's becoming a really really fun instrument to play (even poorly).

    • @DanielMiclos
      @DanielMiclos 8 месяцев назад

      Yes, @markfdesimone, after watching your video, I was thinking about creating a vector model and then having the velostat and copper cut at a print shop or acrylic laser cutter service to make it more precise and save time. Have you considered this option for future projects? Here in Sao Paulo, Brazil, this kind of service is pretty cheap.

    • @markfdesimone
      @markfdesimone  8 месяцев назад

      No actually, I'm not sure how to create files for that. You have local shops that would cut velostat if you bring it to them? Maybe there are places lime that in the US, too. I usually try to figure out how to use the methods I can do at home, so I can make as many mistakes as I need to. I don't make things to sell really, so these are just for me.

    • @willemfeltkamp5314
      @willemfeltkamp5314 3 месяца назад

      Hi Daniel, I hope you will start your project, as I'm planning to do exactly the same. I already built a four octave non-velocity sensitive Janko layout midi controller. Before that I had zero experience in working with electronics or Arduino.