GithubHelp home page GithubHelp logo

steffest / bassoontracker Goto Github PK

View Code? Open in Web Editor NEW
995.0 42.0 61.0 26.74 MB

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

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

License: MIT License

HTML 5.34% JavaScript 94.66%
webaudio music-creation amiga retro protracker tracker fasttracker

bassoontracker's Introduction

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 :-)

###Requirements

  • 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.
  • Midi support is not available in Firefox or Safari.
  • Minimum requirements for mobile devices: IOS9 or Android 6

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 (97% 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
  • Midi support (only Midi-in currently)
  • 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
  • Full Undo/Redo in pattern editor and sample editor
  • 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:

  • 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.
  • Safari and Firefox don't support the Web Midi Api so no midi on those browsers.

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 -> Done!
  • Undo/redo on pattern edits and sample edits -> Done!
  • Implement local file system access
  • 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? (Done, but not maintained)
  • 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. -> We do!

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.

bassoontracker's People

Contributors

0xflotus avatar dependabot[bot] avatar drsnuggles avatar hunt3rdotme avatar idontbyte avatar jpnance avatar steffest avatar xibe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bassoontracker's Issues

feature: Add Midi keyboard support

Testing my keystation 32 mini here:
http://www.multiplayerpiano.com
and
https://pianu.com/intro/ode-to-joy

Works. All the keys are detected and so is their pressure sensitivity.

Trying the same here
https://www.stef.be/bassoontracker/

My midi keyboard simply doesn't exist to bassoon tracker. Pressing all the keys on various instruments - nothing.

Can you add support for midi keyboards please? I will help with testing if need be. Using a standard laptop laptop keyboard is just subpar when compared to using a midi keyboard with pressure sensitivity

Not sure exactly how some of these web apps get their midi support. I assume they use some open source js library to achieve it
https://github.com/djipco/webmidi
or see many others here
https://www.npmjs.com/search?q=midi%20keyboard

this one is popular and well maintained
https://www.npmjs.com/package/jzz
also works! test here
https://jazz-soft.net/demo/SelectMidi.html

Midi keyboards are pretty cheap these days - especially on ebay. Having one greatly enhances the experience of music making with a tracker. To me a tracker without support for midi keyboards is not complete - it is crippled. Thus why I really need this feature before I can use bassoon

Tracker crashed on Firefox 63 on Linux Debian 9 with Gnome

Hello.

I tried your fantastic memory bringer tracker and it freezed and get stucked in a sound loop.

I was playing Stardust Memories, and it happened on the 63th step.

I copy you what lies in my syslog around when it happened (might not be all relevant, nor connected to the problem, but if it can helps !)

Jan 30 15:11:57 debianjm firefox[16482]: Theme parsing error: <data>:1:77: Expected ')' in color definition
Jan 30 15:13:36 debianjm org.gnome.Shell.desktop[3485]: libinput error: client bug: timer event0 debounce short: offset negative (-9ms)
Jan 30 15:13:46 debianjm gnome-shell[3485]: Object St.BoxLayout (0x55f3d5518890), has been already deallocated — impossible to set any property on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Jan 30 15:13:46 debianjm gnome-shell[3485]: Object St.BoxLayout (0x55f3d54ec810), has been already deallocated — impossible to set any property on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: == Stack trace for context 0x55f3d36991d0 ==
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #0   55f3ded2b618 i   resource:///org/gnome/shell/ui/status/volume.js:101 (7fe7638091f0 @ 49)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #1   7ffe954afcf0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7fe79c0b0b80 @ 71)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #2   55f3ded2b568 i   resource:///org/gnome/shell/ui/status/volume.js:284 (7fe763809c10 @ 259)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #3   7ffe954b0c60 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7fe79c0b0b80 @ 71)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #4   55f3ded2b4e0 i   /home/jeanmarc/.local/share/gnome-shell/extensions/[email protected]/widget/volume.js:422 (7fe762745af0 @ 91)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #5   7ffe954b1fb0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7fe79c0b0b80 @ 71)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #6   55f3ded2b420 i   self-hosted:979 (7fe79c0f01f0 @ 440)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: == Stack trace for context 0x55f3d36991d0 ==
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #0   55f3ded2b618 i   resource:///org/gnome/shell/ui/status/volume.js:101 (7fe7638091f0 @ 49)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #1   7ffe954afcf0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7fe79c0b0b80 @ 71)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #2   55f3ded2b568 i   resource:///org/gnome/shell/ui/status/volume.js:284 (7fe763809c10 @ 259)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #3   7ffe954b0c60 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7fe79c0b0b80 @ 71)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #4   55f3ded2b4e0 i   /home/jeanmarc/.local/share/gnome-shell/extensions/[email protected]/widget/volume.js:422 (7fe762745af0 @ 91)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #5   7ffe954b1fb0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7fe79c0b0b80 @ 71)
Jan 30 15:13:46 debianjm org.gnome.Shell.desktop[3485]: #6   55f3ded2b420 i   self-hosted:979 (7fe79c0f01f0 @ 440)

Nice work !

JM

On the fly sample swapping is not implemented

The lead coming in at position 07 remains 'stale' and it seems it's not re-triggered in the same way it is when you use ProTracker - the alternating "0a, 0b, 0c, 0d, 0e"s in the sample/instrument column should switch to the respective sample, even when there is no new note triggered.

Mix of hex and decimal number systems, zero-based and not zero-based

I am not sure how FastTracker handled this, although I used it for years but the mix of using decimal numbers in the upper right 'instrument' window and using the corresponding hex numbers in the instrument column of the pattern view is a bit irritating to me.

Also it seems odd to me that patterns start counting from 00 but the song positions start at 01. (In ProTracker they both start at 00 - while samples start at 01.)

Feel free to purge this right away as I am aware this is probably by design... And don't get me wrong, once again I think this is a great project - I just wanted to leave some feedback while I am checking it out, as I have spent a lot of time in trackers in my youth days.

XM Bugs - Finetune

Split from #8

Some have an issue with fine tune:

svenzzon-blizzard.zip (Error: unable to find finetune for note 0)
strobe-balloons and shit.xm (Error: unable to find finetune for note undefined)

Note held in weird situation

U4ia's "U4ic Nightmare" (attached), position 8, pattern 4 holds a note at the end.
u4ic_nightmare_2.mod.zip

Protracker, where he originally composed it, doesn't do it, but every mod player (including mikmod, on which i had tried to fix it) holds that note.

It would appear that the pattern attempts to trigger a new sample (#2) but still has the '300' effect on the line. Which is likely an error by U4ia; but at least shows the behavior difference. ;)

I think it needs basically a case where if the sample is changing that should have priority over the portmanteau/other effects? I'm not sure how your engine works yet. ;D

XM Bugs - Global Volume Slide

Split from #8

Some songs wont play at all due to unimplemented Global Volume Slide:

reed-yet another discoism.xm
cerror-for funky fish.xm
radix-sunstreak.xm

Request: Ability to render the song to wav or Ogg file

Right now it is pretty awesome, but it lacks the fundamental ability to export the music data to something that other software can read.

I am requesting this, because I am actually interested in embedding bassoon into gdevelop- to be used as a music tracker by game devs.
https://github.com/4ian/GDevelop
I already did that with piskel and it worked out quite well. :)

Bundling a copy of bassoon with gdevelop can be beneficial to both projects imo - giving exposure to bassoon and getting it in the hands of more users.
I will like to keep the vanilla version of the editor- so it will retain all of its original charm. The only thing that I will need to do is inject a button 'Save back to Gdevelop' somewhere in the UI of my copy.

Unfortunately without the ability to actually export the data as a music file, gdevelop will not be able to use it.

Our other option is sonant or soundbox, but I like bassoon more.

Protracker: notes above B-3 are not displayed but still played

The highest note you could play on ProTracker was B-3. But there are numerous MODs around that have been made in FastTracker which didn't have that limitation but made them unplayable on ProTracker - PT just displays ??? and chokes.

I guess you could argue it's better to replay them instead of just choking and Bassoon Tracker actually plays them like they were supposed to from a FT2 view but doesn't show any note value at all in the pattern view - it just shows the respective sample in the sample column.

In my opinion the right way to go for a modern tracker would be to play them but display a warning when saving a .MOD containing high notes.

XM Bugs - Arpeggio

Split from #8

Some have issues with arpeggios:

maniac-disco zax.xm
carter-dead feelings.xm
med-halloween 2002.xm (seems that a 'note-off' technique isn't working here)
lhs-brd keygen #2.mod and brd keygen #2.xm both don't work properly!

XM Bug - The "M" Volume command should also continue the "3" tone porta command

First of wow this is spectacularly awesome!! Extremely well done. I'm impressed across the board, but especially about the amazing mobile support. I couldn't have imagined that an oldschool style tracker UI could be user friendly (ish) on a tiny touch screen. Hats off!

That said, I don't think all the XM bugs have been fixed yet; I found an old (pretty bad) song of mine that's pretty different in Bassoon Tracker vs FT2 or XMPlay, especially in the first few patterns. Something with the pitch bend and also something with the timing I think.

https://www.stef.be/bassoontracker/?file=https%3A%2F%2Fapi.modarchive.org%2Fdownloads.php%3Fmoduleid%3D142113

https://modarchive.org/index.php?request=view_by_moduleid&query=142113

Originally posted by @eteeselink in #8 (comment)

Url parameters: files with special characters like # & - broken?

How to correctly encode the filename in the URL?

normal filename works:
https://www.stef.be/bassoontracker/?file=https://modland.ziphoid.com/pub/modules/Protracker/Dizy/conspiracy2.mod

with special chars like # & it doesn't
https://www.stef.be/bassoontracker/?file=https://modland.ziphoid.com/pub/modules/Protracker/Dizy/chiptune#2.mod

Am I wrong or your code?
https://mod.schugo.de
-> Bassoon Tracker

from there you can load modland files...

XM Bugs - ADSR release

Split from #8 : A bunch of songs have issues with ADSR release, similar to springmellow p.II.xm above (seems to be the same issue in all).

sinny-sky sunday.xm
amove-lupo.xm
ghidorah-dark december.xm
xerxes-hesse's sovesang.xm
jeroen tel-stranglehold.xm

Sound triggered by input doesnt play during play+record mode

First of all - WOW! This is the most feature complete html5 tracker I have ever seen. I love the retro vibes to it too!

The biggest problem with it for me atm is the fact that sound triggered by keyboard keys during play+record mode does not play at all. The recorded notes play on the replay of the loop though.

Is this something that you plan to address or it is a genuine bug? It really makes the tracker unusable for live record mode for me

Feature: S3M support

Ability to load S3M files would be most excellent. Not sure what else to put here. Bananas.

BPM adjustment doesn't work

The BPM field doesn't seem to work to set the BPM while a mod is playing.
(Testing with "Milano's Theme" by U4IA, but seems to happen on all mods.)

XM files compressed by optimizing tools cause issues

XM files optimize" by tools like "BoobieSqueezer" (Yes, that a real thing: http://battleofthebits.org/lyceum/View/BoobieSqueezer/) cause crashes.
These optimised files have stripped-down instrument data (like missing envelope points when envelopes are not used etc.)
BassoonTracker should validate module-structure after parsing, filling in missing values when needed.
An example of such a file is https://modarchive.org/index.php?request=view_by_moduleid&query=167786

XM bug: solo on channel 9 also solos channel 1

Reproduction steps:

  1. Load Ambrozia XM demo song
  2. Browse to sequence 06 (pattern 05)
  3. Click [S] button on channel 9 to solo

Expected:
Only channel 9 should be audible.

Actual:
Both channel 9 and channel 1 are audible.

Notes:
No other channel solo function seems to exhibit this bug, at least on this demo song.

Some modules won't load because served from http

It seems bassoontracker attempts to load some of the built-in modules from http. Since the site is hosted on https, the request is blocked by the browser with this kind of error message:

bassoontracker-min.js?v0.3.2-build20190131.0828:1 Mixed Content: The page at 'https://www.stef.be/bassoontracker/?file=demomods%2Fdemomusic.mod' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://www.stef.be/amiga/mod/enigma.mod'. This request has been blocked; the content must be served over HTTPS.

Example of modules: Guitar Slinger, Enigma.

Feature: Visualization api

I have a bunch of visualizers from my iOS mod player that i'd love to fly in to this codebase. Perhaps a button to switch the pattern view into a visualizer view (like the way it is replaced with sample editor, etc.

It'd be great to have a visualizer api, with a few entry points:

  • initialization/startup
  • shutdown
  • poll for screen update

It would need to have access to some bits of data to be able to do fun stuff with the content:

  • graphics context/bitmap to render into
  • current song metadata
  • pattern, position, speed, tempo, number of voices, etc
  • for each voice: current volume, waveform, pan position, frequency

I'm sure all of this is in there somewhere, as it's currently used for the main display.

I think a great first-version would be a single visualizer built in to the codebase... in fact all visualizers can be compiled-in. they don't need to be plugins at all.

Perhaps a way to have one or two configuration values using the exisiting widgets in the future would be nice as well. (select a number using up/dn buttons, 7 segment display, etc)

I haven't looked through the code at all yet to begin to delve into this myself, but i might if nothing is planned along these lines....

The "EFx" command - Invert loop - is not implemented

First of all: great project!

I took it for a test drive with a few tunes and noticed it is not quite there yet for the tune mentioned above. The same probably goes for some of WOTW's intro tunes which use very similar sounds and a similar technique, where this tune has borrowed them from.

Available here: https://modland.com/pub/modules/Protracker/Radix/nowhere.mod

Check out the playback on the real thing or with Bubsy's Protracker clone, comes a lot closer.

XM Bugs - Lowpass Filter gets stuck

Split from #8

Some songs have a bug where a lowpass filter is enabled and remains even after loading new songs (gets "stuck"):

vogue-ambient light.zip (Pattern 9)
lesnik-hot dogs 3.xm (happens immediately in Pattern 1)
lamb-happiness.xm (happens at very end of Pattern 1)
That requires refreshing the page to fix, so pretty bad.

Player API

I preloading all my musics in an array of songs. How to change the current song of player, without to reload each music file?

And I to load a music from an ArrayBuffer ?

Possible to have the unminified JS of BassonTracker Player?

Thanks

Cap Framerate to 60 fps in rendering engine

On some systems with high refresh rate screens, the rendering engine consumes too much CPU ,causing audio hickups.
The rendering engine should be limited too 60 fps max.

Build process broken

Build process is actually broken due to use of ES6.
Could be avoided by using babel for ES6 -> JS which then can be uglified again

Command Speed "F00" should be ignored

The file "dirt.mod" has F00 commands in the song at which point Bassoon Tracker stops playback. Other players (OpenMPT, FLOD) seem to ignore setting the speed to zero, which seems okay to me.

Sample editor indexing is decimal, tracker view uses hex

The sample numbers in the tracker view are in hex (00..0F,10..1F,etc) but the sample editor selector displays in decimal. (00..09,10..19,etc).

The sample editor should probably be in hex as well. It makes finding the right sample a bit tricky. ;)

More player bugs

Here is a list so far of modules that are played wrong in some way. I'll add more as I find them

XM

  1. Xerxes/minors&majors.xm (Notes cut a bit too early)
  2. Lamb/among the clouds.xm (Ambient SFX not playing properly)

MOD

  1. Muttley/zo zad.mod (xmplay also plays wrong, sorcery is going on here)

STK

  1. SLL/high byte.mod (since you support STK, here's a headache to rethink that decison ;) )

I'm not sure if any of these use quirks that you don't wish to support, so just cross any out that are intentionally broken. :-)

Feature: Playlist support

It would be really great to have a way to enter a url for a playlist/file source.
Perhaps to a specific format json file that could have groups of files listed.
Sort-of the way that it does the hierarchical view of modarchive.
I've got my favorites at http://umlautllama.com/mods and would be 100% into adding the required file to list out the files for testing, etc.

Loading a new song doesn't clear all previous data

Loading a new song doesn't clear all previous data.
This causes corrupt data when saving the new song.

To reproduce: Load Ambrozia.xm , then load SpaceDeb.mod, then save the mod.
(it appears the instrument list is not cleared 100%)

GUI: Knob doesn't take effect when turned on without adjusting

This one was hard to summarize for the title. ;)

