I keep hearing myself say:
There has never been a better time to get into music technology than now– Haig Armen
These days there is so many choices of software and hardware platforms and resources designed specifically for any level in what was once an extremely specialized field.
Not that kind of Hacking…
‘Hacker culture’ is a subgroup of the DIY ethic, so by ‘hacking’ I don’t mean the process of illegally breaching the security of computers as the term is often incorrectly defined.
Hacking is the process of building software and hardware through experimentation, and includes extending a system’s functionality or repurposing technologies for other uses. Examples of music tech hacks include; developing custom software that allows a games controller to control your music software, or adding various sensors to your guitar to control its sound in unique ways.
1. Learn Graphical Programming
Graphical or visual programming languages are probably the easiest way to get into software development, as they just involve connecting or ‘patching’ together graphical objects instead of having to write any code. The two most popular graphical programming languages for music and audio are Max (which you may know in it’s Max For Live form) developed by Cycling ’74, and the community-driven Pure Data (aka Pd). Both are very similar in their functionality, however while Max provides a more user-friendly interface and professional support, Pd is free and can run on a higher number of platforms and devices.
2. Learn Some Beginner-Friendly Coding
The next step up from learning a graphical programming language is to learn a textual programming language. While it may seem like a daunting task, there are now many coding languages, environments and toolkits designed specifically for beginners to create music and audio programs quickly and easily. Even though there is a steeper learning curve for coding compared to graphical programming, textual languages generally offer a lot more flexibility and provide you with a much better and more expandable skillset for not just DIY and hacking but also for more serious software development endeavours. As you’ll see later on in this article, knowing textual programming languages is essential for hacking and developing for certain hardware platforms and devices.
There are two broad types of coding platforms to mention here – Audio Programming Environments, which are designed specifically for creating music and audio programs; and Creative Coding platforms, which are used for developing software containing a range of different types of multimedia including music and audio. Here are some examples of the most popular coding platforms within the music tech DIY & hacking community:
- SuperCollider – SuperCollider is an environment and programming language designed for audio synthesis and algorithmic composition, and is very popular for live coding and algoraves.
- Processing – Processing is a creative coding environment and programming language originally designed for teaching programming, however it has since been adopted by the DIY community for creating rich multimedia applications.
- openFrameworks – openFrameworks is a creative coding toolkit that uses the C++ programming language and a range of third party development environments. While less beginner-friendly compared to Processing, it is more flexible with much stronger audio capabilities.
- Other platforms include ChucK, Csound, FAUST, and Cinder.
- Sonic Pi.
3. Start with Arduino or Pi
Arduino has many core and extension libraries for dealing with MIDI, synthesis, and almost everything else music related, and there are many hardware ‘shields’ for Arduino boards for providing extended music-related functionality and IO, such as MIDI, audio playback, FX, and synthesis.
4. Hack an Audio Platform Device
Programmable audio devices are hardware/software platforms designed specifically for developing your own electronic musical instrument, synth, MIDI controller, FX unit, sequencer and so on. They usually consist of a piece of hardware containing freely assignable controls and inputs/outputs, as well as a software element for programming exactly how the hardware behaves. Compared to using a general purpose platform – such as Arduino – they’re generally a bit quicker and easier to use, however with that you may sacrifice some of the flexibility and configurability that general purpose platforms provide.
Here are some examples of currently available programmable audio platforms:
- Axoloti – Axoloti is a powerful microcontroller board that runs its own open source graphical audio patcher software environment similar to that of Max/MSP or Pure Data. With its good selection of audio and MIDI inputs/outputs as well as ports for connecting your own controls and LEDs, Axoloti allows you to make almost any musical device you could want.
- Hoxton OWL – The OWL is an open source programmable audio platform that comes in the form of either a guitar FX pedal or a Eurorack synthesiser module. You can then program your own FX or synth patches using a range of different programming languages and environments including C++, Pure Data, Max/MSP, and FAUST. For more info see here.
- Shantea Controls OpenDeck – OpenDeck is described as an “open-source platform for building custom MIDI controllers compatible with any MIDI software and hardware on any OS”. No need to do any coding here – it comes with a web-based software editor for configuring the hardware’s functionality. See here for a full run-through of OpenDeck.
- Other options include Patchblocks, the Doepfer Musikelectronic DIY series, the Livid Instruments Builder DIY MIDI platform, and Bela for the BeagleBone Black.
- Pisound for the Raspberry Pi. (Check out our review here.)
5. Hack an instrument
You don’t need to wait for permission to hack an instrument, and some products are more hackable than others – whether it’s a synth, FX unit, MIDI controller or similar – that you are able to modify and customize in great detail so that it can operate in ways more specific to your needs. I’m not talking about opening up your expensive gear, prodding the electronics and voiding your warranty in the process – these are products that the manufacturer has allowed the end-user to hack via official methods. They’re not primarily designed for DIY development like the above list of platforms and therefore aren’t always as flexible in this aspect, however having the product’s existing functionalities and controls at your disposal can provide a quicker and easier hacking process.
Here are some examples of currently available hackable musical devices:
- ROLI Lightpad BLOCK – You can customize this 3D touchpad MIDI controller using a simple and specifically-designed programming language and application. See this tutorial to learn how you can go about hacking the Lightpad.
- Critter & Guitari Organelle – This small desktop device allows you to run your own Pure Data patches on it, allowing it to become a personalized standalone synth, sampler, FX unit, or anything in between. Therefore you simply just need to learn how to use Pure Data to hack this device.
- Bastl Instruments Kastle Synth v1.5 – This is a mini modular digital synthesiser that is DIY-friendly due to it running on two Arduino-compatible chips that the user can reprogram to modify all aspects of the synth’s engine. Prior knowledge of the Arduino platform is expected if you want to hack this device.
- Other options include the Novation Launchpad Pro, Sound Machines NS1nanosynth, Meeblip, and Soulsby Atmegatron.
Let me know if you’ve ever tried hacking an instrument or made an instrument using electronics.