How to make a MIDI keyboard using Arduino | Small Project

Sdílet
Vložit
  • čas přidán 5. 09. 2024

Komentáře • 486

  • @GoodElectronics
    @GoodElectronics  Před 4 lety +40

    // Here's the CODE:
    // works with keyboards with matrix 7x8
    #define matrix1 7
    #define matrix2 8
    #include "MIDIUSB.h"
    int octave = 0; // add or subtract 8 for one octave
    bool currentState[matrix1 * matrix2];
    bool requestState[matrix1 * matrix2];
    void setup()
    {
    //------matrix1 number of pins--------
    pinMode(A0,INPUT); //1
    pinMode(A1,INPUT); //2
    pinMode(A2,INPUT); //3
    pinMode(A3,INPUT); //4
    pinMode(14,INPUT); //5
    pinMode(15,INPUT); //6
    pinMode(16,INPUT); //7
    //------matrix2 number of pins--------
    //each matrix2 pin must be one above the previous one
    pinMode(2,INPUT); //1
    pinMode(3,INPUT); //2
    pinMode(4,INPUT); //3
    pinMode(5,INPUT); //4
    pinMode(6,INPUT); //5
    pinMode(7,INPUT); //6
    pinMode(8,INPUT); //7
    pinMode(9,INPUT); //8
    }
    void loop()
    {
    readKeys();
    writeKeys();
    delay(1);
    }
    void readKeys()
    {
    for(int i=0; i

    • @jonathanteng6714
      @jonathanteng6714 Před 4 lety

      nice project !!, where the section of the code I must change if use pulldown resistor on the row pin ?
      I've been change digitalWrite(i,LOW); to digitalWrite(i,HIGH); but still no response from the piano.

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      you need to change "!digitalRead" to "digitalRead"

    • @ti7adahab799
      @ti7adahab799 Před 4 lety +1

      Can i use this code with piano toys 32 keys ...

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      I think so, but you need to change matrix dimensions in this code

    • @ti7adahab799
      @ti7adahab799 Před 4 lety

      @@GoodElectronics
      How...i can't handle it..i use board of piano toys 32 keys ... Can u connect me with Facebook or WhatsApp

  • @w0udo6yv4o4
    @w0udo6yv4o4 Před 4 lety +54

    The diodes are there to prevent notes ghosting

    • @oskrpnk666
      @oskrpnk666 Před 4 lety +4

      THIS. Seems that this guy has never assembled or looked at a mechanical keeb or any key matrix

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +4

      @@oskrpnk666 Ohhh, I see now. I forgot that current can float through keys that aren't connected under specific circumstances

    • @BehniaFB
      @BehniaFB Před 3 lety +1

      What do you mean by ghosting? Is it anything important for this purpose?

    • @BehniaFB
      @BehniaFB Před 3 lety

      ​@@GoodElectronics What do you mean by ghosting? Is it anything important for this purpose(making my keyboard MIDI) ?
      I hope you'll answer me soon.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +5

      Ghosting is wrong reading of multiple pressed keys at once, usually there can be additional key recognised as pressed.

  • @System-1541
    @System-1541 Před 7 měsíci +1

    The diodes are there to prevent ghost signals when scanning the keyboard as a matrix. Honestly, I don't know how your circuit is working without them. Unless somehow you unsuccessfully shorted their pins in your wiring scheme, and they are still preventing backflow of the current. Diodes are a necessary part of a circuit like this.

  • @kevalnakar6269
    @kevalnakar6269 Před 2 lety +2

    This video becomes the one stop solution for me.
    Because I want to make midi keyboard (Arduino based) from long time.
    Thank you so much brother

    • @kevalnakar6269
      @kevalnakar6269 Před 2 lety

      Thank you
      I'm understanding the code
      With feeling

  • @sangrambhumia9320
    @sangrambhumia9320 Před 3 lety +3

    Finally made my MIDI keyboard today ! All thanks to you and your code. Just a little tweak in code made it work for my 32key keyboard 😊. There is no delay whatsoever 🐱.

    • @sanjay.skumar7467
      @sanjay.skumar7467 Před 2 lety

      could you send the code as I have 32 keys too, would save others time from making changes too

    • @sheharafernando8507
      @sheharafernando8507 Před 2 lety +1

      I have a 32 key matrix too(4*8)and my keyboard just keeps playing in the same octave can you send the code?pls

    • @sangrambhumia9320
      @sangrambhumia9320 Před 2 lety +1

      Should i send that here?

    • @andrewarguelles6945
      @andrewarguelles6945 Před 2 lety

      @@sangrambhumia9320 Nice work!
      I dont have enough knowledge about programming.
      i have everything wired up
      Can you send a 61keys code? 8x8 matrix. my project is sitting for 1month now and cant seem to find the right code.
      any help will be appreciated :)

    • @sangrambhumia9320
      @sangrambhumia9320 Před 2 lety

      @@andrewarguelles6945 I have code for 32 keys and I am not sure if it will work with 61 keys.

  • @jkromes20
    @jkromes20 Před rokem

    i looked up this video trying to remember Evan Kale's name hahaha prefect shoutout. What great videos he had

  • @HETRM
    @HETRM Před 3 lety +3

    awesome work!! thanks ..it worked for me had 6x8 matrix, with some small changes.🙏🙏🙏👏👏👏

  • @nitishdas22
    @nitishdas22 Před 3 lety

    Hey Good Electronics , it is a very informative video ... Thanks ! ... and congratulation on reaching 500 subscribers, me being the 500th one ! :)

  • @kwonbryan
    @kwonbryan Před 4 měsíci +1

    Hello, I am new to this but your video might help for my midi setup. I got Yamaha PSR 160 keyboard. And the cable inside I got 15 cables all together. Not like yours as 7 and 8 cables separated. In that way, how should I program?

    • @tutorialesdewindows7869
      @tutorialesdewindows7869 Před 4 měsíci +1

      use a multimeter, look for other videos where u identify "keyboard matrix". ask here som1thing idk

  • @buttonsplaymusic4896
    @buttonsplaymusic4896 Před 3 lety +2

    This was pretty interesting. Can you next do one where you put an lcd on your Leonardo, and add some sounds to it and a scroll button or 2, so you can have the sounds right on the arduino (not just a midi controller)? (Would be cool to use samples, but midi synth would also be cool I guess)

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      Arduino is really bad at playing sounds, you would need something more powerful, or some sound module for arduino

  • @gustavosabath8618
    @gustavosabath8618 Před 9 měsíci +1

    Thanks for the video! I would like to ask if can I use the midi input of my keyboard to input midi signals, so that my keyboard can be played by the arduino

  • @ElectronDuino
    @ElectronDuino Před měsícem

    Can you press multiple keys at once? Or is it the function of the diodes?

  • @Astrovic1
    @Astrovic1 Před 3 lety +3

    fl studio beste:) will probably also do this for a project in university

  • @whereone
    @whereone Před 3 lety +1

    thanks, you save my keyboard life :D.... 100% working... I can't buy a resistor ladder so I make one.

    • @ti7adahab799
      @ti7adahab799 Před 3 lety

      How u made it ??

    • @whereone
      @whereone Před 3 lety

      @@ti7adahab799 Just connects a resistor in parallel and I use (680 Ω ±5% (J)) Resistor.

    • @loveandlearn592
      @loveandlearn592 Před 2 lety

      @Albert Reveche How many resistors is needed to make one?? I cant buy a resistor ladder too, if possible can you share the pic of your board.

    • @whereone
      @whereone Před rokem

      @@loveandlearn592 use same amount in the video. 7 resistor

  • @sanjay.skumar7467
    @sanjay.skumar7467 Před 2 lety +3

    // CODE FOR 32 keys and using the resistor ladder on negative(gnd) instead of vcc and bugs fixed
    //works and tested for Casio SA-47A
    // works with keyboards with matrix 4x8
    #define matrix1 4 // rows
    #define matrix2 8 // columns
    #include "MIDIUSB.h"
    int octave = 24; // add or subtract 12 for one octave
    bool currentState[matrix1 * matrix2];
    bool requestState[matrix1 * matrix2];
    void setup()
    {
    //-matrix1 number of pins-
    pinMode(10,INPUT); //1
    pinMode(11,INPUT); //2
    pinMode(12,INPUT); //3
    pinMode(13,INPUT); //4
    //-matrix2 number of pins-
    //each matrix2 pin must be one above the previous one
    pinMode(2,INPUT); //1
    pinMode(3,INPUT); //2
    pinMode(4,INPUT); //3
    pinMode(5,INPUT); //4
    pinMode(6,INPUT); //5
    pinMode(7,INPUT); //6
    pinMode(8,INPUT); //7
    pinMode(9,INPUT); //8
    }
    void loop()
    {
    readKeys();
    writeKeys();
    delay(1);
    }
    void readKeys()
    {
    for(int i=0; i

  • @raginggamer2615
    @raginggamer2615 Před 3 lety

    thank u soooo much this video help me a lot I'm a begginer and this help a lot

  • @HarshitBujarBaruah
    @HarshitBujarBaruah Před 3 lety

    Fantastic project.

  • @aldrenelectronicsrepair8447

    crazy key result

  • @abhayganesh6364
    @abhayganesh6364 Před 9 měsíci +1

    is it essential to use resistor ladder

    • @ElectronDuino
      @ElectronDuino Před měsícem

      Yes, to pull up the keys pins so arduino can read them.

  • @nazilgun7597
    @nazilgun7597 Před 3 lety +1

    In Turkey, they are so expensive, you just cut my dream dude

  • @frankventura7306
    @frankventura7306 Před 2 lety

    Great Video! can you upload the wiring diagram. i was wondering how your connections were wired.

    • @GoodElectronics
      @GoodElectronics  Před 2 lety

      Hi. In my case half of the keyboard ribbon goes to matrix1 pins, the other one to matrix2 pins. The resistor ladder is connected to matrix1 and I believe connects to gnd. And that's all.

  • @HarisTurki
    @HarisTurki Před 3 lety +1

    hello guys, I have recently bought an electric piano with 61 keys for 90$ and I want to turn it into a midi controller but the problem that I understand nothing about electronics and Arduino so I wonder if anyone can help me to turn my piano into a midi controller and thank you so much.

  • @oleksiy_101
    @oleksiy_101 Před 6 měsíci

    Thank you very much for the video. Can you please tell me where I can buy a matrix button like in the video?

  • @RiccardoRivi
    @RiccardoRivi Před 3 lety +1

    Is It polyphonic?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Yes. Unfortunately shorting these diodes limits it to 2 or a few keys at once (which I didn't know when I was making the video), but if you leave them, it's fully polyphonic

    • @RiccardoRivi
      @RiccardoRivi Před 3 lety

      @@GoodElectronics nice, thx

  • @joemjaveevelaylo2327
    @joemjaveevelaylo2327 Před 3 lety +1

    Hey, great video. It really encouraged me to build my own midi keyboard. Just asking how should I code if I want the velocity sensitive keys because I might get access to another 49 key piano circuit. Thanks in advance, even if you can't help.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      That will be much harder to code, you will have to make some sort of voltage divider, but the code will be more complex

    • @joemjaveevelaylo2327
      @joemjaveevelaylo2327 Před 3 lety

      Hey, does the code also work for the leonardo board, a friend also wants to build and he already has the board and was wondering if there is anything to change for a different board

    • @ElectronDuino
      @ElectronDuino Před měsícem

      @@joemjaveevelaylo2327 yes. It's the same chip.

  • @doganseseogullari3267
    @doganseseogullari3267 Před 4 lety +2

    Hi, congrulations. And thanks for sharing. Do keys enable to play in velocity?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      There's some velocity option in MIDI library, but I didn't test it, so i can't tell you anything about that.

    • @vic2net
      @vic2net Před 3 lety

      Hi man, I found a method how we can play notes with different velocity, just use Piezo element, not simple buttons, so we will be able to play with different velocity. (price will be same)

    • @doganseseogullari3267
      @doganseseogullari3267 Před 3 lety

      @@vic2net but the piezos do not have continues playing ability. They can play sample wav based vstis continues but cant for digital vsts sound generators. And other problem is. Some piezos can be triggered even you dont hit if you play next piezos

    • @pmj_studio4065
      @pmj_studio4065 Před 3 lety +1

      For a velocity sensitive keyboard you need two switches per key at different heights. You can use the time difference between when each of them was pressed to calculate the velocity.
      It's called "double sensor keyboard". There are also "triple sensor keyboards" to better detect fast key presses where you don't lift them all the way up (e.g. trills), but you can do almost the same with only two.

  • @jdentertainment2040
    @jdentertainment2040 Před 4 lety

    I have a problem on the keys from D7 and above its not working when I unscrew it I saw unconnected wire but I dont know where is it connected

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Check the place where these wires go into this keyboard buttons if all wires are connected.

  • @eshanoshadha7709
    @eshanoshadha7709 Před 3 měsíci

    Can it be done with nanoboard?

  • @TheJasonf8892
    @TheJasonf8892 Před 6 měsíci

    is there any chance of getting the documentation for this? or the website link please??

  • @devon12346
    @devon12346 Před rokem

    can someone explain shorting the diodes and what the resistor ladder does and how I can get one or make one and how also how it's used?

    • @ElectronDuino
      @ElectronDuino Před měsícem

      You can purchase the resistor ladder on internet. But if you don't want to, you can simply put normal resistors. The only difference is that the resistor ladder is smaller. Resistors are very cheap.

  • @daddydanny5588
    @daddydanny5588 Před 4 lety +1

    gr8 vid
    i want to know the long code that you're writing .. :)

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +2

      Hi. The code is in the pinned comment. It might be under other comments, it's not showing always, I don't know why.

    • @daddydanny5588
      @daddydanny5588 Před 4 lety

      @@GoodElectronics Thanx

    • @Nuwan__Madusanka
      @Nuwan__Madusanka Před 3 lety

      @@GoodElectronics please put that code on discription box...

  • @sangrambhumia9320
    @sangrambhumia9320 Před 3 lety

    Awesome video bro!!! But where do i find that codes. And will it be same for a 32keys keyboard?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      On the pinned comment (if it's not pinned, you need to scroll to find it, it unpins somehow), there's an explanation how to change pins inside it.

  • @yelintunnet57
    @yelintunnet57 Před 2 lety

    When i connect with piano to PC that piano was auto play so what should i do?

  • @theeeblack0wl
    @theeeblack0wl Před 3 lety

    hello , pretty nice tutorial, but i have a problem, when connecting the pins to the right inputs, i get only few of the keys working, when i short the pins at the beggining of the keyboard i get the sounds, but cant seem to get them when pressing the buttons, might it be because of resistance? im not using resistor ladder, but normal 5k resistors in parallel.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Right, resistor ladder is resistors in parallel. You can try with some other resistance. I also recommend you to short each input with each output with a wire to check if it's working, then measuring if the keyboard shorts one of inputs to one of outputs after pressing a key.

  • @user-yq3qi2vw3x
    @user-yq3qi2vw3x Před 11 měsíci

    Can it be used in the org 2020 application, smartphone

  •  Před 2 měsíci

    Can I still use the original speakers?

    • @ElectronDuino
      @ElectronDuino Před měsícem

      if you find a way to connect the pins to arduino still beeing able to connect them to the original board yes

  • @KASHYAP788
    @KASHYAP788 Před 3 lety

    how to make a midi keyboard using arduno nano for casio sa78 keyboard please make a video

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Hi. I don't want to make a video for every keyboard, check how it this keyboard wired, if similar to my, you can connect it like I did

  • @ramdhanrm7686
    @ramdhanrm7686 Před 3 lety

    super cool

  • @ahmetaslan2059
    @ahmetaslan2059 Před 3 lety

    Hello, I find your videos very successful. I want you to make a video about a project. In short, the Kontakt controller has LED guides. This manual is standard for local instrument midi keyboards, s49 mk2 midi keyboards, but we haven't found a resource we can do, there is a led guide for the piano, but I don't know if it is included in the program. I am waiting for your information on how to do this. I'm so sorry for my English. :) Thank you.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      Hi. I don't want to make more videos about midi, because I don't use it and I don't want to learn a whole topic about midi only to make a video. I'm sorry, but midi and instruments aren't my hobby, so I won't make a video that explains perfectly aspects of midi and its usage.

    • @ahmetaslan2059
      @ahmetaslan2059 Před 3 lety

      @@GoodElectronics I got it, thank you very much.

  • @codewithzi-5817
    @codewithzi-5817 Před rokem

    Uhmmm... I kinda have a question. Can this circuit be used on mobile phone application? I have some applications that require a midi keyboard

    • @ElectronDuino
      @ElectronDuino Před měsícem

      If you find a way to connect via bluetooth or something to the mobile phone (maybe using an ESP32,) then yes, you can.

  • @loveandlearn592
    @loveandlearn592 Před 2 lety

    How to make a resistor ladder ? I can't find one..
    Also can you share the picture of final version board?? (The main thing is the circuit so its logical to have the picture of it imo)
    And what board to select on arduino IDE

    • @ElectronDuino
      @ElectronDuino Před měsícem

      You can purchase the resistor ladder on internet. But if you don't want to, you can simply put normal resistors. The only difference is that the resistor ladder is smaller. Resistors are very cheap.

  • @shreygupta7847
    @shreygupta7847 Před 4 lety

    does the keyboard need to be in proper working condition for this to work properly? Actually a couple of keys in my keyboard are not in proper condition, so will the midi functioning be affected or does it only depends on pressing of key ?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +1

      If some keys aren't working, there's a chance that it's broken inside microcontroller which is replaced with arduino, but it can be also a broken cable. Arduino requires a slight signal to detect it, so even weared contacts could work. If it works, the key condition won't be distinguishable (if it is, try a higher resistance resistor ladder).

  • @harshroy5165
    @harshroy5165 Před 4 lety

    Hello, will it register more than one key pressed simultaneously? As in playing a chord on the piano?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Yes, I made this that way so it registers any amount of keys pressed at once.

  • @sultanmehmood8547
    @sultanmehmood8547 Před 2 lety

    great vid! helps alot! but could i use an ESP32 instead of an arduino pro micro for this?

    • @GoodElectronics
      @GoodElectronics  Před 2 lety

      I'm not sure, you have to check if it has native USB support and has arduino midi library

  • @troller2705_
    @troller2705_ Před 3 lety

    Been working on this for a while but can't get any midi output on my computer im using a 7x6 matrix and have altered the code accordingly im not sure how to do the resistor latter but im pretty sure everything else is right

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Did you try to short the inputs with outputs by hand? Maybe the keyboard isn't working well with this circuit

    • @troller2705_
      @troller2705_ Před 3 lety

      @@GoodElectronics i found when i added my resistors on the one side and sorted it to raw I got 2 3rds of the keys working but I only got about 5 different notes I am trying to redo my wiring rn hopefully that will fix it and if not I will figure something out if it still doesn't work is there an email I would be able to communicate with you through to send pictures of my pin layout?

  • @williamgard9929
    @williamgard9929 Před 4 lety

    So how would I do this with a 6 x 11 matrix configuration? Would it be possible to change the matrix parameters to achieve the desired result?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Hi. You firstly have to check where these 2 sets of cables split. In my code there's an instruction about setting up different amounts of pins. Write if you have any other questions.

  • @tutirjeh
    @tutirjeh Před 4 lety +1

    i have a 10*6 matrix for my keyboard How to change the code ?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +1

      Firstly, you have to modify currentState, requestState, fixedKeys to be [60] instead of [56], in fixed keys write every number lower than 60 starting with 0 and increasing by 6, then starting from 1 and so on when you reach 59. Instead of "i

    • @tutirjeh
      @tutirjeh Před 4 lety

      @@GoodElectronics k thx i'll try

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      I edited the code, so all you need is change your dimenstions, pinModes and digitalWrites as I explained in my code

  • @vic2net
    @vic2net Před 3 lety

    4:25 - So when we play notes We can play more than one note? but how much notes we can play at once?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Yes, this connectrion allows for more than 1 key pressed. I made a mistake and I shorted these diodes. If you don't short them, you will be able to play as many notes as you want.

  • @smunzio3000
    @smunzio3000 Před 3 lety +1

    hey, first of all, thanks for the tutorial. i'm trying to get this to work since 2 days. I soldered everything correctly, resistor ladder and pins in order. What changes in the code should be made if the matrix is 8x6? ( the six pins are the numbered ones, the OTHER 8 pins are A3, A2, A1, A0, 15, 14, 16 and they are the ones connected to the resistor ladder)

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Did you try to read these instructions in code and applying changes into it?

    • @smunzio3000
      @smunzio3000 Před 3 lety

      @@GoodElectronics yeah, but i can't understand what currentstate[] does, and how is it finding the right notes if requeststate is always true or false, wouldnt it result in the same note no matter what key is pressed? how do bools with brackets work? i cannot find any info online

    • @smunzio3000
      @smunzio3000 Před 3 lety

      also, why is digitalWrite(i,low) ? it doesnt even work for me like that, if i want some output (but wrong notes playing together) i had to put digitalWrite (i+2,low).

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Hi. These variables with brackets are arrays. currentstate is the variable that stores current notes playing, requeststates is containing notes that will be pressed in the next program cycle. The value will be true for the index of key pressed. Did you properly connect resistors to them and made the changes as I wrote in the code?

    • @smunzio3000
      @smunzio3000 Před 3 lety

      @@GoodElectronics i made some changes and now It works perfectly. thanks a lot

  • @rodrigomorquecho2320
    @rodrigomorquecho2320 Před 4 lety

    hi,thank you for the video,just one question the keyboard im using have two faders, can i add this two faders to this cofiguration? and if i could do it, how?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Hi. I don't know how MIDI uses faders, but I think it will be easy. Add digitalRead to a pin with connected fader and send midi command (you need to find how to handle faders in midi).

  • @justkayleeful
    @justkayleeful Před 4 lety

    this is vibin

  • @devakona
    @devakona Před 3 lety

    Hi there. Awesome content my bru. Can you use the keyboard with synthesia also?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      I don't know, you have to check if it supports midi, if so, then it will work.

    • @foxxyytofficial
      @foxxyytofficial Před 3 lety +1

      Yes you can
      I tested it

  • @DhanendraPatel-t7b
    @DhanendraPatel-t7b Před měsícem

    Will the arduino uno R3 SMD micro work?

    • @ElectronDuino
      @ElectronDuino Před měsícem

      No. Unless you find some software that works over serial and not with MIDI USB protocol

  • @muharremsuz
    @muharremsuz Před 3 lety

    Can i plug a regular midi and this Arduino midi in same time to PC? İ just want to make a Arduino music box. İ plug it into PC like regular midi. And i try to play songs with regular midi and Arduino midi with diffrent enstrumants in same time.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      I think that it will be possible without any issues.

    • @muharremsuz
      @muharremsuz Před 3 lety

      @@GoodElectronics i will try and notice you

  • @nandakesav1346
    @nandakesav1346 Před 4 lety +1

    It must have some millisecond delay right

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      This delay is only for clarity and to not overload usb, but otherwise it will work without this delay.

    • @mroonk_
      @mroonk_ Před 3 lety

      delay of real piano is near 80ms

  • @fl3ur_1nestimable
    @fl3ur_1nestimable Před 4 lety +1

    hey man ! thank for that video! i just wanna know where I can buy the arduino, the board and overall the resistance ladder

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      All these parts are available on eBay or your local electronics store.

    • @fl3ur_1nestimable
      @fl3ur_1nestimable Před 4 lety +1

      @@GoodElectronics thanks !

    • @fl3ur_1nestimable
      @fl3ur_1nestimable Před 4 lety

      I have another question: umm the keyboard I have has 61 keys, and also I have only one cable that comes from the keys' output, and it is 17 or 18 pins, so can I do it with that?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      @@fl3ur_1nestimable I think it's also the same connection as I have, but you have these 2 cables joined as 1 cable, so you need to find in which place they're connected.

  • @amediuz1192
    @amediuz1192 Před 4 lety +1

    Does it have touch response

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Do you mean if I touch a key, Arduino will send data? In most cases no - because keyboards have a membrane which you have to press for response.

  • @emaybietobungi7879
    @emaybietobungi7879 Před 3 lety

    Modifed Pitch Bend and Modulation

  • @maxios-7613
    @maxios-7613 Před 2 lety

    I was thinking, wouldn't it be easier to use the "keypad.h" library for the matrix ? since it does the job with less coding than doing it manually.

    • @GoodElectronics
      @GoodElectronics  Před 2 lety +1

      sure, but I prefer making my own code for that simple actions, because now I know every function and if it breaks I will find issues faster.

    • @maxios-7613
      @maxios-7613 Před 2 lety

      @@GoodElectronics makes sense

    • @maxios-7613
      @maxios-7613 Před 2 lety

      @@GoodElectronics since I'm not a pro in arduino I wanna ask. can I use both your method and keypad library method ? I'm trying to make a midi keyboard that also produces sound when a buzzer/speaker is plugged in and I managed to do that part with keypad library method.

    • @GoodElectronics
      @GoodElectronics  Před 2 lety +1

      sure, I think you will get an output from the keypad library like column and row, so multiply the column by the number of rows and add a row number, and you will get a key note (depending how you will connect it). You need a tone library, but it only gives you a square sound signal, others are much harder to be implemented in arduino

    • @maxios-7613
      @maxios-7613 Před 2 lety

      @@GoodElectronics thank you! I will ses what I can do

  • @Ayushvatsofficial
    @Ayushvatsofficial Před rokem

    Can we connect casio ctk2550 to arduino ? Pls reply

    • @GoodElectronics
      @GoodElectronics  Před rokem

      Hi. Most of keyboards are similar, so I think it will be possible

  • @abhijithspillai5530
    @abhijithspillai5530 Před 4 lety

    Sir So I Just Need To Copy And Paste This Code.......My Matrix is 7*6........How am I Supposed to do....

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Yes, just replace matrix1 and matrix2 with your numbers everywhere that's shown in code

  • @abhijithspillai5530
    @abhijithspillai5530 Před 4 lety

    What Do You Mean Complicated If There are Chips On My Piano Circuit... Please Answer...

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      If there are sime chips, there's a chance that wires going out of this board won't work as in my keyboard, they will be connected to these chips and they will be sending signals in a more compex way.

    • @ElectronDuino
      @ElectronDuino Před měsícem

      @@GoodElectronics in that case you would need to solder cables directly on the pcb, so it would be a more tedious job. But still doable.

  • @francoisBonin-phils
    @francoisBonin-phils Před rokem

    Nice , but no velocity?

  • @gustavoconter
    @gustavoconter Před 3 lety

    Hi! My ribbon cable has 17 pins but I bought the Arduino Pro Micro that has 16 inputs/outputs so that means i will lose 1 octave from my keyboard ? It has 61 keys.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      In simple terms: something like that, but it depends of the both amounts of cables in both ribbons. It might be one octave, 6 keys or something similar.

    • @gustavoconter
      @gustavoconter Před 3 lety

      @@GoodElectronics Perfect, thanks for the answer! As soon as I receive the products I ordered I will start to work on the project!

    • @gustavoconter
      @gustavoconter Před 3 lety

      @@GoodElectronics I have some questions about the keyboard matrix, I used the multimeter to measure the continuity between the pins and I managed to link the respective pins to all the keyboard notes but I don't know how to connect these pins to the arduino and how to change the code to make it work. I have some experience with C but could not make it work with the arduino.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Hi. The basic experience will be enough, I tried to explain everything in the code. Just change some numbers to the other numbers, maybe remove some lines I marked. (Sorry for long response, but youtube doesn't show reply notifications)

  • @abdularham3584
    @abdularham3584 Před 3 lety

    I have got 61 keys toy piano plz help me to code I'm really new at Arduino and matrix I will really appreciate that plz

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Hi. You need to figure out what matrix it's using, and change the code to match the matrix. I wrote instructions in code to be changed as easily as possible, I hope you'll understand how to change it :)

  • @oficinamaker_om
    @oficinamaker_om Před rokem

    Another question, which ICs did you use besides the Pro Micro?

  • @jerryohhh
    @jerryohhh Před 2 lety

    Midi Drum for Leonardo Please..

  • @koozin69
    @koozin69 Před 4 lety

    first of all, tks for the video :) I must say that i don't have any experience in arduino and electronics in general, but I got a question: I'm planning to create my own midi keyboard, but with two keybeds (2x49) from the same digital keyboard, would that be a problem with arduino pro micro?
    Tks

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +2

      This would be a problem, because you need to connect all pins to Arduino, and you have 51 pins in total. Arduino pro micro has somewhere around 20pins.

    • @koozin69
      @koozin69 Před 4 lety +1

      @@GoodElectronics alright, will study deeper on this.. tks for ur time :)

    • @ElectronDuino
      @ElectronDuino Před měsícem

      @@koozin69 use shift registers. You'll need to modify the code, but they aren't that hard to use

  • @abhijithspillai5530
    @abhijithspillai5530 Před 4 lety

    Sir How Can I find out My Matrix.....Also Can You Tell me How to Make That Board You Made That Connects all Components........ Have Got 61 Keys Will It Work On That...Thank You .......Please Reply ASAP

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Hi. I found my matrix by probing multimeter with continuity tester and checking which wires are able to short with the first wire. In your case it might me 7x6 matrix, so you only need to know where is this "split point" between 2 sets. To make a board you need to buy an universal board and solder resistor ladder to arduino (where it has a dot - connect 5v, other pins connect to input pins).

    • @abhijithspillai5530
      @abhijithspillai5530 Před 4 lety

      Sir You Have Helped Me So Much Thank You

    • @nandakesav1346
      @nandakesav1346 Před 4 lety

      Da pottan pille veendaatha panikeert poovenda

  • @mang6879
    @mang6879 Před 3 lety

    I have Creative Prodikey Midi-Typewriter Keyboard on my old store. Since all his software was an older version, i kinda pissed off it cannot operate on Windows 10. Only typewriter keyboard operate as well neglecting his MIDI controller function.. So i think, i want to reprogram back the midi keyboard (also possible if i can operate the typewriter keyboard also) so it can been operated back on Windows 10. It's my lifetime project since I've zero knowledge on electronic and programming things. Maybe I've should use your idea in this video.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      If this will be used as the regular keyboard, there's an option in arduino Leonardo to behave like keyboard, then you can print letters.

    • @mang6879
      @mang6879 Před 3 lety

      So this video is for regular usage or just for seldom usage? If anything else, what should I've add into the programming code for regular usage?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      @@mang6879 This video is exclusively for MIDI devices. If you want to make the kayboard MIDI, then just make everything like in my video. If you want to make it as a keyboard, then the implementation is a little bit different. (I only noticed now that it's midi typewriter, so it will work like in my video)

    • @mang6879
      @mang6879 Před 3 lety

      @@GoodElectronics was anything changes if i wanna do a general Midi controller concept for the keyboard that I mentioned before?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      I don't know midi that well, if the keyboard has similar pinout, I think it will work as in my video. Speaking of general midi, did you mean something that isn't keyboard, but some effects or something like that? If so, it will be hard to program it i think. You can check if some software does it.

  • @abhijithspillai5530
    @abhijithspillai5530 Před 4 lety

    My Keyboard has only two ports one the output other the charging input 9.5v DC..... So Will I be able To Do This Project.....Also Can you Send The coding Script in a .txt File or Something Please....

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +1

      These connectors are inside, you need to tear it down. Code is in a pinned comment.

    • @abhijithspillai5530
      @abhijithspillai5530 Před 4 lety

      @@GoodElectronics BRUH, You need both only arudino pro micro right?? And could you give me the when you have to type the code I mean the timestamp of it (The beginning one or the ones towards last) Please I don't have much idea about electronics... 😅 and How can I find out the matrix of my keyboard...Please Help me by sending the link to buy arudino pro micro.....
      Thanx for Replying to me...

  • @vk-music22
    @vk-music22 Před 2 lety

    please please help me write code for 32 keys keyboard

  • @abhijithspillai5530
    @abhijithspillai5530 Před 4 lety

    So what I am I supposed to do if I have the same chips in the circuit

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      If they're chips on this button pcb and there's no visible connector like in my keyboard, the only way to connect it is to solder wires to these chips, which is hard.

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Sure: matszwe02@gmail.com

  • @yelintunnet57
    @yelintunnet57 Před 3 lety

    Keyboard was 8x8 pin and my leonardo haven't 14 15 16 pin

  • @najiedarma
    @najiedarma Před 4 lety

    how to code for other buttons like intro or change style

  • @Windows-8.1
    @Windows-8.1 Před 3 lety

    Hello) There is a problem with connecting a 32-key keyboard, some keys work and some do not. How to solve this problem? And the problem is software, the keyboard itself works, I checked.

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Hi. You need to change the code a bit in order to work with other keyboards. There are instructions in the code with descriptions about matrix1 and matrix2, try to match these matrixes with your keyboard. If you will have any issues, feel free to ask me :)

    • @Windows-8.1
      @Windows-8.1 Před 3 lety

      @@GoodElectronics In matrix 1, I left only the pins a0 a1 a2 a3, connecting the columns to them, in matrix 2, the pins remained as they are. For #define matrix1 I assigned the number 4, and for #define matrix2 it was number 8. Am I missing something?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      You also need to check every comment in the code that explains these functions and matrixes, and apply the necessary changes, then it will work

    • @Windows-8.1
      @Windows-8.1 Před 3 lety

      @@GoodElectronics Can I contact you by email to show you the photos of the sketch?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      There's a contact field in my CZcams channel I believe

  • @dailystude
    @dailystude Před 4 lety

    Is adding a sustain available for this type of circuit?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      I don't know, I think it's available in midi programs.

  • @ahmetaslan2059
    @ahmetaslan2059 Před 3 lety

    How should I use this software in arduino leonardo. How should I set the pin inputs and outputs. I would appreciate it if you could help :)

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      There's a code in a pinned comment :) (or not pinned, I don't know why it happens)

    • @ahmetaslan2059
      @ahmetaslan2059 Před 3 lety

      @@GoodElectronics I saw this fixed code, but I do not know how to install the pin entries in Leonardo, I am very unfamiliar with this work :)

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      There are hints inside that tell you what number of lines they has to be, just add these lines with corresponding pins as it tells you in these instructions. I hope you will get it :)

    • @ahmetaslan2059
      @ahmetaslan2059 Před 3 lety

      @@GoodElectronics I have read and understood the software, but it still didn't work. I could not solve the resistance problem. Therefore, the circuit works erratically.

  • @nyelgaul2235
    @nyelgaul2235 Před 4 lety

    Hi friend Can you ask for the finished sketch phases

  • @edwarcraft2250
    @edwarcraft2250 Před 4 lety

    Ammazing bro

  • @mingoindusrock
    @mingoindusrock Před 4 lety

    you think you can help me make a single button on off midi switch for my microphone effects using arduino Leonardo?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +1

      I think so. What is it supposed to do exactly?

    • @mingoindusrock
      @mingoindusrock Před 4 lety

      @@GoodElectronics thank you for answering control my vocal effects delay in mainstage hay already test with the regular small keyboard I can't turn the affect on and off. Or assign other parameters is a simple Trent Reznor from Nine Inch Nails has a control in his mic stand

    • @mingoindusrock
      @mingoindusrock Před 4 lety

      But I'm not really sure what kind of midi brain I can use

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      So then I don't know how to make it, this arduino keyboard acts as a normal midi keyboard, so you must find a way to control this with a midi keyboard, then it will work.

  • @guitarcase
    @guitarcase Před 3 lety

    Hi! I'm pretty new to circuitry, any chance you could drop a list of the hardware components?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      Hi. It's arduino pro micro, resistor ladder (1k will be ok), prototype board, some pin headers, some wires to connect everything and I think that's all

  • @dharmeshsolanki4354
    @dharmeshsolanki4354 Před 3 lety +1

    can you provide download link of your code

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      It's in a pinned comment, just copy and paste

    • @dharmeshsolanki4354
      @dharmeshsolanki4354 Před 3 lety +1

      @@GoodElectronics Thankyou I found your code in comments but its not pinned 👍

    • @GoodElectronics
      @GoodElectronics  Před 3 lety +1

      @@dharmeshsolanki4354 weird, i pin it and it unpins

  • @dantanimohit2072
    @dantanimohit2072 Před 4 lety

    Where can I buy this type of body of keyboard and circuit?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +1

      I don't know, you can buy cheap used keyboard, it would contain the same connection.

  • @j4sxm1ne
    @j4sxm1ne Před 2 lety

    i can not find the code could somone give me the link?thanks

  • @hernowoindra
    @hernowoindra Před 3 lety

    Nice.....

  • @lusiana1566
    @lusiana1566 Před 3 lety

    Bagaimana cara menambah pitchbend?

  • @oficinamaker_om
    @oficinamaker_om Před rokem

    can i use other programs?

    • @GoodElectronics
      @GoodElectronics  Před rokem

      Yes, that's midi protocol which is compatible with many programs

  • @k8uba
    @k8uba Před 4 lety +1

    Hi @Good Electronics, great video. I have a 5x7 Matrix keyboard, and I'm not quite sure how to modify the code to make it work. I saw the other comments asking similar questions, but I still couldn't really work it out (I have vary litle experience in C). Also, how did you wire up the resistor ladder? I've tried the code without one, and the outcome really was strange. Thanks

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      The resistor ladder is made of tiny resistors that are connected to one point (marked as a dot) - connect it to 5V. Other pins connect to all of your analog inputs. I changed a code to have instructions and a cleaner view. Hope you will understand :)

    • @k8uba
      @k8uba Před 4 lety +1

      @@GoodElectronics Thank you so much! This really helped

  • @ranganandasiri6331
    @ranganandasiri6331 Před 3 lety

    Good video sir please giw me the code please i can not find that

  • @SamoyedComputers
    @SamoyedComputers Před 3 lety

    What used registry to this project?

  • @sewminadilshan7223
    @sewminadilshan7223 Před 3 lety

    Hi, I have a keyboard with 37 keys and 13 wires, I found that matrix1 is with 5 wires and matrix2 is with 8 wires, but I don't get any result from continuity test, I tried switching sides too... :( can you help me please?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      Can you measure it using resistance test? It may have higher resistance

    • @sewminadilshan7223
      @sewminadilshan7223 Před 3 lety

      @@GoodElectronics thanks very much. Can I send 5v from rows and get it from columns? Would it work?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      @@sewminadilshan7223 If you mean the connection order, yes, you can switch between columns and rows

    • @sewminadilshan7223
      @sewminadilshan7223 Před 3 lety

      @@GoodElectronics perfect! Real perfect video!!!

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      @@sewminadilshan7223 thanks!

  • @victoranthony7700
    @victoranthony7700 Před 4 lety

    Hey nice video but I've been unsuccessful in getting the code and the resistor ladder... but I happen to have the keyboard and I would appreciate if you would send me the code

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      The code is in the pinned comment. You can use resistors connected in parallel to 5v and to your pins instead of the resistor ladder.

    • @victoranthony7700
      @victoranthony7700 Před 4 lety

      I still can't find it

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +2

      Here you are:
      // Here's the CODE:
      // works with keyboards with matrix 7x8
      #define matrix1 7
      #define matrix2 8
      #include "MIDIUSB.h"
      int octave = 0; // add or subtract 8 for one octave
      bool currentState[matrix1 * matrix2];
      bool requestState[matrix1 * matrix2];
      void setup()
      {
      //-----matrix1 number of pins-------
      pinMode(A0,INPUT); //1
      pinMode(A1,INPUT); //2
      pinMode(A2,INPUT); //3
      pinMode(A3,INPUT); //4
      pinMode(14,INPUT); //5
      pinMode(15,INPUT); //6
      pinMode(16,INPUT); //7
      //-----matrix2 number of pins-------
      //each matrix2 pin must be one above the previous one
      pinMode(2,INPUT); //1
      pinMode(3,INPUT); //2
      pinMode(4,INPUT); //3
      pinMode(5,INPUT); //4
      pinMode(6,INPUT); //5
      pinMode(7,INPUT); //6
      pinMode(8,INPUT); //7
      pinMode(9,INPUT); //8
      }
      void loop()
      {
      readKeys();
      writeKeys();
      delay(1);
      }
      void readKeys()
      {
      for(int i=0; i

  • @adasusunya8970
    @adasusunya8970 Před 4 lety

    please can u make a next version by using somekind of mp3 shield or anything. so u can play it without pc. :)

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Arduino is very limited, so playing audio on it will be hard and playing multiple notes will be impossible as far as I know

    • @adasusunya8970
      @adasusunya8970 Před 4 lety

      @@GoodElectronics i have found a several video on youtube. they using vs 1503 as a midi sound bank. but i dont really know if it can play multiple notes. because that module in my country has a high price.

  • @echodelta9
    @echodelta9 Před 11 měsíci

    Not to waste any more of my time. If you don't know what the diodes are for... and I hit stop. Then I am reading in the comments about voltage steps and a matrix other than 6 which is half an octave. Got to look into Teensy projects not Arduino. You scan a matrix, on or off. By using voltages, dirty or worn contacts will mess up notes. Those single row rubber contacts are no longer made as I know.

  • @asharjafferyshah
    @asharjafferyshah Před 3 lety

    it's a great Can I get your live support to make this midi?

    • @GoodElectronics
      @GoodElectronics  Před 3 lety

      We can try to type on this chat :)

    • @asharjafferyshah
      @asharjafferyshah Před 3 lety

      @@GoodElectronics Great ! I will inform you when I will require your help.

  • @shreygupta7847
    @shreygupta7847 Před 4 lety

    Is there any written documentation for the project ?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Unfortunetly, not (as I have seen, there's not documentation), but you can always search in the web, maybe somebody has written one?
      (I responded before, but youtube maybe didn't post this comment, so sorry for that late respond)

  • @neilvaidya7265
    @neilvaidya7265 Před rokem

    What is the use of resistor ladder?

    • @GoodElectronics
      @GoodElectronics  Před rokem

      It pulls up the voltage on keys, so when pressed, it shorts it to ground and arduino can see if it's pressed. Similar to "input_pullup" in arduino

    • @codewithzi-5817
      @codewithzi-5817 Před rokem

      ​@@GoodElectronics so... If we dont have a resistor ladder, we can change the code to "INPUT_PULLUP" instead, right 😅

    • @GoodElectronics
      @GoodElectronics  Před rokem

      @@codewithzi-5817 only analog pins support pullup, so you would need to plan it to have it only on analog pins :)

  • @shreygupta7847
    @shreygupta7847 Před 4 lety

    Can you please mention which arduino leonardo are you using here?

    • @GoodElectronics
      @GoodElectronics  Před 4 lety +1

      It's arduino Pro micro

    • @vic2net
      @vic2net Před 3 lety +1

      you can use both (Leonardo or Pro Micro), just look for arduino with Atmega 32u4 or atmega 16u2 they can work like Midi Devices without any additional drivers (simple plug and play).

  • @Lup1n_3
    @Lup1n_3 Před 4 lety

    brother a question, I bought the pro micro and connect as it is in your video with your code (I have a 54-key keyboard so I suppose it's like in your video) the problem is that when I connect to a program all the keys become crazy, how to solve it?

    • @Lup1n_3
      @Lup1n_3 Před 4 lety

      when I put the resistance that you show in the video it does it but only in one part but it doesn't let me use any key

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      Make sure you have your pins connected to proper Arduino pins. If they're connected properly and you have a multimeter, check if after pressing a button, one of rows shorts to one of columns (one of pins in the first set to one in the other one). If it does, check putting a wire directly between one of Arduino input pins and one of the output pins.

    • @Lup1n_3
      @Lup1n_3 Před 4 lety

      @@GoodElectronics If I have it well connected, I don't know how to do the check you said, but I connected it to the original board and they work, could you send me a connection diagram or something? I don't know why that happens, I have practically your same matrix

    • @GoodElectronics
      @GoodElectronics  Před 4 lety

      short one of the input pins to one of the output pins (for example 2 and A2), it should make a tone

    • @Lup1n_3
      @Lup1n_3 Před 4 lety

      @@GoodElectronics I just tried it and if I listen to notes, I have it without the matrix and I listen to the program that uses (vmpx) noise like distortion, I suppose it will be the matrix although it is rare because it works on the original board