If you start up playback the tracker, the first time you turn on an EQ adjustment in the FX panel of a voice, it will not apply the knob's setting until you adjust it a little.

reproducing this:

  1. Reload the page
  2. Load and play a mod (I was using "go cryo go" by U4IA )
  3. Select one of the voices, preferably one with a high-hat (third voice for this mod)
  4. Select FX
  5. click on the "HIGH" eq adjustment, but do not drag. The light on the knob will light up
  6. Audio is unaffected.
  7. drag to adjust the knob, and it will pop up to a higher level.

Adjusting it back to the center position has more "brightness" than when it was off.

Some effects lacking a "continue" mode.

Effects 3, 4, 7, 9 should use the last values given to them in a channel, if they show up in a pattern with 00 as parameter; testing showed that at least the Set Offset effect currently doesn't do this.

signia.mod (3rd & 4th channels, pattern 3 in 3rd order) - 900 doesn't retain the first value of 0x14.

XM Bugs - Crashes and other problems

Split from #8

Some others that have miscellaneous problems:

dalezy-ghosts 'n goblins.xm (envelope sustain forever)
dubmood-kolobki vodka dance.xm (wrong pattern jump in Pattern 2)
kenet-chip or not.xm (delay/feedback effect not working as it should)
dragoon-far rising sun.xm (pad samples not playing)
mystic cloud-for old times sake.zip (Crashes on pattern 3)
dubmood - cybernostra weekends.zip (Crashes on open - this is a weird custom file but opens fine in FT2/milky)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.