This is a step-by step tutorial on how to set up Processing, Rocket and Moonlander to build your very first demo. At the bottom of the page, you can find links to some resources, such as inspiration and royalty-free music. If you're stuck, the organizing team can help, and you're always welcome to ask for help in the Telegram group.
Processing is a free, open-source programming language aimed at visual artists. To get started with Processing, head to the downloads page, pick the version for your operating system and extract the zip file to the folder you want.
To synchronize your Processing sketch with music, you will need two tools: Rocket and Moonlander. Rocket is a system for synchronizing music and visuals, including a timeline editor ("tracker") and an API for reading values from the timeline. Moonlander is a Processing library that connects to Rocket.
You can get the Rocket editor for Windows and OS X here. For Linux, you can try this binary, or you can compile the Rocket editor yourself using qmake (see instructions here). You can also try this other editor which doesn't require Qt.
Once you've got a copy of Rocket, you will need to install two libraries for Processing. To play back audio, Moonlander requires the minim library. It can be installed directly from Processing through the menu
Sketch -> Import Library -> Add Library. Next, download the latest version of Moonlander from here and extract the folder
Moonlander from the zip file to your Processing libraries folder:
At this point, you should be all set! To get started, launch Processing and the Rocket editor, and add Moonlander to your sketch. You can e.g. try the Moonlander example here.
Whenever you have a line like
double x = moonlander.getValue("foo") in your sketch, the column
foo will appear in the Rocket editor. Type numbers into the cells ("keyframes") and press space to play back the timeline. To change how the values between two keyframes are interpolated, press i - the interpolation mode is indicated by a colored line. The rest of the keyboard shortcuts are listed on Github.
The entries are submitted to the party management system. Please follow the instructions in the PMS for the file name convention.
A Processing sketch can be submitted by just zipping the sources (the folder containing the
.pde files), we can run it directly from the Processing IDE.
Remember to set your demo to full screen mode with
fullScreen() and hide the mouse cursor with
Remember to test your demo on the compo machine!
It is highly recommended to upload a screenshot of your production to the PMS. We know from previous experience that people tend to not remember which demo is called what, and demos without a screenshot tend to get way less points in the voting.
If you want to e.g. send the sketch to your friends, it can be exported as an executable from Processing through the menu
File -> Export application.
For this to work, everything you want to be exported along with the program (such as the music and the
syncdata.rocket file) need to be put in the folder
data next to the
.pde file and the references to the files need to be updated as well.
For most people, this means that you need to change
moonlander.initWithSoundtrack(this, "song.mp3", BPM) to
moonlander.initWithSoundtrack(this, "data/song.mp3", BPM), and
moonlander.start("localhost", 1338, "data/syncdata.rocket").
Note that bundling Java with the executable creates a large file (around 200MB), but this might be necessary to make it work stand-alone.
When downloading music made by someone else, remember to always check the license. In particular, the CC-NoDerivatives license explicitly forbids using CC-ND licensed music as part of a demo.