Skip to content

Releases: LTVA1/klystrack

klystrack-plus v0.10.0-alpha4

10 Oct 07:32
Compare
Choose a tag to compare

Added:

  • Phase reset timer for main instrument and FM ops, effects to control it (toggle, portamento up/down, set note/finetune)
  • Notes in sample map (so now you can assign a sample on e.g. C-4 note but make it play as if it was F-7 note)
  • Compatibility flags menu (Menu->Edit->Compatibility)
  • Commands for toggling ring mod, hard sync and FX bus

Fixed:

  • Fixed FM ops programs being executed even if Use main instrument program flag was set

Known problems:

  • Sample which length is not 2^n, used in 4-op fm on modulated operator, will produce some spikes on oscilloscope and generally sound bad

klystrack-plus v0.10.0-alpha3

01 Jan 08:42
Compare
Choose a tag to compare

Added:

  • FastTracker II - like envelopes (volume and panning for main instrument, volume for FM operators)
  • pattern loop commands (FastTracker II - style)
  • fine portamento up/down (4 times coarser than extra fine portamento up/down)
  • More imported XMs (minimal manual adjustments after import) and a demo instrument demonstrating new envelopes
  • Support for old filter: if module is from original klystrack it uses old filter, otherwise new filter is kept.
  • Faster slide command (2fxx, 16 times faster than 03xx).
  • .fzt file import (modules from my other tracker)
  • .fzt file export (with a lot of limitations)
  • More keys to enter notes: (provided your base octave is 4th one which is default) [ and ] for F-6 and G-6 respectively, , and L are C-5 and C#5 (aliases of Q and 2 respectively)
  • Filter resonance up and filter resonance down effects
  • Grooves and effect to set groove
  • Effects to slide up and down 1-15 semitones from current note (basically stolen FamiTracker Qxy and Rxy effects)
  • Effect for position jump (e.g. Bxx in MOD/XM format)
  • FamiTracker import (VRC7 instruments aren't supported, slide & portamento as usual are a bit off)
  • Effect for delayed note transpose (a full copy of FamiTracker Txy effect)
  • Song message (F11 to open and close, copypaste text from clipboard or write in it, Esc to toggle editing; in-klystrack editing very limited and kinda inconvenient, so you better use some external text editor with monospace font and then paste the text into klystrack)
  • Panbrello effect command
  • Ctrl+Shift+V to paste pattern data from OpenMPT/Furnace/other klystrack instance
  • Cubic spline interpolation by @system64MC (in this release has awfully sounding sound spikes when you ping-pong loop the sample)
  • Fine panning slide left & right commands
  • Set LFO shapes commands (vibrato, tremolo, PWM, panbrello)
  • Commands to finely set LFO speeds and depths (00-FF parameter range)
  • Extended commands for retrigger, note cut, note delay (00-FF parameter range)
  • Wavetable and local sample editors now show sample loop points and current sample position (latter only during playback)
  • 3 more example songs (all covers as usual)
  • In klystron playback library (ksnd.dll) the KSongInfo struct now has song_message char* null-terminated string which holds song description (if present)
  • F7 shortcut to play only one pattern row (plays pattern row and stops)
  • Setting for play from cursor and aforementioned shortcut behaviour: before, if you haven't clicked a pattern row with mouse, when you pressed F6 it started playing from the start of the pattern, now you can tell it to always play from current position, have you selected it by clicking with mouse or not. By default this behaviour is enabled in this release, but you can restore the old one with Prefs->Play from cursor at pat. start

Changed:

  • way better XM import (still not ideal but much much better than before): envelopes import, more volume column/effect column stuff imported
  • Slight improvements for AHX and MOD import (position jump command support and minor tweaks)
  • renamed fine portamento up/down to extra fine portamento up/down
  • Extended filter resonance range from 0-f to 0-ff; old instruments are imported correctly - range is remapped during loading
  • synth engine should run a bit faster (more efficient) due to compile flags tweaks
  • Changed LFO system to be more precise, thus automatic PWM should be smoother (especially on slow speeds and 100+ Hz rates)
  • PWM is now slower 16 times to allow very slow PWM common in C64 songs lead instruments. Old songs' PWM speed is remapped to new range during loading (panbrello speed is also 16 times slower than vibrato/tremolo)
  • autosaves now always happen in the folder where executable is (before if you opened song or some module which can be imported and the file was in different folder klystrack created autosaves folder there instead of its own folder)
  • 01xx, 02xx, 0Axy, 07xx, 08xx, 21xx, 22xx, 17xx, 19xx, 44xx, 45xx, 46xx, 47xx, 4exx, 4fxx, 71xx and 72xx effects now have memory:
    new behaviour:
C-4 00 .. .... 02ff
... .. .. .... ....
... .. .. .... ....
... .. .. .... 0200

(portamento happens each tick until 0200 is encountered)

equivalent old behaviour:

C-4 00 .. .... 02ff
... .. .. .... 02ff
... .. .. .... 02ff
... .. .. .... ....

Old modules use old behaviour so nothing breaks. New behaviour applies to pattern effects only, in instrument / FM ops programs and pattern volume column old behaviour is left.

  • smoother progress bar for wav files export

Fixed:

  • Fixed blurriness on HiDPI displays (QHD/4K/8K/etc screens or small FHD screens)
  • Fixed false mouse hits in pattern editor when you try to scroll to the right clicking on slider button and in addition to scrolling to the right you scrolled down by a lot
  • Fixed critical crash when entering FX bus editor and having song rate higher than 1000
  • Fixed critical crash when deleting/optimizing instruments
  • Killing duplicate samples feature now actually works
  • Fix autosave failing when song filename has illegal symbols (" ' ! / \ etc.)
  • Fix wrong 5xxx command behaviour in imported xm and mod (it was setting loop point for looped samples rather than doing a one-time offset it should; a consequence of addition of dynamic loop points for samples)
  • Fix . (period) key deletion being one step laggy when undoing it
  • Fix Hubbard .sid import dialog being not responsive to window size changes
  • Fix wrong behaviour of some effects (bug that emerged in 0.10.0-alpha1)
  • Fix FM modulator not obeying its base note/finetune/vibrato
  • Fix crash when changing sample loop end point and enabling pingpong loop in sample editor when short looped sample is playing

Known problems:

  • Sample which length is not 2^n, used in 4-op fm on modulated operator, will produce some spikes on oscilloscope and generally sound bad

klystrack-plus v0.10.0-alpha2

01 Dec 07:34
Compare
Choose a tag to compare

Warning: This build is not tested properly! You may experience crashes and bugs and whatever

Added:

  • More highlight commands functionality in instrument / fm op program editor
  • Instrument deletion
  • Note without macro (N==) release note
  • 4-op arpeggios finally work
  • built-in sine wave with 16-step phase shift and a command to control it
  • Commands to set multiosc notes in range higher than 0-F semitones up from base note
  • Multiosc for 4-op FM -- play 3-note 4-op FM chords on one channel!
  • Slide speed in instrument and FM op settings is now 0-FFF range instead of 0-FF
  • 4-op master volume fade commands
  • bypass main instrument filter 4-op flag
  • SSG-EG and CSM timer (both per-operator) and commands to control the latter
  • new wavegen presets
  • copy-paste in wavegen and wavetable list
  • Mouse drag selection in pattern, sequence, program editors. Can be disabled in Menu->Prefs->Mouse drag selection
  • Arpeggio command but for shifting pitch xx semitones down (hi FamiTracker)
  • Multiple instrument and FM ops programs (up to 32 per instrument, up to 16 for FM op)
  • Delete pattern selection on Delete keypress
  • Drag'n'drop files functionality. On main screen, pattern or sequence editor screens you can drop .kt file or some file klystrack can import. In instrument editor you can drop instrument file, in FX chain editor you can drop FX bus file, in wavegen you can drop wavepatch file (if wavegen chain menu is opened) or .wav file if it is closed.
  • Autosaves! You can disable them in Menu->Prefs->Enable autosaves. You can change the period of autosaves in .klystrack config file. If the period is over but no changes were made to the song since last autosave it wouldn't save the song so your drive wouldn't be flooded with exact copies. klystrack does autosaving in separate thread so you shouldn't have any freezes during this.
  • Credits! Menu->about->credits.
  • FM instrument MML string import. Not all params are supported (AMS and KS aren't, as well as OPM-specific ones except DT2), and only PMD dialect supported, also it can't parse the string if it is just one line.
  • Phase reset commands
  • Proper spectrum analyzer! Before it was a fake one. You can return to old analyzer: Menu->Show->Show old spectrum vis.
  • Sustain rate parameter for FM ops envelope
  • Ctrl+C, Ctrl+V and Ctrl+X functionality for text fields (song/instrument/FX bus/wave/program name field). Copies and cuts all contents, and when pasting fully overrides the current string in the filed. Operates with your OS clipboard so you can e.g. copy text from field and paste it in text editor/browser/etc., or vice versa.
  • New demo songs and instruments

Changed:

  • Improved undo-redo functionality
  • Channels in pattern editor which are muted are darker (shamelessly stolen from BambooTracker)
  • Reduced FX bus count from 64 to 16, thus reducing RAM usage.
  • Because of previous export hires wav works for 32 bit build so it was returned
  • Corrected DT2 frequencies according to tests done in Furnace and OPM datasheet.
  • Klystrack now is more responsive to window size changes (before if you were in file dialog or had some message on the screen it didn't scale the interface when you changed window size)
  • Optimized volume and envelope key scaling calculation, so if you had noticeable slowdown using them now you should not experience it
  • Extended FM ops envelope params range to 0-FF (except sustain level)
  • Corrected MIDI input (account for negative octaves). MIDI input is confirmed to work (it should work in all releases prior to this one though).
  • Small .mod import improvements

Fixed:

  • Lots of small fixes
  • Mouse wheel scroll improved
  • If you made operator volume higher than 0x80 and applied feedback, the bad thing did happen with operator output (even if it wasn't modulated by some other operator)
  • Fixed algorithm №3 in 4-op FM being processed wrong

Known problems:

  • Sample which length is not 2^n, used in 4-op fm on modulated operator, will produce some spikes on oscilloscope and generally sound bad

klystrack-plus v0.10.0-alpha1

03 Aug 07:36
Compare
Choose a tag to compare

Added:

  • 4-OP FM synth (fully independent from main instrument and its FM, now you basically have 4-op + 2-op per channel). Each operator has all the features main instrument has except buzz, pokey and fx bus. SSG-EG is not implemented yet
  • A lot of commands for controlling 4-op FM, ADSR envelope and wavetable offsets. Consult the wiki
  • Wavetable deletion function. Press Delete key to delete selected wavetable item (sample)
  • New LFO shapes (triangle and inverted triangle) for vibrato, tremolo and PWM
  • Yamaha YMF825 (MA series, SMAF) waves presets in wavegen
  • perfect 4th generation button (next to perfect 5th) in wavegen
  • BPM counter in right bottom corner. Is shown only when you are in pattern/sequence editor or combined editor (the screen that shows up every time you open klystrack). Can be completely disabled by unchecking menu -> show -> show BPM count
  • You can now make nested loops in instrument program. Maximum level of nestedness is 4.
  • Smooth pattern scrolling in classic editor and pattern editor. Can be disabled in menu -> prefs -> smooth pattern scroll
  • fb00 command for instrument program. Works as release mark in FamiTracker — when note release (or FM operator release) is triggered, instrument program (or FM operator program) jumps to the step that is right after this command.
  • FPS setting in .klystrack config file. It is not directly tied to real refresh rate but you may lower it to have less smooth picture but lower GPU load
  • New shortcuts for transposing an entire song. Alt-Shift-KP "+" and Alt-Shift-KP "-" transpose one semitone up or down respectively, Ctrl-Alt-Shift-KP "+" and Ctrl-Alt-Shift-KP "-" transpose one octave up or down respectively
  • You can now make klystrack display flats instead of sharps. Menu -> prefs -> show flats instead of sharps
  • Commands highlighting. Shows command parameter(s) in different color. Can be disabled in menu -> prefs -> highlight commands.
  • Note cut note. Entered using " ` " key. Displayed as OFF. Works entirely like note cut command.
  • Macro release note. Entered using = key. Displayed as M==. Makes instrument macro and operators' macros (if applicable) jump to the fb00 command, if there is any, but does not trigger envelope release.
  • Negative octaves. From -1 to -5 octave, just like in Furnace. The designation is also stolen -- c_5 means C-(-5), for example. Old songs' notes are remapped when loading.

Changed:

  • Channel limit raised from 64 to 128
  • PWM depth is doubled, so at maximum depth you go from around 1% PW to 99% PW. Old songs' PWM depth is remapped at loading
  • Small QoL and interface changes

Fixed:

  • Sort of wrong instrument program execution
  • Ctrl + A (select all) now works correctly in pattern editor (before it just selected the very first pattern of every channel)
  • Ctrl + X (cut) now works correctly in instrument macro (program). Before it just copied the selection without deleting anything
  • Bug (freeze) with multichannel wav export
  • Transposing commands not going higher than B-7 note
  • Selection in pattern editor was drawn above pattern oscilloscope and header
  • If klystrack somehow ended on C-0, it didn't make any sound unless note was at least a tiny bit higher (original klystrack bug)
  • Noise in fixed noise pitch mode having higher "pitch" then on the same note without fixed pitch

Known problems:

  • Sample which length is not 2^n, used in 4-op fm on modulated operator, will produce some spikes on oscilloscope and generally sound bad
  • If you make operator volume higher than 80 and apply feedback, the same bad thing will happen with operator output (even if it is not modulated by some other operator)
  • Hires wav export crashes klystrack in 32 bit build, that's why hires wav export is temporarily excluded from this release

klystrack-plus v0.9

25 Feb 15:16
Compare
Choose a tag to compare

Added:

  • New noise modes (1-bit noise mode as on NES/Gameboy) and constant pitch noise. Effect 30xx sets absolute noise note. Effect 0e5x sets noise mode. More about new effects here.
  • Commands for manipulating wavetable offsets: 5xxx (changed), exxx, 44xx, 45xx, 46xx, 47xx, 4bxx, 70xx, 4exx, 4fxx, 71xx, 72xx.
  • Commands for manipulating FM modulator volume: 4axy, 34ax, 34bx.
  • Exponential volume and attack, decay and release envelope phases. These settings can be changed by 0e4x and 34cx effects.
  • Oscilloscopes on patterns and oscilloscope midlines. Oscilloscopes on patterns show instrument signal before it is fed to fx bus. Can be disabled in Menu -> Show -> ...
  • Fake "register" map as in FamiTracker. Can be disabled the same way as oscilloscope.
  • AY8930 buzz mode. Buzz in this mode works entirely like in default mode but envelope has 32 volume steps instead of 16.

Changed:

  • In pattern header menu and fx bus taps settings panning went from 8 < to > 8. Now you have twice the precision: from F < to > F.
  • Extended panning range from 0-128 to 0-255. Now 1880 means center and 18ff means right etc. Commands from old songs are remapped to new range.
  • Stupidly simple but very successful sound engine optimizations. Now, unless you have 40+ channels song, wav export works at least 2 times faster and tracker uses less CPU while running
  • Wavegen: now volume range is 0-ffff, mult and shift ranges are 0-ff
  • Improved C64 combined pulse+tri wave by replacing algorithm with actual ReSIDfp sample

Fixed:

  • Fixed a bug when you loaded song with no fx buses and all fx buses' taps became unset
  • Fixed a bug when you copied instrument macro and the information about commands executing at the same time was not copied
  • Fixed issues connected with cursor rectangle positioning while expanding some additional commands columns

klystrack-plus v0.8

10 Feb 13:20
Compare
Choose a tag to compare

Added:

  • New command system, so commands now have range 0000-FFFF. You now can enter F000-FFFF commands in patterns, but they would not do anything.
  • Up to 8 command columns like in Furnace tracker, you can expand and collapse them when necessary. Amount of visible columns is set per pattern. If you collapse column, its contents are not deleted and still are executed.
  • Volume and envelope key scaling for main instrument and FM modulator.
  • Oscilloscope in instrument editor. Can be disabled in Menu -> Show -> Show oscilloscope. Setting is saved in config.
  • 00-FF speeds and 0-44100 rate. New example song (basically instrument) showcasing stupid thing you can do with such crazy rate.
  • High sample rate song wav export (384000 Hz sample rate instead of standard 44100 Hz, may take very long time but reduces or entirely eliminates aliasing).
  • 8th and 9th octaves.
  • New commands: 24xy, 25xy, 27xy, 28xy, 37xx, 38xx, 3cxx, 3dxx, 41xx, 42xx, 43xx, 8xxx, 4cxx, 4dxx. Consult the wiki to learn what they do.
  • Exit confirmation

Changed:

  • Ctrl+I (interpolate) now works differently (see wiki).
  • Current song position is now displayed in pattern editor as full 0000-FFFF number (instead of position & 0xFFF)
  • Optimized sequence and fx bus saving (every time you place pattern in sequence you add 4 bytes to song size instead of 5 in previous versions; in fx bus now you can specify exact amount of taps and unused settings are not saved)
  • FM modulator volume range is extended from 00-7F to 00-FF

Fixed:

  • Additive FM now has fully separate envelopes for carrier and modulator

Other:

  • Slight performance improvements

klystrack-plus v0.7

26 Dec 18:29
Compare
Choose a tag to compare

Added:

  • FM modulator tremolo and vibrato
  • Checkboxes about saving/not saving LFO settings (vibrato, tremolo, PWM) of main instrument and FM modulator (in that case tremolo and vibrato settings)
  • save file optimization (instrument save is now optimized: if you unchecked "save LFO settings", filter, FM, buzz, POKEY, SYNC, ring mod and FX checkboxes their parameters are not saved)
  • FM frequencies mapping switch (now it is OPL <-> OPN, default is OPL which represents frequencies LUT that was in original klystrack)
  • Full backwards compatibility with old songs (now all .kt files should load correctly)
  • One imported XM file with corrected envelopes ("Stranglehold" by Jeroen Tel). Located in examples/songs/Imported XMs. Weighs 5 times less than original xm file!
  • Started writing "tutorials" in help window's "Authors' comments" section

Known problems:

  • FM carrier envelope (which is main instrument envelope) affects modulator volume in additive mode which should not happen.

klystrack-plus v0.6

23 Dec 16:05
c415f32
Compare
Choose a tag to compare

Added:

  • tremolo with standard settings (depth, speed, LFO shape, delay). Now works only for main instrument (or in FM terms for FM carrier). Separate tremolo and vibrato for FM modulator are planned.
  • PWM delay
  • filter slope
  • (courtesy of System64) cosine interpolation for samples. By default linear is used (as before). Basically for most samples linear is still better bc cosine one introduces some unwanted high frequencies in almost all samples I've tested. Mainly useful for tiny sine sample (create 2-step (length = 2) square wave sample and enable cosine interpolation)
  • new section in help window (press F1) where I talk garbage and where ((((somewhen)))) will be some short tips/tutorials
  • Filter cutoff (when you edit instrument's cutoff) is now displayed in Hz in left bottom corner in info line

Changed:

  • Filter cutoff range is extended from 0-7ff to 0-fff. Old songs have their filter cutoff remapped while loading. 29xx command is remapped, all 6xxx commands in old songs are remapped while loading
  • Pulse width range is extended from 0-7ff to 0-fff. Now it works entirely like on C64 (0x100 sounds alike 0xf00, 0x200 is like 0xe00 etc.)
  • ksync is now enabled in default instrument

Fixed:

  • You could not use wave that is longer than 65535 samples in FM properly. Now you can

Known problems:

  • does not load very old songs from examples properly -- lags for 10-30 seconds and then loads garbage or crashes while loading. For now you can download official last klystrack release, open problematic songs there and save them from that release. Then you would be able to load them in klystrack-plus. This problem emerges only with several songs from examples -- what you made in last klystrack release loads properly.
  • fm carrier envelope (which is main instrument envelope) affects modulator volume in additive mode which should not happen.

klystrack-plus v0.5.1

19 Dec 09:38
a3e35c8
Compare
Choose a tag to compare

Added:

  • OPZ 2, 4, 6 and 8 waves presets (they are located after OPL3 7 preset). Done by System64.

Changed:

  • position of number of oscillators control arrows in wavegen (to avoid misclicks because you can lose all your settings (see below))
  • now you can load wavegen presets by just clicking arrows -- no need to click "load"

Fixed:

  • you could not load some wavegen presents because of my dumbass hard-coding version. Now you can

Known problems:

  • does not load very old songs from examples properly -- lags for 10-30 seconds and then loads garbage or crashes while loading. For now you can download official last klystrack release, open problematic songs there and save them from that release. Then you would be able to load them in klystrack-plus. This problem emerges only with several songs from examples -- what you made in last klystrack release loads properly.
  • fm carrier envelope (which is main instrument envelope) affects modulator volume in additive mode which should not happen.

klystrack-plus v0.5

12 Dec 14:26
Compare
Choose a tag to compare

Added:

  • base note and detune (aka finetune) for 2-op fm modulator
  • killing duplicate samples function
  • show analyzer option is now saved in config
  • 1 new demo song by System64 (Magica.kt) and 1 new theme by Ravancloak (Ravancore)

Changed:

  • Lengths of instrument macro and fx chain, song, instrument and wave names are now 255 steps/chars

Fixed:

  • klystrack was crashing when trying to enable catometer analyzer

Known problems:

  • does not load very old songs from examples properly -- lags for 10-30 seconds and then loads garbage or crashes while loading. For now you can download official last klystrack release, open problematic songs there and save them from that release. Then you would be able to load them in klystrack-plus. This problem emerges only with several songs from examples -- what you made in last klystrack release loads properly.
  • fm carrier envelope (which is main instrument envelope) affects modulator volume in additive mode which should not happen.