The Network Guitar


draft

This project was the result of a collaboration with an AHRC/New Media Scotland funded research group LEAPP (Laboratory for Laptop and Electro Acoustic Performance Practice. http://lleapp.blogspot.co.uk). The NetGuitar is my performance instrument developed specifically from network based improvised performances. It is a standard electric guitar that has been hacked with many additional features. Extra cavity space has been created in the body of the instrument with a milling machine and a custom scratch plate was designed and laser cut to enclose this new cavity area. The new cavity now contains a beagle bone embedded linux computer and an arduino, the arduino takes information from many new sensors, accelerometers and linear and radial potentiometers, switches and buttons all mounted on the custom scratch plate. The NetGuitar communicates to the base station over the zigbee wireless communication protocol and also has a standard RJ45 ethernet port, an android mobile phone running the controlOSC appis also attached to the guitar . Amp emulation is performed using an instance of the free and open source guitarix software, subsequent processing achieved using puredata (both receiving OSC control messages via zigbee). The bass station also hosts an OSCGroups Server and wireless access point for easy inter-ensemble communications should they be needed. -----

draft

After returning from LLEAPP I set to work on testing some technologies, primarily I researched solutions based around the open hardware Arduino combined with an accessory "shield" to provide wireless communications with the laptop base station using the Zigbee Protocol. I also looked into other cheaper solutions such as the JeeNodes and SenseStage Arduino derivatives. Despite the ease of using Arduino based solutions I was unhappy with options for wireless connectivity. Ideally I would use an Arduino with a WiFi shield so I could quickly and easily join the existing OSC server network but the cost of these two components along with a base station reciever was too great compared with my current choice, the Beagle Bone. The Beagle Bone is an open hardware, Cortex processor based, embedded Linux, credit card sized computer. It has a number of advantages over the more common Raspberry Pi (the best seller in this form factor and price range), it has built in flash memory to hold the operating system and has more RAM and a faster Processor than the RPI, it is cheaper and more powerful than an Ardiono combined with the wireless accessories, but most its most important advantage over the similar RPi is that it has a large array of GPIO pins of which a selection are can be assigned as analogue inputs allowing the connection of analogue sensors of different types (Potentiometers, Accelerometers etc.). To summarise the benefits of Beagle Bone, it can do everything the Raspberry Pi can do but faster, this combined with the analogue and digital in/outs physical computing options that Arduino based options provide. The recommended language for accessing the boards functionality is NodeJS and a web interface for programming the board is facilitated thought the web-sockets library for NodeJS. There is also the "bonescript" library which allows the programming of the board in a style similar to the Arduino/Processing/Wiring language but within a javascript environment. The main disadvantage of the Beagle Bone was the lack of online mail lists based documentation and heulp, purely down to the smaller user base of this device. Also, frequent changes to how the GPIO pins are handled on the kernel level meant that a lot of troubleshooting had to be done without outside assistance. The next step in the augmented guitar was to carve a cavity in the body of the guitar big enough to hold the beagle bone along with the wiring for all the additional controls and to design and cut a new scratch plate to hold all the new electronics.This part of the job was done at the London Hackspace using their woodworking tools (forstner bits in bench press drill) and laser cutter. The scratch plate was designed in Inkscape, a free and open-source cross platform vector graphics editor and converted to paths for the laser cutter using LibreCad. The sound processing software was migrated from Pure Data to SuperCollider. The OSCGroups Server that was previously hosted on an external Raspberry Pi server could now also be hosted within the body of the guitar itself on the same computer as was dealing with the analogue and digital sensor inputs.