Elegant Python Synthesizer

[DANGER! INCOMPLETE AND UNEDITED ARTICLE]

Lately, I’ve had a strong interest in LISP as a programming language. In an effort to enhance my skills, I taught myself a lot of the basics of the language Clojure, a functional LISP built on top of the JVM. I can confidently say that learning Clojure has made me a much better programmer, and I recommend anybody curious to learn either Clojure or another LISP.

I have had a strong interest in creating a synthesizer for a while now. Learning functional programming has given me the ability to solve problems in ways that I would not have considered before. I am especially proud of the way that I have put together the synthesizer, I find my solution very elegant.

How it works:

The functionality of my synthesizer is very simple to understand, and creating a patch is very easy. As you can see, I have included a number of sample patches, such as an organ and a clarinet. At the core of my program exists a callback function, and a generator that generates a series. (ex. 1, 2, 3, 4 … n). After defining certain functions, such as the organ function that you see below, I can directly map it over the generator core.

Underwhelming Demo:

out.wav

Resources


Page Last Updated: 2020-12-27
Page Created: 2020-08-12