Make Tracker Tunes in the Browser
stef.be
stef.be
Something I would very much like to see in all music software, including this one, is an alternative for keyboard-based note entry and preview that is not based on the piano, but on the guitar/bass. Basically, each keyboard key is a semitone over the one on its left, and keys ZAQ1 are mapped to notes EAGD (when in QWERTY). It's very simple to do and I find it much easier to work that way, because it makes it very easy to play melodies and find note relationships the way you would on a guitar fretboard. No guessing where the black keys lie, most things are transpositionally invariant. I've made this into a macOS app and after more than 6 years using it, I find it vastly superior and much more adapted to the limitations of a computer keyboard. The fact the keyboard lines are staggered is annoying at first, but I've been quickly able to get over it. I guess all guitar players would find that useful as well.
I imagine part of this comes from the fact the fact that QWERTY midi maps to the piano rather than guitar comes from the fact that most MIDI controllers are piano based rather than guitar based (with a couple exceptions), so generally speaking if you're composing music at the computer (whether with a tracker or conventional DAW), you're going to generally bite the bullet and just learn how to hack it on a keyboard. I've adapted to this just because it makes it easier to use the existing ecosystem of equipment and software, but I always wondered what it would be like for things to be more guitar based.
So for example, Q, A, and Z would be C-3, C-4, and C-5. W, S, and X would be C#3, C#4, C#5. E, D, and C would be D-3, D-4, D-5, and so on.
I'm going to have to try the guitar mapping. It would be fun to make a little program for this, then strap a keyboard over my shoulder and maybe use the spacebar to strum
I wanted to use MOD music because of their much smaller size (i wanted to keep my games less than 1MB in size because at the time many people had slow connections and really you didn't want people to wait regardless - Flash games were put in places where there were like 289347823 alternatives next to it).
There wasn't any usable MOD player (there was one but used GPL which was impractical for games and had some technical issues in playback) so i made my own and since there wasn't really an audio API beyond "play that sound file" ("sound file" being wav or mp3), what i did was to generate a SWF file in memory with the MOD file converted into a WAV (infinite looping commands weren't supported) and play that (for some reason Flash had an API for doing that, probably to allow for custom SWF encryption).
That was during Flash Player 9 times. Later FP10 added some better audio API but by the time it became as widespread as FP9 i had already lost interest in Flash.
Later when HTML5 got audio APIs i considered porting the player to HTML5 (it was written in HaXe[1] which supported a bunch of target platforms and languages, including JavaScript) but at the time the HTML5 audio APIs were a mess with every browser doing its own (and some weren't that great - e.g. IIRC Chrome didn't had a callback for streaming/generating audio but instead expected you to "race" the playback and put data ahead of the time) and then was the last time i checked audio in a web browser.
This is what I had on my 1 MB, 7 MHz Amiga 500 in 1989.
As an aside, the MOD format is one of those things that's surprisingly easy to describe, but surprisingly difficult to get all of the edge cases to behave the same as the original trackers, and I quite enjoyed the process of critically listening to things and going back and fixing issues as they came up.
I had also written a MOD player much earlier in my life, targeting my first PC, an old 10MHz 286 with a sound blaster card. At the time I had to hand optimise things in assembler to get to the point where I could play 8-channel MOD's reliably. And that was pushing it. Nowadays an interpreted language running in a browser on a low-spec PC is more than enough to do a ton more channels without even breaking a sweat. Progress is amazing.
Kudos to the authors of this tool. It looks amazing!
Well, technically modern JS engines do compile JavaScript to native code and they tend to be among the most advanced on the topic, so it does kinda make sense - it isn't like, e.g. QBasic that -IIRC- had such a simple interpreter that assigning commonly accessed variables at the top of the program would make it run faster :-P.
Good discussion here from 2019.
I'm less conflicted about having music tools in the browser. Yes, it's less efficient, and there's more risk of dropouts, and there's less control over I/O, and there's generally less you can _do_... But what's emerging is widespread access to increasingly sophisticated music making tools, and I don't see a reason to want to slow that down?
I just tried it on desktop (Windows with Google Chrome) and then on iPad and iPhone. Seems to work.
No downloads or app installs. Instant gratification compared to downloading Apple Logic Pro from the App Store. And Logic doesn't work cross platform on Windows. I also notice your Ardour is cross-platform -- but doesn't run on iOS.
If a programmer wants zero-install + cross-platform, what are the alternatives other than the web browser runtime being the target? (Other than programmer learning and writing 5 different native versions which lowers velocity of adding product features.)
I think it has its place and will just add to the existing tools. After all, even free (and good) vst plugins didn't replace real synths.
The modern web is thrilling sometimes.
From `package.json` it appears to have zero dependencies other than `grunt` and plugins as a build tool, so other than a handful of libs [1], it appears to be 100% organic JS.
[0] https://github.com/steffest/bassoontracker
[1] https://github.com/steffest/BassoonTracker/tree/master/scrip...