Mod Archive Forums

Community => Project / Coder's Corner => Software Showcase => Topic started by: Steffest on June 22, 2017, 15:00:41

Title: Bassoon Tracker - online tracker in plain javascript
Post by: Steffest on June 22, 2017, 15:00:41
Ok, I think we're about ready for a first release:

Bassoon Tracker - a browser based tracker in plain old javascript.
Open, play, edit and save 4 channel mod files in your browser.

http://www.stef.be/bassoontracker/

(http://www.stef.be/bassoontracker/skin/screenshot.png)

It supports all Protracker effects.
Not all Protracker 1 and 2 weird playback quirks are implemented but most of them are.
It also performs well on mobile devices, but without a keyboard it's a bit hard to enter any notes ...
Of course the wonderful ModArchive API is implemented so you can access the archive directly from the tracker.

Source code is on Github: https://github.com/steffest/bassoontracker
If you finds any bugs or have any feature requests: let me know!

Steffest
Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: Nikku4211 on June 22, 2017, 20:06:34
I've been looking all my life for a good HTML5 module tracker. I hope you eventually add all Protracker bugs in there and have multi-version support.

However, I've noticed some problems that I hope you can fix and hopefully some new features.
- The font needs improvement. Quotation marks and apostrophes as well as the @ symbol need to be implemented.
- The pattern loop start feature needs to be added, too. Even the original Protracker has it.
- When I load in an 8 channel mod, the message that comes up says they are not supported...yet. I hope that means you will support them in the future.
- Add the option of playing audio with no interpolation. I don't even think the Amiga uses interpolation. Whether it does or not, the Bassoon Tracker plays modules too muffled.
- If you plan to support 8 channel mods, you should support mods that go over the note limit. When I play a mod that goes over that note limit like LHS' "x4.mod", the notes are played almost correctly, except they're kind of distorted.
- Please write the documentation sometime. I know it's obvious, but it has the opportunity to really help someone new to this tracker and trackers in general.
- It would help if you at least put a search feature for when looking in the tracker's ModArchive. That, and/or not all of the artists in the actual ModArchive are listed in this tracker. I couldn't even find any of my songs, and trust me, at least some of my Amiga tracker modules are in the actual ModArchive.
- Improve the sample editor. Add copying and pasting for the sample editor, as well as upsampling and downsampling. I know this might make it too much like OpenMPT, but it's good for making bass samples and is needed in case you didn't know that you needed a note of a higher octave than 3 or of a lower octave than 1.
- Add support for the OpenMPT keyboard layout. Maybe I'm the problem, being too used to OpenMPT, but please make it happen. Especially since the only way to switch octaves that I know of for now is to use the piano, which is actually a nice feature, no kidding.
- Add the ability to copy and paste notes, effects, samples, and a combination of any of those 3.

If I'm going to use this tracker, I want it to be the most convenient it can and I want it to be easy to use. I hope you can add these.
Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: Saga Musix on June 22, 2017, 21:32:08
Quote
Maybe even currency symbols, accented letters as well as an umlaut, if possible.
Stricly speaking, only ASCII symbols should be allowed in plain MOD files, so no umlauts should be allowed.

Quote
- The A00, 200, 100, 300, 400, 500, and 600 effects don't work, and what they are supposed to do is continue the last effect of it's type before it, so A00, 500, and 600 continues the volume slide; 200, 100, 500, and 300 continues the portamento; 400 and 600 continues the vibration; etc.
That is dangerously incorrect. A00, 100 and 200 do nothing. Basically no effect that doesn't "need" it has effect memory in ProTracker; The only effects that have memory are Portamento and Vibrato because of the 5xx and 6xx effect. In particular, 500 and 600 only apply vibrato/portamento, but they do NOT continue a volume slide.
Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: Nikku4211 on June 23, 2017, 00:23:32
Then I guess it's just how used to OpenMPT I am.
Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: Steffest on June 23, 2017, 10:49:19
Hey nikku4211,
Thanks for your thorough test drive

Quote from: nikku4211
The font needs improvement. Quotation marks and apostrophes as well as the @ symbol need to be implemented
True, I'll add the missing ASCII chars

Quote from: nikku4211
The pattern loop start feature needs to be added, too. Even the original Protracker has it.
You mean the E6 command for pattern loops? That should be working.

Quote from: nikku4211
When I load in an 8 channel mod, the message that comes up says they are not supported...yet. I hope that means you will support them in the future.

No doubt. Technically there is no reason to stick to 4 channels. You can already activate more by http://www.stef.be/bassoontracker/?tracks=8 and http://www.stef.be/bassoontracker/?tracks=16 etc. but I still have to add loading/saving for more tracks and fix the UI so you can scroll patterns horizontally.


Quote from: nikku4211
Add the option of playing audio with no interpolation. I don't even think the Amiga uses interpolation. Whether it does or not, the Bassoon Tracker plays modules too muffled.

Yeah I know, but I don't think that's going to happen. I don't do any interpolation in code, but the Web-Audio implementation of the browser upsamples the output. This depends on the specific browser used, but probably it's up to 16-bit 48kHz.
As interpolating in javascript is another can of worms and will have a serious performance impact, I think I will leave that can closed.

Quote from: nikku4211
It would help if you at least put a search feature for when looking in the tracker's ModArchive. That, and/or not all of the artists in the actual ModArchive are listed in this tracker. I couldn't even find any of my songs, and trust me, at least some of my Amiga tracker modules are in the actual ModArchive.

Yes, the artist list is - for now - just a manual list of composers with lot's of 4-track mods that are good for testing. I totally love the ModArchive API, but for searching and filtering it's probably best that I replicate a part of the ModArchive meta data in my own database to do these kinds of things locally. That's for the future.


Quote from: nikku4211
Improve the sample editor. Add copying and pasting for the sample editor, as well as upsampling and downsampling. I know this might make it too much like OpenMPT, but it's good for making bass samples and is needed in case you didn't know that you needed a note of a higher octave than 3 or of a lower octave than 1.

Yes, that is certainly on the roadmap. Of course it will never be a fully featured sample editor but the basic stuff like copy/pasting/resampling should be there.


Quote from: nikku4211
Add support for the OpenMPT keyboard layout. Maybe I'm the problem, being too used to OpenMPT, but please make it happen. Especially since the only way to switch octaves that I know of for now is to use the piano, which is actually a nice feature, no kidding.

That's not going to be completely possible as the browser already has some keyboard-shortcuts in use (so I can't use the F-keys) but yes: the basics should be possible. That being said, I still have to figure out nice way to edit notes and effects on a touchscreen without a keyboard too.

