ugen is an audio programming environment for Go programmers. It is intended to be something like SuperCollider. I wrote this to be the basis of a Korg Z1 emulator, since I can’t lug my Z1 on the train with me, and it’s the most fun to play with I have right now.
This is its state after a week of hacking. Don’t rely on it.
Additionally, last month, I made an emulator of Triadex’s The Muse for SuperCollider. Source here. I have no idea how close I am to the correct behavior as I have never used one. I was inspired by seeing one at the Boston Museum of Science used as a prop for an exhibit, it took me most of Labor Day weekend in dribs and drabs to get it finished, with a couple train rides’ worth of hacking afterwards. I would guess the unit was no longer functional; Wikipedia says it was once the basis of an exhibit all on its own.
This will be available as a website once I make it not awful in terms of performance. You’re welcome.
A product of the Rethink Music Hackers’ Weekend
The Disquiet Junto is a weekly music challenge. The organizer gives out a small choice of samples which must be the only sound source for a composition on Thursday. By Monday local time, you must have your composition recorded and uploaded to SoundCloud.
Here’s my entry for this week’s competition:
I got an old iPhone to replace my lost iPod nano. I traded homebrew for it! Little did I know that iPhones can’t shuffle by album, which is my preferred way to listen to music. So, I decided to finally write this dumb little Perl script to make one giant playlist that only contains whole albums, sorted roughly in order of least recently played, with albums of higher rating moving up to the top more quickly. You need the Mac::iTunes::Library module from CPAN. The script actually writes out an AppleScript that you can put into a file and run, or pipe to osascript, or just stare at confusedly.
There is also a script to locate likely compilations that don’t have the compilation flag or album artist set, which confuses the scoring and scatters a compilation’s tracks all over the place.
The “mixes” part is very specific to my library, but it won’t hurt anything.
Anyway, here it is on github.
This weekend I took part in Boston Music Hack Day and helped create this. It will only work in Chrome or nightly builds of Safari. Bring an umbrella.
The Yamaha FS1r was a little known synthesizer based on the technique of formant-shaping. This little thing suffered a lack of attention paid to its interface: a tiny LCD panel makes it really hard to tweak the very large number of parameters in a program, and the software editors have never really been up to snuff.
A huge oversight was the lack of any capacity whatsoever to edit formant sequences, which are the fancy filters that make the FS1r “talk”. Several enterprising individuals have tried to remedy this. Zach Archer wrote a Flash application that will analyze an audio file and create a formant sequence based on it. On a lark I have decided to port this application to Go. This project in fact was what spawned gosndfile.
Project GitHub. mkfseq will eventually be part of my master plan to use a genetic algorithm to make weird FS1r programs.
I’m retooling this site because I botched my Chyrp install and honestly I didn’t like it that much.
gosndfile is a libsndfile binding for go. It supports nearly every command in the library. You may clone the git repository and build it from GitHub.