I recently made a program that can translate (some) MIDIs to PICO-8 tracker format and I thought I'd also make a fun visualizer to show it off :)
The music you see (and hear) above is J.S. Bach's Sinfonia 15 in B minor (BWV 801). It was translated from a MIDI file (that I found on the internet somewhere) into PICO-8 tracker format by the aforementioned tool:
This visualizer takes a simple approach of displaying whatever notes it sees are currently playing each frame (if any notes changed) so it may skip notes if the notes ever change faster than the FPS (this cart runs at 60). A more robust visualizer could be written, but I just wanted something that could display most normal songs for fun :)
You can use this visualizer to display your own music by downloading this cart and uncommenting one or both of these lines in the _init() function (and changing the path string appropriately):
-- load the music and sfx data from another cart
--reload(0x3100, 0x3100, 0x1200, 'othercart.p8.png')
-- permanently store the music and sfx data loaded above
--cstore(0x3100, 0x3100, 0x1200)
I hope you enjoy watching the little notes go by. I enjoy Bach's keyboard music and much of it also happens to translate very easily to PICO-8 tracker format :)
P#28685 2016-09-17 15:45
Yep ... I'm running into the same problem. Could you (or someone) please post a THOROUGH tutorial on how to run PYTHON code ? A Youtube video with on-screen display, animation, and vocal narration might be the ticket.
And to show how to run this very and particular music converter.
As for my platform, I am running Windows 8.1, 64-bit edition.
P#28801 2016-09-19 12:58
P#30692 2016-10-11 18:02
Yeah, that is one optimization I plan on adding at some point. I recognized it was a theoretical possibility with some music but I hadn't yet encountered it since I was only really using through-composed music to test it so far :)
EDIT: lol okay I had time so I just implemented that feature; it's in the repo now. Thanks for the suggestion/reminder!
P#30950 2016-10-14 16:28
Log in to post a comment