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. The auto-play speed can be selected freely.


  • Compose your own tunes by manually toggling notes on the cylinder on or off.
  • Adjustable tune lengths: each song can be between 20 and 128 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.

User generated song files can be found and uploaded here.

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

Download

Download NowName your own price

Click download now to get access to the following files:

Music Box 1.1 (for Playdate Versions before 2.0.0) 435 kB
Music Box 1.1.4 448 kB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

No .exe for windows? How can I play this on windows?

can't open the game how do i start it?

i was looking for some music-creation app on the playdate and it seemed impossible until i stumbled upon this masterpiece. it's just what i was looking for, thank you so much for creating this awesome app! :)))

<3

I want harry potter Please ! :) 

(1 edit)

Hey! 😊 I loved this app, but I don't know anything about "creating music"... Do you have any tips on how I can create new songs? Thanks!!

(1 edit)

Thanks! I also don’t have much musical experience, my tips would be to not worry too much and just try simple little melodies that you know well. There’s a few “advanced features” like changing the keys for the individual notes—but these can be safely be ignored at the beginning.

Otherwise, some users are sharing more tunes to download in this folder.

Thank you so much!!

I have always wanted to buy one of those hand-wind music boxes and this, is by far, way superior. Thank you so much for making it!

<3

(1 edit)

I have a suggestion for future development: it would be nice if there were a place in the tune file for some limited commentary or info beyond just the name of the tune.  Extra nice would be if the commentary could be surfaced in the app somehow.

Here is a bigger, pie-in-the-sky suggestion: provide, in the app, a way to browse the user songs repository and to download tunes.  I see this has been discussed before.

I've been spending a silly amount of time creating tunes for the app.  Much fun!

(+1)

Any They Might Be Giants fans on board here?  I uploaded a couple of TMBG tunes to the user songs repository.

Very nice!

what do you think about adding a tempo setting for wind-up mode?

sometimes, more intricate textures don't sound right at medium or fast, but would really settle nicely somewhere in between. an exact tempo setting would give greater nuance to songs. If you want to really go bonkers, the ability to save each song's tempo setting would be incredible!

That’s a good idea. What would be a good unit / way to specify the tempo?

beats per minute (bpm) as an integer value would likely be best. this would replace the descriptive speed settings that are currently implemented. if you want to get fancy, you could have the Italian tempo names display in the tempo selection menu when the corresponding numeric values are selected (i.e. "Allegro" when the user selects a bpm between 109 and 132).

I know that Music Box begins omitting consecutive notes at faster speeds, so a high tempo limit just before that happens would be perfect.

the low value could be around 40. anything less that doesn't have much practical purpose, though I suppose there's no harm in setting it to 1.

you could call it something other than bpm, since it's really notes per minute

Yeah notes per minute sounds like the clearest option. (BPM is potentially confusing because it won’t quite be what people usually expect it to be.)

I was looking into the code requirements of this a bit yesterday and it should be totally doable. This also made me realize that the “NPM” are quite high for all three settings currently. And really somewhat arbitrary: Slow: ~195 NPM Medium: ~260 NPM Fast: ~390 NPM

An integer option for this (per tune) would be a nice addition indeed.

looking forward to this! i've sunk some serious time into this app

while the values you already have for speed might seem high, the npm can be anywhere from two to four times greater than the bpm for a song. the notes for most songs are going to be a fragment of a beat, maybe half a beat, or even a third or fourth of a beat.

some of the songs i've transcribed would sound best at around 600 npm if the smallest unit in the rhythm is a sixteenth. this would equate to 150 bpm. by the same reasoning, the lowest reasonable npm for songs using eighth notes would be around 40, as that would be 20 bpm.

my idea of using italian tempo names in the menu is probably not going to work out, since npm doesn't account for meter and division of the beats. 260 npm would be Vivace (130 bpm) if â™Șeighthsâ™Ș are the shortest value, but Adagio (65 bpm) if ♬sixteenths♬ are the shortest value. i don't think there will be an easy way to incorporate it

tried this out for the first time today and it was soooooo fun! thanks for creating such a whimsical and creative experience.

others have mentioned that longer length would be nice. I'm in that camp, but I'm only asking for 8 more steps. 128 steps would allow for a perfect loop of 8, 16 or 32 measures, depending on the rhythm and meter used. 120 steps is allllllmoooost enough to get a full phrase finished before the loop resets.

i made a track for korobeiniki, but couldn't quite finish the song before the loop came around again at 120 steps. would love to be able to get it right :)

(+1)

Alright! 128 is actually a much nicer number (2^7). That indeed adds a couple of more options for measures as you mention. I uploaded an updated version 1.1.3.

