A downloadable game

Download NowName your own price

Why not take a short break from fast-paced games and high score chasing? Download this music box and turn your Playdate into a tiny musical instrument!

Select one of the well-known tunes included in the app and start turning the crank to advance the music. You can also get creative and compose your own short song with the built-in editor.

See the official instructions for how to install this on your device.

  • Manual crank: play the tune forwards (or backwards!) by manually turning the crank.
  • Wind-up crank: first turn the crank a few times to wind up the music box before the tune auto-plays for a while. You can select between three different play speeds.

  • Compose your own tunes by manually toggling notes on the cylinder on or off.
  • Adjustable tune lengths: each song can be between 20 and 120 notes.
  • All 18 notes in the music box can be individually tuned for each songs: you can use notes between C3 and B6, including semitones.

If you created a cool tune, feel free to share it with others! You can access the individual files by connecting your Playdate to a computer and booting up in data disk mode. The tunes are located in the directory
Data -> user.???.com.tizianzeltner.musicbox -> tunes.

Rated 4.8 out of 5 stars
(4 total ratings)
AuthorTizian Zeltner
TagsCasual, Creative, Music, musicbox, Playdate, Relaxing, Soundtoy, tools
Average sessionA few minutes


Download NowName your own price

Click download now to get access to the following files:

music_box_1.1.pdx.zip 435 kB

Development log


Log in with itch.io to leave a comment.

Hey! Just tried to download and install release 1.1 and am getting a "pdxinfo is missing" error through the sideloading UI at https://play.date/account/sideload/. Am I missing something?

(1 edit)

Huh, I haven’t seen this before. Did you have a previous version installed before or is this a fresh install? I just double checked and it works for me as expected. Are you sure you’re uploading the .pdx file to the website and not some .zip for instance?

I was getting an error also: "Incorrect file type, please try again." I deleted the PDX from my computer, and downloaded another copy from Itch (same version), and everything worked as expected. Not sure that helps much!

I did silently re-upload the .pdx file yesterday after seeing the comment. I didn’t mention it because I didn’t think it made a difference, but maybe that was it. Thanks for letting us know!

 I downloaded my new copy this AM, so yes,  maybe that was the issue!

Thanks for the reply! I've re-downloaded Music Box today and it has installed just fine. Answering the Qs below in case it's useful…

> Did you have a previous version installed before or is this a fresh install?

This was a fresh install.

> Are you sure you’re uploading the .pdx file to the website and not some .zip for instance?

I was uploading the `.zip` of the game downloaded from itch.io (`music_box_1.1.pdx.zip`). Playdate's web sideloading UI asks for "a zipped .pdx file".

This is because the extension on the uploaded file is not set incorrectly.  The current file `music_box_1.1.pdx` is not a PDX archive, it is a zip file containing the PDX archive.  If you rename it to `music_box_1.1.pdx.zip` then play.date/account/sideload will happily accept the file.

Interesting, thanks for letting me know. I’ll look into this right now but I find it super weird. What I upload to itch.io is definitely a .pdx file…


I’ve re-uploaded once more. This time explicitly as a .pdx.zip, and this seems to download the right thing now at least for me.

I just re-uploaded the file. Could you please try downloading it again? Sorry for the inconvenience!

(1 edit)

I love this. Thank you. Like some comments before suggested already, longer tunes would be great. I understand your wish to keep it simple, but maybe there is a compromise for just a bit longer tunes. Also the ability to use all 12 notes and maybe to have a small choice of sounds to choose from would be greatly appreciated. Keep it up! 

(1 edit) (+1)

Thanks! Different sounds is not really something that is on my radar at the moment but let me think about it.

I’m currently working on an update with few more features including:

  • the option to “tune” each individual note to an arbitrary pitch
  • variable length songs (that are still within some limit)

So hopefully I can release that soon.

FYI: I released an update today with adjustable lengths and tuneable notes.

This is great and makes a huge difference! Now I'm feeling able to bring to life all the little tunes I had in mind. Thanks again, I really enjoy this very much. 

is there a way to do sharps? trying to do eternity's moment from bravely default and the music box i have has a sequence of A5 A#5 A5 and going to B5 just sounds well off.

Not yet. But it’s on my TODO list to allow tuning each individual note. I hope to find time to work on an update with a few more features in February.

FYI: I released an update today with tuneable notes, including sharps.

very nice. now i have the lenght problem. sigh 120 notes is not enough. still i love this upate.

(2 edits)

I love this. Is there a way to make longer songs? IDK how feasible it is due to how real music boxes work. But it would be lovely to be able to do. 

It may also be nice to have a way to just press a or something to auto play. I am able to kind of do this in edit mode by holding down on the d pad but not in play mode.


I’m still undecided whether I want to support longer songs. In principle there is nothing wrong with it but I feel it might take away a bit from the concept of a “simple music box” that is at least somewhat realistic.

Some form of auto play is on my TODO list, though I’m extremely busy with other things at the moment. I hope I will find time to work on a few additions in February.

Here's a real life version of a simple music box that can support longer songs. You can buy sheet music strips and tape them together. So think of the playdate music box as one of these:   https://kikkerland.com/products/make-your-own-music-box-kit

