Re-invent the wheel !
Most of the time, when i develop something for a personal project, i really like to start from scratch…It’s not about being a Linux or a command line extremist, it’s just that it allow me to really understand clearly what i’m doing.
This is one of the reason that drive my choice of not using the Arduino Integrated development environment. The other reason is that i want to program the entire project in C/C++ (which is my favorite language ) and that the Arduino IDE allow me to program in a “simplified” language which is not true C/C++.
Obviously, i made this choice after investigating what was feasible according to the basic tools available… Those research lead me to the following observation:
- The Arduino IDE translate it’s “simplified” source code into true C/C++ during the compilation phase.
- The Arduino IDE compilation process is based upon GNU avr-gcc which is an open source implementation of the GNU compiler collection for the AVR platform.
- All the facility library used by Arduino are written in pure C/C++
So everything is already here to build a standard toolchain that can compile C/C++ code, use existing library (to do serial communication or MIDI processing…), and upload the program to the Arduino without a lot of pain..
So to summarize everything, here is what i will use to develop the software side of the MIDILooper:
- Host computer: Raspberry PI.
- Host OS: Raspian, a derived version of Debian compiled for the ARM architecture of the Raspberry.
- Source Control: Git (using remote repository hosted on GitHub).
- CMake for creating makefile allowing me to build the ArduinoCore library plus the MIDILooper program itself.
- The GNU avr-gcc toolchain for compiling, assembling and linking my code.
So now, next step is to setup those tools and compile the Arduino Core Library !