Music is awesome, and game music is awesome - it does so much to set a tone and energy level, it really enhances things. However, not every PICO-8 game dev has the time and the energy to become a music composer on top of everything else.
But we can help with that.
For the month of February, we're getting together to write new tracks in PICO-8 for game devs to use for free in their games. Here's how this is going to work.
- During the month of February, write music in PICO-8. If you've got an incomplete draft, you can use this to finish it if you want; if you have an already-published track, we encourage you to just mark it with your new license rather than submit it.
- No cover versions. You must have full rights to distribute any music that you submit - meaning it must be either your own original composition, a work which the original composer has given you and everyone who uses your work permission to use, or a work in the public domain. For this last, resources like the IMSLP or Duke University's Public Domain Day pages can be useful, but make sure that you understand the copyright status of any sheet music you reference! It is your responsibility to make sure anyone who uses your music will not get in trouble for doing so. The US Copyright Office has a page for musicians if you want additional information; due to international treaties, similar restrictions apply in most countries.
- Tell game devs how to use your track, most notably which custom SFX instruments and which channels the music uses and which channels are free for game SFX. There aren't restrictions on format, but most games need tracks which play for an undefined amount of time - so, tracks which loop - and which leave room for potentially quite a lot of game SFX during play. A good suggestion if you're not sure is to use just two channels.
- No PCM, at least not this year. PICO-8's built-in music patterns are the easiest for developers to integrate into their games.
- Specify a license. The standard Creative Commons license for PICO-8 carts on the BBS is CC BY-NC-SA 4.0; please use that license or another, less restrictive license, so game devs can use the BBS one for their games.
- All participants must abide by the Contributor Covenant v2.1. The organizers of this jam are Packbat and bikibird - if anyone is acting badly, is making inappropriate or bigoted comments or harassing anyone or otherwise causing problems, please let us know. We will respond.
- In your submission, provide, at a minimum, a
.p8
file or files containing your piece or pieces. We also encourage embedding the PICO-8 player and possibly including an audio download, like an mp3. To assist with this, we've created an optional album cart with customizable visualizers to showcase your music. - In keeping with the Contributor Covenant, do not use sexual or sexualized imagery for your cover image or within your cart.
Also, teams are allowed! Absolutely no requirement, solo contributors are great, but if you wanna collab, knock yourselves out. The way you make sure everyone gets credit is this:
- One person creates the project.
- That person goes into the project dashboard - the edit thing - and selects "Admins" in the "More" popdown.
- They enter the username or URL of their contributor in the box and push the "Add admin" button. (Presumably you have to repeat this for each teammate.)
- They check the "Display as contributor" box for each teammate.
For this first year, we don't have any kind of theme or prompt planned beyond this; our hope is just to get people writing more music, and supply game devs with more options when scoring their carts. Feel free to discuss matters in the itch.io community tab, and have fun!
(And many thanks to the folks in the #music-sfx channel of the official unofficial PICO-8 Discord who came together to hatch this idea and hammer out the details, and to Wasted Time Studios for the awesome cover art!)
Resources
Click here for instructions on customizing the album cart.
![](https://img.itch.zone/aW1nLzE0ODg5NzIxLnBuZw==/original/tFCHjj.png)
Instructions for exporting to itch.io from the section in the PICO-8 manual:
From PICO-8 console: EXPORT FILENAME.HTML
To create FILENAME.HTML and FILENAME.JS
Rename FILENAME.HTML to INDEX.HTML
Create a zip file containing the HTML and JS files.
In itch.io upload, choose HTML instead of Executable and upload the zip.
Choose 750x680 display size
Second, this code snippet should let you record your piece as a WAV file with a built-in fadeout - currently set to play through twice with a 5-second fadeout, but hopefully you can see how to change that:
--export with fadeout and repeats
extcmd("audio_rec")
n=0--set to beginning of song
repeats=2--number of loops before fadeout
fadeout=5000--in milliseconds, max 32767
music(n)--start music
for i_r=1,repeats do
flip()
repeat
flip()
until stat(55)>stat(54)-n--loop detection
--stat(55)=number of patterns played
--stat(54)=current pattern number
--if number of patterns played exceeds number of patterns advanced,
--song has looped
n=stat(54)-stat(55)-1--reset to detect next repeat
end
music(-1,fadeout)
repeat
flip()
until not stat(57)--when playing, stat(57)==true
extcmd("audio_end")
Thirdly, for game devs, how to add a track to a cart:
- Copy each custom SFX instrument used from the music cart to the SFX with the same number in your cart. (If multiple tracks use the same SFX number for custom SFX instruments, see below.) If you have placed your own SFX in those slots, you can mark them for movement with Ctrl+X (Cmd+X) and complete the move with a Ctrl+V (Cmd+V) on the destination SFX; remember to note where they are now so you can fix your code.
- Select the full song in the song pattern editor. You must first select the earliest pattern, then hold Shift and click on the last pattern in the song. (This is easiest to do in grid, rather than column mode.) Then hit Ctrl+C (Cmd+C), go to your cart, and hit Ctrl+V (Cmd+V). Assuming you have space, this will place all SFX other than custom SFX instruments in empty SFX slots to recreate the song in your cart.
- Test and confirm the song plays correctly.
(If multiple tracks use the same SFX number for custom SFX instruments: in the music cart, use the Ctrl+X/Cmd+X shortcut to move custom SFX instruments to unused spots in the 00 to 07 range. This will update all the SFX that use this custom SFX instrument to read from the new slot, and now you can resume copying as before.)
(Obviously if the custom SFX slot you want to use is full on the music cart, you have to move that SFX with Ctrl+X/Cmd+X as well.)
Fourthly, here are a number of links which may help you:
PICO-8 Music Tutorials
General Music Theory Tutorials
- PICO 8 Music Theory for Programmers by bikibird offers a series of interactive visualization tools to cover core theory concepts like pitch and scale.
- Building Blocks by 12tone is a series of videos about the fundamentals of music theory, covering a lot of basic subjects and a number of more advanced ones.
- Theory Lessons by musictheory.net is a solid text-and-image-based overview of classical music theory, some of which can be adapted to writing pop music. (It also covers how to read sheet music, which is useful if you want to make arrangements of classical music - see IMSLP, below.)
- Learn music theory in half an hour by Andrew Huang is a quick, to-the-point, very practical guide to get started by a successful music producer.
- How to Write Drum Parts (for non drummers) by 8-bit Music Theory is a video about drum parts played on physical kits, not on computers, but the concepts are a great basis from which to simplify.
- How to Write Four Chord Loops: A New Theory of Pop Harmony by Patricia Taxxon is a more advanced video focusing very specifically on chord loops, which most PICO-8 music is based around.
Assets and Tools
- The PICO-8 BBS midilib project and midilib tag are a collection of custom SFX instruments by a bunch of different PICO-8 musicians designed to imitate various pre-existing instruments, like guitars and flutes and drum kit pieces.
- sfxp by Luchak is a mini sound design tool for making interesting and often musical SFX.
- IMSLP, the International Music Score Library Project, mentioned above, collects sheet music and recordings of a large number of classical compositions. Arranging classical music is a well-known videogame soundtrack technique, as the Video Game Music Preservation Wiki's "Non-Videogame Composers" category documents.
- Denote is a tool by bikibird which converts a standard MIDI .mid file into data you can paste into PICO-8 and revise as needed. (Remember to pay attention to licenses!)