When I was a kid I dreamed of becoming a game programmer, but when I tried to actually make games I just ended up spending all my time working on music engines. Now that I'm a dad and my son dreams of becoming a game programmer I'm trying to help him, but I just end up spending all my time working on music engines.
Here is one such engine that I wrote a few years ago for a browser based C64-retro-style game environment. It ought to work in virtually any browser (including mobile ones) and I just re-discovered how fun it is with all its limitations and gritty sound.
Specs
>
button)ESC
button)Besides being a creative restriction there is also a technical reason why songs are limited to a maximum of eight bars. To easily work in all browsers it renders a WAV in memory that it loops and every time you make a change it regenerates the entire WAV again. The short song length also limits the amount of data required for a track, which is great cause it all fits inside an URL.
Here is the track from the video:
https://soniccharge.com/js80trx/?d=AwdQ-lEEhJyTA83cTAwRpocRFPUqBiHnKwSJx0sMEaYsHBGWAQA3AQAANwEcADcAADcBNwEANwEAHDcBHAA3HAA3HDdJ1ABJ2wBJAEnZAMTJScTESdQASdsASUtJ2dtWyUvGSUnUAEnbAElLSdnbX8lLxkkhJiktgAAAdwAAAHsAAAB5gHGAdoBhZmltgGFmaW0AAAAAZGltb4ABOtEwIUBSWwE20TchSMJZgA
Let me know if JS80TRX works for you and of course feel free to post any tracks you make here. Have fun! 8-bit style!
Speaking of retro-style C64 game environment
Found out about JS80TRX yesterday and just had to make a little tune! Always in love with limitations (be it PO's or trackers) :) The whole thing was done on the iPhone's tiny screen but that worked out pretty well.
By the way, there might be some kind of bug in the URL encoder. When using the "Share" feature of this song, it adds two commas in the end - and if those are included in the path the tracker will fail to load it.
I've got some PO videos (both classic ones as well as 32/35) on my YouTube channel : https://youtube.com/tubesockor
/T
Hot trx dudes!
By the way, there might be some kind of bug in the URL encoder. When using the "Share" feature of this song, it adds two commas in the end - and if those are included in the path the tracker will fail to load it.
Hmmm... The two commas ought to be the base64 padding (=) encoded with a safe url char (,). But it loads for me with or without those commas. Perhaps it depends on the browser. I'll have a look at it.
By the way, there might be some kind of bug in the URL encoder. When using the "Share" feature of this song, it adds two commas in the end - and if those are included in the path the tracker will fail to load it.
Can't seem to reproduce. Which browser are you using?
This is awesome! Thanks so much for sharing it with us :)
- Magnus Lidström wrote:By the way, there might be some kind of bug in the URL encoder. When using the "Share" feature of this song, it adds two commas in the end - and if those are included in the path the tracker will fail to load it.Can't seem to reproduce. Which browser are you using?
Directly copying it into the browser works fine, but the problem occurs when using sharing on external systems, like Facebook and bit.ly. So when sharing it on Facebook I had to manually remove them, otherwise I got an empty/corrupted project when clicking the link. Twitter however, seems to ignore the commas in the link (see my twitter post for example - the two commas are written as normal text).
Directly copying it into the browser works fine, but the problem occurs when using sharing on external systems, like Facebook and bit.ly. So when sharing it on Facebook I had to manually remove them, otherwise I got an empty/corrupted project when clicking the link. Twitter however, seems to ignore the commas in the link (see my twitter post for example - the two commas are written as normal text).
Ok I get it now. A comma at the end of an URL might easily get weirdly parsed by a text formatter, e.g. dropping the last comma from the URL, but not all of them (which would be invalid base64 formatting). So Fredrik fixed it on our side so that padding isn't necessary at all any more and any commas will be ignored from now on. Thanks for reporting!
It was way too fun playing with JS80TRX, so here's another one :) This time a bit more bossa-jazzy!
Very awesome Mr Sockor! Did you also make this one on the iphone?
- Magnus Lidström wrote:
Very awesome Mr Sockor! Did you also make this one on the iphone?
Thanks :) Yep, everything except some final touches, done on an iPad Mini - just to try out the form factor. You need to zoom in a bit there but then it is really practical!
- Thomas Jansson wrote:- Magnus Lidström wrote:Thanks :) Yep, everything except some final touches, done on an iPad Mini - just to try out the form factor. You need to zoom in a bit there but then it is really practical!
Very awesome Mr Sockor! Did you also make this one on the iphone?
Yeah, I noticed too. Ideally it should be 100% zoomed on all screens by default, but trust me it is tricky to get that working across all browser versions. HTML is broken on so many levels. Talk to Fredrik about it. :)
Wild remix of my "Orbital" track from the original post: https://soniccharge.com/js80trx?d=AweA-RIFhcyTBYOplwIb93oCAehKCou2TQOK0z0GEveX-o9GASsrAQArKysVKysrKwErKwErKwEAKysrFQErACsBK4AD8_Pz8_Pz8_Pz8_Pz8_OAMz-zAD_DADM_Tz8zMz9PPTM_swA_wwAzP08_MzM_vb0zP7MAP8MAMz9DNUc4SjyAwwAzP0M1RzhKPADOPwBPPwBo310AaNpXAGfdWgBh31MAaGoAZ2gAZWcAY2GAAGjdX9dR11rcVdpd12HfU-FI4lnhSuJpAUgCWSFKU3iA
- Magnus Lidström wrote:
Wild remix of my "Orbital" track from the original post:
Yay, great! Had an idea in my head today but never got the time to realize it as a #js80trx. But hopefully soon :)
Thanks to headphones and slight insomnia (possibly still not adapted to post-NAMM?) I iPhone-clicked in my idea as a new mini-tune. Tried to cram as many channels as possible into it - three-note chords, bassline, drums and melody :)
- Thomas Jansson wrote:
Thanks to headphones and slight insomnia (possibly still not adapted to post-NAMM?) I iPhone-clicked in my idea as a new mini-tune. Tried to cram as many channels as possible into it - three-note chords, bassline, drums and melody :)
Wow, I can swear I hear more than three voices simultaneously. Black magic!
- Magnus Lidström wrote:- Thomas Jansson wrote:Wow, I can swear I hear more than three voices simultaneously. Black magic!
Thanks to headphones and slight insomnia (possibly still not adapted to post-NAMM?) I iPhone-clicked in my idea as a new mini-tune. Tried to cram as many channels as possible into it - three-note chords, bassline, drums and melody :)
Technically, there are four - since one of the chord sounds have an additional noise burst, to place on strategically good places :)
Technically, there are four - since one of the chord sounds have an additional noise burst, to place on strategically good places :)
Astonishing cleverness supreme. So this was the idea that you had in your head earlier?
- Magnus Lidström wrote:Technically, there are four - since one of the chord sounds have an additional noise burst, to place on strategically good places :)Astonishing cleverness supreme. So this was the idea that you had in your head earlier?
Hehe, thanks :) Yep, that was the idea!
Today's track is an attempt at making trance. Bring your own glow sticks. http://soniccharge.com/js80trx?d=AwjA-hIEhsyVA83cxwN39ToChdsX64dHHAIs3B0CFN0QC4VpAzOzMwMzszMDM7MzAzOzMwOzADMDM7MzAzOzMwM0tDQAM7MAALMAMwMzAzMDAwMDKs_Pz8_Pz8_Pz8_Pz8-Af4AZGRkZGRkZGRkZGRkZABkZKiqqACoqqgAqKqoAKiqqgFNVV1lbXV9jZWdpa21vXx9TX1NTGQDUAFNUANEZ0wDTU19TUxlUVFTUANnRGdQA01NVV1lbXV9dW1lXVVPTANPhSAFZAgoBCQNr4XnieuF5gA
- Magnus Lidström wrote:
Today's track is an attempt at making trance. Bring your own glow sticks. http://soniccharge.com/js80trx?d=AwjA-hIEhsyVA83cxwN39ToChdsX64dHHAIs3B0CFN0QC4VpAzOzMwMzszMDM7MzAzOzMwOzADMDM7MzAzOzMwM0tDQAM7MAALMAMwMzAzMDAwMDKs_Pz8_Pz8_Pz8_Pz8-Af4AZGRkZGRkZGRkZGRkZABkZKiqqACoqqgAqKqoAKiqqgFNVV1lbXV9jZWdpa21vXx9TX1NTGQDUAFNUANEZ0wDTU19TUxlUVFTUANnRGdQA01NVV1lbXV9dW1lXVVPTANPhSAFZAgoBCQNr4XnieuF5gA
Cool! And love the extreme folding/aliasing on the red sound :)
All of my JS80TRX's above in one place: js80trx-manx-mix-tape-1 by malstrom
Just found this, nice! Never been much of a gamer, but I do love chiptunes! Great thing about growing up as a early teen in the early 80's, I remember the music from the games I did enjoy. Mostly when my friends got Nintindo's, I really loved the music. I should have go into computer music years ago.
I really enjoyed playing around with this, thanks for releasing!
My frustration levels were surprisingly low in regards to the many limitations here, well designed!
First 2 attempts:
Nice ones Martin! Thanks for sharing. You know how much I love limitations and to be honest I had more fun designing this than most of my "real" products.
Magnus - speaking of limitations, what do you think about adding an ”fast-arp” setting in the instruments, for those Galwayesque chords?
Today's notification in this thread gave me inspiration to do another one, so this time - a bit italostyle with some "digital delay" and harmonies. Fun as always to play around with #js80trx!
Amazing track mr Sockor. As I've come to expect from you. :) Neat fake delay!
I've sort of run out of bits for the 32-bit patches, but please elaborate a bit on the "fast-arp" setting how that might work?
Thanks a lot Magnus!
The function I'm looking for is three-note fast-arping "chords" as made famous on the C64 by quickly alternating between the root note and two other notes. On the Amiga Protracker, this was a setting specified per note - but I understand there is really limited storage in the song (in order to fit it into a URL).
So just brainstorming here - but could a variant be to try to cram it into the (already full) 32-bit "instrument" somehow? Maybe by highjacking the setting where all four mod waveforms are set (i.e only allowing max three of them simultaneously in the normal case). When this 0xF setting is in place (by a fifth icon), the "mod depth" and "mod rate" could change their meaning and become "note2 offset" and "note3 offset". The max 16 offsets for each note should be well enough (or reuse the bit for up/down depth as positive/negative offset on note2).
Just an idea :)
Loved it, thanks Magnus! And I hope all is well here, sending my best wishes from Istanbul: http://soniccharge.com/js80trx?d=AwWg8BEGg62CBvOYHSoRVx06EXd5ChiCXBcYhRUEU9kcOhjJeCQAABMAAAB4AAAzEwADDgEAgA
I'm interested in creating a VST synth that can create these tones. Are you able to share the DSP? My vision is a plugin where you can dial in certain limitations of the synth engine to create further lo-fi ness such as clock speed, clock accuracy, pitch resolution, bit depth, whathaveyou. This kind of lo fi synth is needed for general music production because this sound is part of music history and will be used to reference the past and create certain feelings in music similar to how synthwave harkens back to 80s as well as how modern game music will sometimes have retro riffs.
Anyway, I want a synth like this as a plugin. Chiptune enthusiasts will love it.
You need to be signed in to post a reply