2017 nio Hackathon: Writing music with nio

At nio we have our fair share of amateur musicians and die-hard fans.

Two of our talented engineers, Dylan and Trisha, combined their musical fandom and the power of the nio platform to build an awesome audio processing app. The vision for the app is to enable performers of all types to record and visualize music in the form of tabs or sheet music. As part of our one-week Hackathon, Dylan and Trisha set a short-term goal of viewing notes played on an acoustic guitar. The app is called SongBird, and here’s how it was built.

The nio platform has the amazing ability to add value to existing systems and to ease the implementation of complex algorithms. So, the duo started with an existing Arduino and op-amp circuit solution to stream audio encoding from live sound (tutorial links and build list below).

Building nioSongbird


Dylan building the amp circuit that will be connected to the guitar.


"The nio platform has the amazing ability to add value to existing systems and to ease the implementation of complex algorithms."


SongBird’s next component is digital signal processing in nio. Using the SerialDelimitedRead block, the nio service interprets the frequencies amplified from the pickup on the acoustic guitar, and then applies a smoothing function to eliminate any extraneous noise that potentially dilutes the frequency of the note being played. The smoothing function is constructed of a series of Modifier and Filter blocks. Then, the nio service interprets which notes are being played by matching those frequencies to a pre-built dictionary that assigns specific notes to a specific frequency +/- 5 Hz. nio assigns those notes to a specific string and fret on the guitar. Once that information has been processed, it is shipped to a Socket.io room that the SongBird App pulls from and displays the fret number overlaid with the appropriate string, (E-A-D-G-B-E), in the order the notes are played.

Future goals are to have this app be able to interpret complex rhythms and chords without human correction and build out the UI to enhance and assist the song writing experience. This app could be wrapped up in an app for any mobile device, ultimately enabling any performing artist to record and store their music whenever and wherever inspiration strikes.

Build List:
-Acoustic Guitar
-Any electric pickup for the acoustic
-Arduino (Uno preferably)

Electronic components:
-LM358 op-amp
-resistors : 47k, 3k, 3* 1M,
-capacitors: 1uF, 470nF, 15nF, 100nF
-Phono-Socket (for a guitar jack)
-Veroboard, wires and solder

Arduino Guitar Tuner Resources
-Arduino Tutorial
-Arduino Code