THANK YOU SOOOOO MUCH!

you've made your already great app that much better <3

here's the product of our combined efforts:

Korobeiniki

(+1)

Paid $8, worth more!

This game is one of the biggest reasons I got the console, and I wasn't disappointed! Being able to create tunes even longer than a normal music box is really cool! I love the manual/auto crank option.

Only bug I had is that for some reason when I went to use a period "." in my name the playdate crashed. Happened again when I tried again.

Thank you! Kind messages like this are the best thing about making something for the playdate community. <3

I’m able to reproduce the “.” bug on my device and I’ll look into it when I find some time. Thanks for reporting that.

hey I appreciate that, thank you for putting in a lot of great work!

(1 edit)

I pushed out an update (1.1.2) that should address the problem: https://tizian.itch.io/playdate-music-box/devlog/647665/bugfix-release-112

(In case you’re curious, the reason behind it was related to the Playdate’s internal file system: https://devforum.play.date/t/asset-filenames-ending-in-non-alpha-char-before-extension-work-in-simulator-but-fail-on-device/11777/10)

Thanks again for reporting!

I like this one its super cool

how do you download

There is a big yellow “Download Now” button on the page. Afterwards, you can follow these instructions to install the downloaded file onto your Playdate: https://help.play.date/games/sideloading/

Is there a way to enter triplets?

(1 edit)

Unfortunately no.

if you devote six steps to each quarter note, triplets and eighth notes can be achieved. granted, this will take up tons of space but it does achieve the rhythm. Lowest Common Denominator, baby!

like this

(1 edit)

Thanks.  I needed sixteenths as well in this case, requiring 12 steps per quarter.  It was Only Murders in the Building.  I just ended it before the triplets part.

2
Only Murders
C4 D4 E4 F4 G4 A4 B4 C5 D5 E5 F5 G5 A5 B5 C6 D6 E6 F6
64
000001010100100000
000000000000000000
000000000000000000
000000000000000000
000001010100000000
000000000000000000
000000000000000000
000000000000010000
000001010100001000
000000000000000000
000000000000000000
000000000000000000
000001010100000000
000000000000000000
000000000000000000
000000000000000100
000010101000000010
000000000000000100
000000000000000000
000000000000000000
000010101000000000
000000000000000000
000000000000000000
000000000000000000
000101001000001000
000000000000000000
000000000000000000
000000000000000000
000101001000000000
000000000000000000
000000000000000000
000000000000010000
000001010100100000
000000000000000000
000000000000000000
000000000000000000
000001010100000000
000000000000000000
000000000000000000
000000000000000000
000001010100000000
000000000000000000
000000000000000000
000000000000000000
000001010100000000
000000000000000000
000000000000000000
000000000000010000
000010101000001000
000000000000010000
000000000000000000
000000000000000000
000010101000000000
000000000000000000
000000000000000000
000000000000000000
000101001000100000
000000000000000000
000000000000000000
000000000000000000
000101001000000000
000000000000000000
000000000000000000
000000000001000000
(1 edit)

oooooo! Please upload to the shared folder along with any other tracks you’ve made <3

If you do upload songs,  be sure to update Music Box to the latest version and set the notes per minute for each song in wind-up mode first

Link :
User songs

Did that!

<3

This is amazing!

Just got my play date and am having a lot of fun with this.

Is the code open source?

I tried checking on https://github.com/tizian but didn't find anything.

No worries if not.

(+1)

Thank you! I don’t have any plans on making it open source at this point, though I might revisit that in the future.

thank you for your response!

Thank you so much for this incredible app! I love it so far! are there any plans to extend the length of the track? I'm trying to transcribe Space Lion from Cowboy Bebop and ran out of room, haha!

Thanks for the nice words!

What song length do you think would be appropriate? My main goal here is to capture the charm of physical music boxes in this style and I feel like the current lenghts (between 20–120 notes) is a fairly good sweet spot. (In the initial release it was fixed to 48 which was arguably a bit too limited I think.) This already involves significant “cheating” for the rendering of the turning cylinder as there couldn’t be enough physical space for all these notes.

The interface, samples, and crank I think already give you the quaint vibe. You could have infinitely long pieces of music and it'd still feel just as nice. Heck, I'd even like to explore something generative like a couple of randomized arps that just made endless tinkling runs.

We'll certainly need more capacity if we're going to transcribe a few Wintergatan songs in here!

(+1)

Thanks so much, my daughter plays it before we go to bed, we love it. 

<3

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


(+1)

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.

Thanks!

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
https://kikkerland.com/products/refill-musical-box-paper-5-pcs

Yes I’m aware of these.

FYI: I released an update today with adjustable lengths.

Hi,

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 1 year 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?