It has been a long time since I played a show, but this week I have the pleasure of performing music at my local [Medford Farmers Market](https://medfordfarmersmarket.org/). Last year I played the same venue, but a different set. I opted for more of a chill, singer-songwriter vibe. But this year I wanted to try something different.
I've been experimenting for a while now with my new-ish musical project [*Saint Silva*](https://saintsilva.bandcamp.com/). This seemed like a good opportunity to try the act out live for the first time.
But without a band, this presents some logistical issues. *Saint Silva* often uses layers of synths, drums, and guitars. And I only have two hands.
So I decided to put together a live rig that could emulate some of the songs I've been working on. This righ includes two loop pedals and a few synths with built in sequencers. Here's how I started mapping things together so that all synths would use the same click, and I could power each keyboard using external batteries (I used [Kinopio](https://kinopio.club/), my new favorite note taking app).
![Screenshot my kinopio board to organize the cables in my live synth setup](../images/kinopio-screenshot.png)
When I started running through the setlist, I quickly found that it was extremely difficult to remember the right order to layer certain loops in (I want to play everything live, not using sample triggering). Classical music notation was meant for documenting notes for orchestral arrangement, but this felt overkill for my purposes. As a guitarist, I'm also familiar with tabs, but most of the *Saint Silva* work depends on layering simple loops rather than intricate riffs. They are easy enough to remember.
I needed some kind of method to document and quickly remember the order of layering loops, when to start a new sequence, and which synths should be synced or un-synced during playback. So I started to play with a new, visual musical notation of my own.
Using [p5.js](https://p5js.org/) I created a little sketch and started making symbols to represent certain "loop actions". For example, the circle with the line through it means "sequence" and the circle with the half arc means "loop".
![Screenshot notation symbols](../images/notation-symbols.png)
Since I put toghether my physical rig weeks ago, I knew which instruments I would be limited to while playing live. So I assigned a color to each, and then added a few more symbols to cover my bases.
![Screenshot notation symbols](../images/notation-legend.png)
Then, using [Ableton's session view](https://www.ableton.com/en/manual/session-view/) as inspiration, I wrote a script that creates a single row for each layer or "section" of that song. The input for the script is a CSV file. Below, you can see a song that has three parts:
1. first I start the sequencer on the Korg Volca and the PO-12 drum machine, followed by looping some sounds from the NTS-1
2. then I play a riff on guitar, while the Volca and PO-12 sequences continue playing (represented by triangles)
3. finally, I start a new sequence on the NTS-1 while the Volca continues to play (the drum machine drops out...notice the absence of a triangle), followed by some guitar chords
![Screenshot notation symbols](../images/three-track.png)
If it sounds slightly manic, that's because it can feel that way. But this notation system helps keep things straight in my head. I also wanted to leave some room for chord and note annotation, so that became a second column in the layout. And finally, I added a "notes" column at the end so that I could scribble some hand written reminders to myself while playing if need be.
Here's an example output of the track HAZY, created from a single CSV file with instruments, chords, notes, and song BPM encoded into the file structure.
![A fully notated song using the new musical notation system](../images/final-notation.png)
We will see how it goes at the show! Maybe I will make some tweaks after. At the very least this was a fun creative excercise in re-imagining how to visually represent a different type of musical playing.
If you want to view the full sketch, you can see the code [here on OpenProcessing](https://openprocessing.org/sketch/1634609).