Quote from: nikku4211
Add the ability to copy and paste notes, effects, samples, and a combination of any of those 3.

Yes, range selections and some form of transparent copy/paste where you can select what you want to paste is on the road-map.

The next features probably will be in the order

Once we're there I'll probably make the jump to more tracks and the .xm format.

There a many other features that I would like to implement - if time and interest permits.

Like a separate beat-sequencer type interface for drum patterns, or that you can group and fold some tracks together and that you can use these groups independently to compose a song. Like when you create a drum patterns on 4 tracks, you should be able to use that as a building block in the composition without having copy them over and over. As you change the building block, all patterns that use it will be updated too.
The same for bass-lines, leads, ... That will avoid much of the tediousness of pattern editing.

Polyphony on a single track is another (easy) one.
Now I had to write code specifically to cut a note when another on the same tracks starts playing so - especially with the attack and release curves in .xm instruments - it would make sense to have an option to activate true polyphony.

Also the effect channels for the low-mid-high ,reverb, echo, ... should be controllable by parameters.

But at some point it will be inevitable to divert from the standard .mod or .xm format and create another format to hold all the info.
Of course there will always be an export option to .mod or .xm ...

Maybe the openmpt format supports extensions like that ... I haven't really looked into that, shame on me :-)

I always though it was a missed opportunity that the trackers didn't use the Amiga IFF file structure as this allows the extension of the file with different blocks. If a program doesn't understand a block, it can still ignore it but keep it intact while saving again.

Well... the story of the Amiga is a story of missed opportunities, isn't it ... :-)
Luckily the trackers still live on!




Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: Nikku4211 on June 23, 2017, 18:42:20
By pattern loop start, I meant setting up which pattern to start from after the last pattern in the song ends, which you could do in ProTracker without having to use the Bxx command. By OpenMPT keyboard layout, I meant for inputting notes, where each row on the keyboard is for each octave.

I hope that make sense.
Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: DragShot on November 18, 2017, 02:50:34
Oh nice, I just stumbled upon this. I like the retro, yet polished design you applied to the GUI. Also, for classic 4-track modules this seems to work just fine. Well, I'm only an amateur and a casual listener, so I doubt I would be able to spot any oddities easily.

Good job! I wish you good luck with this project of yours.

Btw, I just dropped a star into your project badge in GitHub.
Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: m0d on April 11, 2022, 20:29:46
This is utterly brilliant. Been using it a lot to screencap some of my old mods as I don’t otherwise have an accurate player available on my iPad Pro.
Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: abigail.vieillemoule on March 30, 2023, 11:32:06
Good morning,
a version of the tracker offline windows in exe is it envisaged (I downloaded the sources on github, but that does not advance me really), a version windows would be really good.
(translated with deepl, I'm french)
Title: Re: Bassoon Tracker - online tracker in plain javascript
Post by: Steffest on September 06, 2024, 16:07:33
Sorry for reviving an old thread.

BassoonTracker 0.5.0 is out!
https://www.stef.be/bassoontracker/

Now with Playlist support, Favorites, Social Sharing, Collapsible panels and more.

Do try out the "random playlist" function.
It's using (Duh...) the ModArchive database (or a cached version of it anyway) to randomly select 20 songs.
great fun!

Video highlighting what's new in this release: https://youtu.be/HXjLleDDY-g
And of course a whole bunch of other playlists are included.

If you have any cool playlists to share, give me a shout!

-> https://www.stef.be/bassoontracker/