Yes I’m aware of these.

FYI: I released an update today with adjustable lengths.


Love this music box.

One small feedback:

I noticed that when I am editing a new/existing song, the crank direction is reverted compared to when you play it.

Is this working as intended or small bug? 

Thanks for the feedback, and the kind words.

The crank direction is fixed in version 1.0.3.

What a fast response!😊

Confirmed it works now as expected.

Thanks for this wonderful app 😊

Perfect music toy for the Playdate 💯

I found a bug: the name of the first track you edit "sticks" in the header, even if its a different track.

Repo steps:

  1. Start game
  2. Edit any track
  3. Observe title at top of screen correctly matches name of selected track
  4. Return to track select and edit a different track
  5. Observe title incorrectly uses name of first track edited in step 3

Thanks for letting me know! That was a silly little oversight.

It is now fixed in version 1.0.2.

This looks fun. I Saw someone ask about a sharing mode. Maybe having it be able to export and import basic midi files could allow for that, although it may be too difficult to code.

Love this! Such a fun experience and the ability to add your own songs is incredible. Thank you!

I love this! Really well-made app.

I think I found a weird bug. In a song screen, when using the system button shortcut to adjust the volume (by pressing left or right and menu at the same time), it then breaks the back button (b) and it no longer is possible to go back to the menu.

Oh I didn’t even know about that system button shortcut! Unfortunately I can’t reproduce this on my device. Just to be sure, is this the sequence of events that triggers it for you?

  • Start the game from the main menu
  • Press “A” on a song
  • Select “Play”
  • Press “Menu” + “Left” or “Right” a few times
  • Press “B”

Yes! With one more thing upon retesting: it seems to only happen when the crank is out. 

Hmm. Still nothing for me, even when the crank is out :( Is this maybe a Playdate system thing? I’m on version 1.12.3.

I'm on the same version. I've sideloaded via the online website if that makes any difference. I recorded a video of me reproducing this bug:  https://youtu.be/rkxoG19eFjQ

The video is private, you might need to make it public or “unlisted”.

I just tried sideloading it via the website as well (previously I installed it directly via the SDK). But that doesn’t make a difference.

This was great! It’d be really neat if there were some means of sharing songs with others, like having a password you can enter.

I did briefly consider a password system, but they would have to be annoyingly long.

One thing you can do however is boot your Playdate into disk mode and navigate to Data -> com.tizianzeltner.musicbox -> tunes. There you can find super simple text files that you can share with others.

(You can also edit them on a computer that way. These are mostly a 48x18 grid of 0s and 1s to denote active or inactive pins on the barrel.

And probably best to make a backup of what is already there before changing anything.

Deleted 156 days ago
(1 edit)

Sorry I deleted your other message by accident (“delete” is right next to “reply”, oops!)

I like your idea about run-length encoding, base64, and gzip encoding and I briefly played with it but I don’t think I can bring the length down to something reasonable. E.g. Base64 encoding of the required 864 bits is still 144 characters long. But please let me know if you find some clever solution, I don’t know much about compression to be honest.

(2 edits)

Other people also asked about potential support for shorter and longer tunes. I’m tempted to add this at some point, but that would also make compression more tricky.

If only the Playdate had a built-in camera. Then it could simply scan a QR code or something. I have a feeling that the SDK will sooner or later have networking capabilities (e.g. for exchanging high scores), so at that point the doors will probably open up for some online tune exchange system.

Ah yeah the comment interface can be a little weird!

What I meant was like. Since you have patterns of on and off, and you’ll have way more off than on, instead of storing every storage cell, you’d store the distances between cells which are on and off. So for example, storing the pattern 000010000001 would be stored as the sequence {5,1,6,1}, or realistically since most of the time you won’t have two adjacent 1 cells, you could store it as 5,6, and use a 0 to indicate adjacent 1s (so for example 0000011000001 would be {5,0,5}). And there’s almost certainly a statistical distribution which could cut down further on the number of bits needed to store each of the numbers; it’d be a great application of Huffman codes, which I think I’d mentioned in the other comment.

gzip+base64 could also be pretty efficient but it’s not really optimized for bitwise storage like that; I mostly brought it up as being fairly easy to implement.

(3 edits)

From a statistical perspective I totally agree with you. Most cases can probably be broken down to something very space efficient. Most songs in this representation are essentially a sparse matrix.

What makes the password approach less appealing to me personally is that you could still build pathological examples where you don’t save much with such a compression scheme. In other words, passwords would have a variable length and, in the worst case, are probably as long as the full tune (modulo some base64 encoding or something).

And it becomes less practical in case I implement the option to compose longer tunes.

Yes but those pathological cases only affect the people who are trying to share their unlistenable weirdness. :)

Personally I like the constraints imposed by the realistic music box length, and the only thing I’d like to see added is alternate tunings (which is something you see in commercial music boxes, where the spools have to be matched to tine sets and allows for harmonic minor and more interesting chord progressions).

(1 edit)

Fair point :)

Alternate tunings/keys is something I’m interested in adding. I don’t know much about music theory (and surprisingly little about actual music boxes)—do you think it would be sufficient to add the other major and minor keys? Or should there be more fine grained control over which 18 notes are used for each song?