All Projects → steffest → Bassoontracker

steffest / Bassoontracker

Licence: mit
Webbased old-school Amiga music tracker in plain old javascript - Plays and edits Amiga Mod files and FastTracker XM files

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Bassoontracker

modplayer-js
JavaScript player for SoundTracker mod files using AudioWorklet API
Stars: ✭ 30 (-95.7%)
Mutual labels:  tracker, webaudio
Theorytracker
🎼 HTML5/WebAudio multi-track functional harmony analysis and songwriting app! -- https://hlorenzi.github.io/theorytracker/
Stars: ✭ 62 (-91.12%)
Mutual labels:  webaudio, tracker
Stonks
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal. See how fast your stonks will crash.
Stars: ✭ 405 (-41.98%)
Mutual labels:  tracker
Io 808
An attempt at a fully recreated web-based TR-808 drum machine.
Stars: ✭ 576 (-17.48%)
Mutual labels:  webaudio
Blacklist
Curated and well-maintained hostfile to block ads, tracking, cryptomining, and more! Updated regularly. ⚡🔒
Stars: ✭ 492 (-29.51%)
Mutual labels:  tracker
Cdogs Sdl
Classic overhead run-and-gun game
Stars: ✭ 422 (-39.54%)
Mutual labels:  retro
Nscde
Modern and functional CDE desktop based on FVWM
Stars: ✭ 526 (-24.64%)
Mutual labels:  retro
Torrent
Full-featured BitTorrent client package and utilities
Stars: ✭ 4,138 (+492.84%)
Mutual labels:  tracker
Jspaint
🎨 Classic MS Paint, REVIVED + ✨Extras
Stars: ✭ 5,972 (+755.59%)
Mutual labels:  retro
Multi Object Tracker
Multi-object trackers in Python
Stars: ✭ 451 (-35.39%)
Mutual labels:  tracker
Animetrackerlist
动漫磁性链接加速方案(animeTrackerList)
Stars: ✭ 572 (-18.05%)
Mutual labels:  tracker
Meantorrent
meanTorrent - MEAN.JS BitTorrent Private Tracker - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js, A BitTorrent Private Tracker CMS with Multilingual, and IRC announce support, CloudFlare support. Demo at:
Stars: ✭ 438 (-37.25%)
Mutual labels:  tracker
98
💿 Web-based Windows 98 desktop recreation █████▓█▓▓▒▓▒▒░▒░░░🗕︎🗗︎🗙︎
Stars: ✭ 424 (-39.26%)
Mutual labels:  retro
Iou Tracker
Python implementation of the IOU Tracker
Stars: ✭ 562 (-19.48%)
Mutual labels:  tracker
Nomie
Nomie v5 Source Code
Stars: ✭ 407 (-41.69%)
Mutual labels:  tracker
Covid19india React
Tracking the impact of COVID-19 in India
Stars: ✭ 6,847 (+880.95%)
Mutual labels:  tracker
Jsnes Web
A browser UI for JSNES, a JavaScript NES emulator
Stars: ✭ 398 (-42.98%)
Mutual labels:  webaudio
Recorder
html5 js 浏览器 web端录音
Stars: ✭ 429 (-38.54%)
Mutual labels:  webaudio
Tracking With Darkflow
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow
Stars: ✭ 515 (-26.22%)
Mutual labels:  tracker
Awesome Webaudio
A curated list of awesome WebAudio packages and resources.
Stars: ✭ 685 (-1.86%)
Mutual labels:  webaudio

BassoonTracker

Browser-based old-school Amiga Music Tracker in plain old JavaScript.

BassoonTracker

Plays and edits Amiga Module files and FastTracker 2 XM files.
Live demo at http://www.stef.be/bassoontracker/

If you have ever heard of Protracker or Fasttracker, then you know the drill,
if not, then you are probably too young :-)

This tracker requires a modern browser that supports WebAudio. It's tested to work on Chrome, Firefox, Safari, Edge, Chrome on Android, mobile Safari and the Samsung Android Browser. It works best in Chrome.

BassoonTracker

