GithubHelp home page GithubHelp logo

patrickxchong / arduino-midi-over-bluetooth Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 10.02 MB

A MIDI based Arduino project using SparkFun's MIDI Shield

License: MIT License

C++ 100.00%
arduino arduino-uno midi-parser sparkfun

arduino-midi-over-bluetooth's Introduction

Arduino MIDI over Bluetooth using SparkFun MIDI Shield

A MIDI based Arduino project using SparkFun's MIDI Shield. I created my own method of parsing MIDI signals in the code because the MIDI Library by Forty Seven Effects was not accurate enough for my intended purposes - to send MIDI Signals from the keyboard to my laptop wirelessly over Bluetooth. Since Serial in Arduino can be both accessed via USB and Bluetooth, no modification is required to use this code via USB. In fact, this guide assumes that setup is done via USB, and the Bluetooth component is covered later as an extension.

I tried to make my code as well commented as possible to aid anyone working with microcontrollers and MIDI, but if anything is not clear, do open an issue and I'll try my best to make things clearer/clarify your queries!

Diagram of completed MIDI over Bluetooth prototype MIDI-with-Arduino-and-SparkFun-MIDI-Shield

Getting Started/Prerequisites

Hardware:

  • Arduino UNO
  • Sparkfun's MIDI Shield (https://www.sparkfun.com/products/12898) - best if set up using stackable headers especially if you want to send MIDI Signals to the laptop over bluetooth
  • Jumper wires/cables
  • MIDI cable(s)
  • HC-06 Bluetooth module (can be easily found online)

Software (Arduino Code):

Software (Laptop):

Installing

  • Set up hardware and install required software
  • Download MIDI-Arduino-Sparkfun.ino and adapt it to your purposes.
  • Flash code to Arduino
  • Enjoy!

Extension: Bluetooth

As mentioned earlier, this project was meant to create a working prototype that sends MIDI signals from a piano keyboard to a laptop wirelessly over Bluetooth. No code modification is necessary besides installing a Bluetooth module and connecting it to the Arduino's TX and RX pins. The Bluetooth module used in my project was a HC-06.

Authors

  • Patrick Chong Jin Hua - Initial work and main contributer

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

  • QueueList Library For Arduino by Efstathios Chatzikyriakidis ([email protected])
  • SparkFun's MIDI Shield Hookup Guide
  • Simon Alexander Adams, my ENTR390-008 lecturer, who's constant encouragement whenever I hit roadblocks allowed me to finally create a funtional and practical prototype that sends MIDI signals over Bluetooth to a DAW in my laptop
  • Hunter from my ENTR390-008 section. Seeing him use a Stack for his project made me realize that I can use data structures to store the MIDI signals first before bulk releasing them in order to avoid incomplete MIDI signals

Resources

Buy me a coffee (or bubble tea)

ko-fi

arduino-midi-over-bluetooth's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.