8 Replies Latest reply on May 18, 2020 11:01 AM by fmilburn

    Arduino soundpad suggestions for assignment


      Hello everyone,


      I'm hoping to use an arduino and some basic code in a group assignment and have zero experience with arduinos and very little coding knowledge.


      I'd like to create an 8x8 grid of buttons that contain RGB lightning, and are attached to a speaker of some description to play a tone. The intention is to create a soundpad-esque (like a launchpad) tactile device that enables me to play a tone or series of tones when one of the buttons in the 8x8 grid are pressed. I'd also like to be able to have a colour displayed on the RGB lighting attached to the associated button.


      I shall be using python to play a data value as a MIDI tone or series of tones, along with using a different data value to select a colour.


      I am looking for hardware advice, as I have very little experience with Ardunio or circuitry in general. I will have access to a vast array of tools and five weeks to become competent enough to create such a project, along with a team of 5-8 people to assist. We are all in a similar boat with experience, however are eager to learn. I have already looked into multiple tutorials and other resources but it appears the options are near endless, so any assistance with recommendations or advice on this build specifically would be greatly appreciated.


      Thank you for your time!

        • Re: Arduino soundpad suggestions for assignment

          Hi Finn,


          This is quite general, I'm not sure what part you specifically need help with and I can't advise on your entire project. If you mean how to detect presses, then as you mention, buttons (switches) could be used. If you mean to detect variances in how it is pressed, i.e. more analog than a digital on-off value, then the search term is sensors, but bear in mind most will be opaque and won't have a backlight, so you'll have to investigate if that is feasible or to design how to implement that. You could examine existing products too.

          If you meant how to have RGB lighting, search for neopixel or WS2812B (combined with arduino) and you should find some ideas.

          You mention Arduino but also Python, so I wasn't sure how that ties together since a normal Arduino uses a C-like language, although there is 'circuitpython'. Regarding MIDI, the Arduino documentation explains how to connect that here https://www.arduino.cc/en/tutorial/midi

          If you go with circuitpython there may be less tutorials/examples on the Internet, since I guess it may not be as widespread as normal Arduino C-like language.

          6 of 6 people found this helpful
          • Re: Arduino soundpad suggestions for assignment

            Hi Finn,


            Expanding a bit on what Shabaz has outlined...  Adafruit has a project which seems similar to what you have described: https://www.adafruit.com/product/1929

            It is open source and there are links to native format files for Eagle to create the hardware schematics and PCB. So you could recreate or modify it. Alternatively they sell the parts although they may not currently have all in stock. They supply code which uses Arduino which with a small amount of modification would work with any number of microcontrollers.


            I have played around with CircuitPython for making music and suggest using C / Arduino libraries instead. It may be possible to do it with CircuitPython but it does not implement interrupts and as Shabaz says there are less examples of use.

            6 of 6 people found this helpful
            • Re: Arduino soundpad suggestions for assignment

              Hi Shabaz and Frank, thank you for your replies!


              In response to Shabaz: The buttons only need to activate the sound/colour of the data points on or off rather than an analog type switch.

              We we're planning on using python because some of our group memebers already had limited experience with that language but we're happy to use a C language - is there a massive difference between python and C languages?.

              The MIDI tutorial also seems very helpful so we'll be using that for sure!

              The next step for us at the moment is converting our data values into a MIDI tone that plays a note that scales according to an increasing or decreasing relative value. Any suggestions on how this can be done would be great


              In response to Frank: The adafruit kit seems pretty spot on for what we need, do you know what we need to run it or is it pretty much plug in and play(after building it of course)? Also, are speakers included or is that something else that needs to be added?

              As the kit is out of stock at the moment, would the button grid setup something that can be attached to another board? such as an arduino uno?

              2 of 2 people found this helpful
                • Re: Arduino soundpad suggestions for assignment

                  There is a fair amount of difference between Python and C / C++ as far as languages go, but Arduino is set up for beginners and isn't hard to learn.  In my opinion C with some C++ is better suited to microcontrollers - it is smaller, faster, and with the Arduino IDE and libraries it isn't hard to learn.


                  I haven't used the Adafruit kit but what they sell is known for being well documented and working.  I have not read through their documents so you will need to do that - I think that kit just outputs the MIDI when a button is pressed as configured but I could be wrong.  Looking at the picture I don't see an amplifier or speaker.  While the kit is not in stock, it looks like they have all the parts listed in the Bill of Materials except for the M4 Feather.  The button grid connects over I2C so it shouldn't be a problem connecting it to other boards and according to this link they have Arduino and CircuitPython libraries for it.  If I were buying a new board I would probably get one of the newer ATSAM M4 boards for this application and the larger the memory and speed the better if you want to use CircuitPython.


                  If you get on their forum and ask some of these questions I suspect they will get back to you as long as your questions are about their products.

                  3 of 3 people found this helpful