Features

  • Load, play, edit and save Protracker and FastTracker 2 compatible module files
  • All Protracker audio effects are supported (99% accurate, in case of historical differences in playback engines, I tend to follow the Protracker 2.X one)
    • Portamento / Frequency slides (Effect 1, 2, 3, 5, E1 and E2)
    • Vibrato (effect 4, 6, and E4)
    • Tremolo (effect 7 and E7)
    • Arpeggio (effect 0)
    • Glissando (effect E3)
    • Sample offsets (effect 9)
    • Volume slides and settings (effect A, C, E10, and E11)
    • Position jumps (effect B)
    • Pattern breaks, loops and delays (effect D, E6, and E14)
    • Speed settings (effect F)
    • Sample Delay, Cut, Retrigger and Finetune (effect E13, E12, E9, and E5)
    • Lowpass/LED filter (effect E0)
  • Almost all FastTracker audio effects are supported (95% accurate)
    • Volume and Panning Envelopes
    • Auto Vibrato
    • Multiple samples per instrument
    • Extended volume commands
  • Next to the tracker effects, there are per-channel effects for low, mid, high frequency, panning and reverb control
  • Mute/solo tracks
  • Edit pattern data and sample properties, use ranges and cut/copy/paste for quick editing
  • Up to 32 channels
  • Import 8bit WAV, 8SVX and RAW samples (as well as any other format AudioContext can read, like .mp3 and .ogg)
  • Integrated sample editor: Edit and slice your samples right inside BassoonTracker
  • Includes the historic ST-01 and ST-02 sample disks, released in 1987 (as well as a bunch of others)
  • The modarchive API is integrated to access several thousands of music files
  • The modules.pl API is integrated to access even more music files
  • Export to .mod, .xm, .wav, and .mp3
  • Connect your Dropbox account to directly read and write your own files
  • Read more in The Docs

The playback engine has gone through extensive compatibility testing, but as the Protracker code itself is somewhat messy and muddy throughout different versions, there's always room for improvement. If you find a module that doesn't sound the way it should, let me know! There are still some very specific Protracker 1 and 2 playback quirks that are not implemented (and probably never will as they are too bat-shit-crazy)

Missing features and bugs:

  • No undo/redo functionality yet
  • The following FastTracker features are not fully supported yet:
    • Tremor
    • "Set envelope position" command
    • PingPong Loops are unrolled to normal loops (There's no difference in sound but if you save your XM file, your samples will have changed.)
    • When writing XM files, patterns are not packed so the resulting files will probably be a little bigger than when saved with the real FastTracker 2.
  • Safari doesn't support WebAudio StereoPanners so songs will be played in mono on Safari.

Note: if you use an AZERTY, QWERTZ or DVORAK keyboard, you can set that option in the settings to have the correct layout when playing notes on your computer keyboard.

How to Build

  • The build step is optional, there are no runtime dependencies (bliss!)
  • Just open dev.html in a browser to load the plain uncompressed scripts
  • To build the packaged version:
    • If you don't have grunt installed - install it with "npm install -g grunt-cli"
    • Run "npm i" to install the Grunt build tools.
    • Use "grunt" to build the compressed files -> index.html will be created.
    • Use "grunt sprites" to build the spritesheet. This will compact all files in the "skin/src" to a single .png file and will create a spritemap.
    • Use "grunt player" to build the player-only version (you can find it the "player" directory).
    • Use "grunt friend" to build the version for Friend OS (you can find it the "hosts/FriendOs/build" directory)

Future plans

  • MIDI support!
  • Undo/redo on pattern edits and sample edits.
  • Export and import of .xi instruments.
  • 3SM/Screamtracker file support, maybe OctaMED too.
  • Allow synth/FM instruments next to sample instruments.
  • Although the tracker concept is awesome - it also would be nice to integrate it in a more modern "horizontal block compose" style interface where you can re-use and combine tracks/patterns in a composition instead of endlessly copying tracks.
  • Allow multiple notes per track (or at least give the option to let them play when a new note is triggered).
  • More effects (echo, reverb, flange, etc.) should probably be implemented with graphical track-envelopes instead of instrument envelopes or more numerical effect parameters. All this would require (yet another) new file format, but that seems inevitable.
  • Simpler HTML/CSS-based layout - maybe the canvas approach is too heavy for really large screens? (this one is in-progress)
  • Plugins:
    • Jukebox plugins, filter on genre/rating/etc.: hit play and let it perform.
    • More expanded sample editor with audio processing features - probably as an external plugin.
    • Nibbles... we definitely need Nibbles.

Player If you want to integrate the BassoonTracker playback routines in your own website, check out the "Standalone Player" examples in the "player" directory or visit the live Player demo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].