Exercise: Plotting Csound Data in Python

September 21, 2022
Audio waveform snapshot

Recently in my quest to find a good GUI framework for building Csound instruments I've been exploring Python and PyQt5. Before this I was exploring Node.js and Electron, but I ran into frustrating problems displaying Csound data in that framework. So when I switched to PyQt5 the first thing I focused on was displaying data. I'm happy to report that the results thus far have been great. Here's the way I've found to display amplitude and frequency data quickly and smoothly.

Read more

Update: Csound, Node.js, and Electron

September 5, 2022
Csound logo plus Node logo plus Electron logo equals an unhappy face.

I've spent the last few weeks trying to build a Csound GUI with Node.js and Electron. My immediate goal has been to revive my Mell Fark project, but my longer-term goal is to find a framework to build other Csound GUIs with going forward. Alas, I suspect Node.js and Electron won't be that framework. As much as I enjoy working with HTML, CSS, and JavaScript for rendering GUIs, I've grown frustrated with the Node.js environment.

Read more

Update: Now with Staticman Comments!

August 20, 2022
Staticman logo, a man with glasses wearing a cape

It's official. This is now a web development blog. Well, not really.

After spinning up my new website a couple weeks ago I started to work on my Csound/Node.js project. That's what I wanted to post about, but I ran into frustrating performance issues with the Electron framework. By last weekend I was despairing that I'd never figure out how to build a performant Csound GUI in Node.js. That's probably not true, but the coding process can be discouraging like that.

I decided I "needed a win", so I set aside the Csound project and turned my attention to incorporating comments into my website using Staticman. Even with this project I nearly hit a wall and couldn't do it, but in the end I got it all set up in a few days.

Read more

Update: New Website

August 8, 2022
Close up of new pagination design

You might not realize it, but my website has been completely rebuilt. Like most things, I stumbled into this project while working on a different project. This time, in my quest to control Csound with web technologies I fell down the Node.js rabbit hole, which led down the static site generator rabbit hole, which led down the GitHub Pages rabbit hole, and so on. Less than two weeks later I have this shiny new static site built with an ultra-minimalist custom script. So long Joomla! Here's how it all happened.

Read more

Update: Ear Surgery

August 6, 2022
Detail of audiology test
How exhilarating is the sound of your fingers dragging across your bed sheets?
How overpowering is the sound of the fan cooling your bedroom in the summer?
How delightful is the sound of the car passing you on your right?

As I mentioned in a recent post, earlier this year my right ear began to get severely fatigued after band practices. The symptoms included ear pressure, hearing diminishment, and headaches. Wearing ear protection didn't help. It became disorienting and stressful for me, which led me to the Mayo Clinic's Ear, Nose, and Throat department in Rochester, Minnesota. But there's a bigger picture.

Read more

Project: Mell Fark, Part One

July 16, 2022
Mell Fark interface

And just when I wrote, after a year’s absence from the blog, that I’m not doing computer music, I’ve suddenly been swept back into computer music in the past week. It’s Gábor Lázár’s fault. His new album Boundary Object on Planet Mu immediately gripped me and told me to get back to work.

Read more

Update: The Past Year

July 4, 2022
Electric Miles Davis

And just like that a year has passed. In my last post back in April of 2021, I described a major coding project involving p5.js and Web Csound which culminated in a live performance. As I mentioned at the end of the post, I hit a coding wall immediately after this frenzy of activity. Then, just as I was beginning to take on my next music coding project, I met someone who derailed everything and sent me on a radically different musical path.

Read more

Project: Looper

April 25, 2021
Detail of Looper interface

It's been a while! A lot has happened since my last post three months ago. After finding an accurate time source in Python I turned my attention to building a graphical user interface (GUI) for my Python music generator. That was moving along nicely, but then I discovered p5.js and my focus shifted entirely. This led me to develop a new web-based program that loops audio files, and I was able to perform a live set with the program on YouTube. Read on for more details!

Read more

Project: Musical Time in Python

January 17, 2021
Abstract diagram of timing problem

For the past couple weeks I've been wrestling with how to handle timing in Python. This was the main challenge I'd have to solve before converting my Python music generator into a real-time system. After experimenting with several possible solutions I finally found a promising one.

Read more

Update: Illiac, Vocoders & Scheme

December 16, 2020
Lejaren Hiller in the computer lab
Lejaren Hiller in the computer lab circa 1960, courtesy of the Illinois Distributed Museum

After five weeks of intensive coding I was able to release an album of tracks generated by my music system. This was a month ago. In the aftermath of this frenzy of creative activity a mild hopelessness set in. Even though I could see a thousand paths forward, I wasn't sure I was up to the task of continuing on. I wasn't sure where to direct my attention next. I think this is pretty normal after a bout of creative activity. Here were the paths forward I couldn't decide on.

I ended up doing a little bit of all three over the past month. Here's what I've learned.

Read more