Blog

FoxDot “tracks” in 10 lines or less

I’ve started to save loops and ideas into snippets of codes that are less than 10 lines long and put them into a collection on my GitHub. I’m hoping to integrate the repository into the main editor so users can download and immediately use pre-created piece of musical code and play around and learn from it. Please feel free to make a pull request and add your own composition – no rules except 10 lines or less!

Here’s the link and an example below:

Scale.default="minor"
Clock.bpm=140
c1 >> play("@", dur=1/4, sample=P[:8].rotate([0,1,3]), rate=4, pan=-0.5)
c2 >> play("#", dur=40, room=1, amp=2, pan=0.5)
d1 >> play("")
b1 >> dbass(dur=PDur(3,8), sus=2, chop=4, shape=PWhite(0,1/2), pan=PWhite(-1,1)).sometimes("offadd", 4) + var([0,2],4)
p1 >> space([7,6,4,P*(2,1),0], dur=8, pan=(-1,1))
Master().hpf=var([0,4000],[76,4])

Now accepting donations

As of June I am now accepting donations towards developing the FoxDot project even further. On the front page of the site you should see an image that looks like this:
 
Donation image
 
If you’d like to contribute to the project, just click on the image and enter the amount you’d like to donate. It really means a lot and is a big motivator for me to keep improving this software. It’s already become more than I ever imagined and, in a perfect world, I would work on it 24/7. I hope I get to keep working on it for a long time and I’m excited to see what happens!

FoxDot being demo’d at PyCon US 2018

One of the strangest feelings I experienced was seeing software that I wrote just for myself being used in public by other people. It’s a nice and exciting feeling, don’t get me wrong, but it’s a bit like hearing your own voice in a recording and it being played to people you don’t know. I never really expected many other people to use FoxDot, especially as it was written as a TidalCycles clone that could trigger synths in SuperCollider (which TidalCycles now does anyway!). So when I hear about someone using it – and enjoying using it – to make music at home or at school I still get a flutter of excitement. It feels pretty amazing to know that someone gets to enjoy music making thanks to something you’ve created and I hope that feeling never goes away – I’m really honoured.

So when you hear that your once very personal software project is being demo’d at the world’s largest Python convention, you get pretty excited. Jessica Garson, from NYU, did a lightning talk (short presentation only a few minutes in length) at PyCon US 2018 in Cleveland speaking about her experience making music as a programmer and showed off the basics of FoxDot to a great audience reception. I really liked the way she talked about her personal experiences and not just the technical side of the system. It was also great to see that, in fields mostly dominated by men (computer science and electronic music), we have women representing live coding and doing an awesome job, too. You can see her talk (and some others too) below in the video below:

There was also an afternoon break session using FoxDot in the afternoon where it looks like attendees were taken through some of the basics of the environment (photo credit: Bill Best). I hope to hear some feedback on how it went.

It’s amazing to see FoxDot has made it’s way over to the US – especially as I’ve never performed or done a workshop over there. The live coding community has been so massively supportive of the project and somehow there are now users all over the world and maybe even small FoxDot communities developing. I can’t wait to see where it pops up next!

 

Pure Python!

So FoxDot is now executed as pure Python code now (finally!) which means that it doesn’t have to be run through the UI that comes with the package – and I can start thinking about putting it on PyPi too. Since its inception, FoxDot used regular expressions to preprocess some of the code but this meant that saving any work as .py file just wouldn’t make sense to a Python compiler. Now, however, FoxDot reserves all one and two character variable names for Player Objects so that using a double-arrow syntax a la p >> pads() updates an already existing Player Object instead of creating a new one. Hopefully this makes for more flexibility and people being able to import FoxDot into their own work somehow. I’m still figuring out the best way for people to actually run the environment but I’m really excited for what this means for FoxDot.

What is FoxDot?

FoxDot is a combination of two things: an interactive Python mini-text-editor and a library for making algorithmic music with code. It has been designed for Live Coding music, a practice of performing music with programming languages in front of a live audience. If you would like to know more about Live Coding, checkout toplap.org for more information!

There are several languages used to Live Code music and each has their own identity, syntax, and philosophy. One of the most widely used languages is SuperCollider, which is actually used by FoxDot to create sounds. It is extremely powerful and flexible but the trade-off is that it often requires a large amount of typing and has a fairly steep learning curve. FoxDot could be considered as a user-friendly interface to a subset of SuperCollider’s many great features.

Another language that is becoming increasingly popular in the Live Coding community is TidalCycles (often referred to as just Tidal for short). This is based in the functional programming language called Haskell and chains together pattern-making functions and applies them to the playback of audio samples (although it is also using SuperCollider now create sound as well). One of the few drawbacks to Tidal is the difficult install on Windows machines but it is still in development.

FoxDot, like Tidal, is a language that is used for describing musical patterns, but in a slightly different way. It gives certain data structures, called Player Objects, instructions defined by traditional musical concepts such as scales, octaves, and notes to play until stopped. For more information on how to get started with FoxDot, check out the start Starter Guide.

Welcome

This site is dedicated to the Live Coding application FoxDot, which was created in 2015 to try and open the pathways to people who are new to programming and want to use it create music quickly and easily. FoxDot is an easy-to-use Python application that creates an interactive programming environment that talks to the powerful sound synthesis engine, known as SuperCollider, and schedules musical events in a user-friendly and easy-to-grasp manner that makes live coding easy and fun for both programming newcomers and veterans alike.

 

FoxDot is a pre-processed Python-based programming language that provides a fast and user-friendly abstraction to SuperCollider. It also comes with its own IDE, which means it can be used straight out of the box and no fiddling around with config files; all you need is Python and SuperCollider and you’re ready to go!