0CC-FamiTracker Mod
Change Log
Written by HertzDevil

Version 0.3.15.3 - May 20 2018

--------------------------------------------------------------------------------

V0.3.15.3 - 05/20/18

Bug fixes:

- Fixed a fatal issue that caused drag and paste operations to create incorrect
   pattern selections



V0.3.15.2 - 05/20/18

Additions:

- Added JSON export (experimental)
- Arpeggio scheme sequence editor now includes a mode selector, use left / right
   mouse button to cycle forward / backward
- Module import options for instruments are grooves are now more granular:
   - Do not import
   - Duplicate and import (same as existing behaviour, indices fill empty slots)
   - Import and overwrite (resources from new module replace existing resources,
      indices do not change)
   - Import missing entries (similar to above, but import only if existing slot
      is not occupied)

Improvements:

- Tracker now uses UTF-8 encoding, this also fixes garbled text at various
   places
- Tracker now retrieves song state when playing a single row
- The following actions are now undoable:
   - Add / remove / rename instrument
   - Swap instruments
   - Clear patterns
- CPU usage display on the performance dialog is now more accurate
- Changing frame count no longer deletes bookmarks beyond the last frame, they
   are now greyed out on the bookmark settings dialog
- Add / Remove DPCM assignment buttons on 2A03 instrument editor now work across
   octaves
- NSF export no longer modifies current document
- Sequence editor now draws straight lines when moving cursor across multiple
   items at once
- Clicking loop or release point on the sequence editor now removes the point on
   the sequence
- 5B noise sequence editor is now closer to 0.5.0 beta's implementation
- Fxx speed / tempo split point is now adjustable on the module properties
   dialog
- DPCM samples and instrument sequences are no longer imported if instruments
   are not imported
- "Spectrum analyzer (fine)" visualizer is now finer than before
- Replaced FDS emulation core with NSFPlay's upstream version
- Replaced Fast Fourier Transform code with new one licensed under MIT

Bug fixes:

- Improved tracker responsiveness when scrolling across multiple patterns
- Fixed unused patterns claiming memory unnecessarily
- Tracker no longer freezes when searching for a non-existent groove index less
   than the current groove index on the song settings panel
- Fixed crash when loading instruments while importing text files
- Fixed crashes when importing FTIs for sequence instruments
- Fixed text exporter writing additional text for FDS instruments
- Tracker now reads N163 FTIs properly that include auto-wave position
   information from 0.5.0 beta (but still does not implement it)
- Fixed find / replace dialog not recognizing hexadecimal strings
- BPM display and wave file renderer no longer run twice as fast
- Drag and drop across tracker instances now displays the correct number of rows
   in the selection
- Fixed tracker erasing pattern selection after dragging and dropping to the
   same location
- Theme import / export now handle hexadecimal strings properly
- Fixed "Clear All" on groove dialog removing groove 1F from the list
- Fixed "Auto arpeggiate chords" option not working when current song is not
   playing
- Fixed row highlight sometimes not aligning with first row of the current
   bookmark region / beginning of the song
- Fixed swap channels dialog sometimes not allowing swap when 2A03 is selected
- Fixed several incomplete error messages when loading invalid modules
- Fixed VRC7 Hxx and Ixx not working if a non-custom patch is played before a
   custom patch
- VRC7 volume meter no longer flickers on "fast" decay rate
- Fixed instrument recorder behaviour on VRC6 PUlse 2
- Fixed "x:y" and "x:y:z" syntax not working with note names for fixed arpeggio
   MML input
- Version checker now always looks for the most recent version number
- Player no longer retrieves song state of current row to be played



V0.3.15.1 - 10/30/17

Bug fixes:
 - Fixed pattern block corruption for songs containing more than 256 rows



V0.3.15.0 - 10/30/17

Important Changes:
 - Custom exporter support has been dropped because of lack of use

Additions:
 - Added the ability to render WAV files from the command line

Improvements:
 - The following actions are now undoable:
    - Changing title / artist / copyright fields
    - Changing comment settings
    - "Populate Unique Patterns"
 - Player now moves to the queued frame if it loops the current pattern
 - Saved modules will now completely skip empty data blocks

Bug fixes:
 - Added workaround for Wine in the instrument editor and the configuration menu
 - Fixed crash from using "x:0" or "x:0:z" entries in sequence editor MML fields
 - Changing to a new song now resets the row marker
 - Tracker no longer queues notes to other channels if auto-arpeggio is enabled
 - Fixed forum link display on the About dialog
 - Reverted a change that caused new notes on N163 channels to sometimes not
    reload the wave with the correct indices
 - Exporting multi-chip NSFs no longer modifies the current module



V0.3.14.5 - 01/16/17

Important Changes:
 - Effect indices are now remapped to match new effects in vanilla 0.5.0 beta
 - 5B implementation is basically complete, so previous 0CC-FT 5B modules may
    become incompatible

Additions:
 - Ported the following features from 0.5.0 beta:
    - Reading 0.5.0 beta FTI instrument files
    - VRC7 Hxx / Ixx / Vxx pattern effects
    - 5B Wxx pattern effect
 - Added one-past-the-end frame editor row

Improvements:
 - Swapped 5B Hxy / Jxx and inverted noise pitch values to match 0.5.0 beta
 - 5B Wxx effect can be used on any 5B channel
 - 5B automatic envelope frequency now rounds off instead of rounds down
 - Exported multichip NSFs no longer contain data for unused sound chips
 - Changes to pattern indices now respect active frame selections
 - Creating a frame selection now always sets the focus to the frame editor
 - BPM display now follows current highlight settings
 - Groove settings dialog now shows a "*" for non-empty grooves

Bug fixes:
 - Fixed tracker failing to read registry settings if the key "FamiTracker" does
    not exist
 - Fixed crashes due to deleting instruments while they are being used by the
    player
 - Fixed tracker crashing when reading from any 0.5.0 beta module containing
    note data on row 0x80 or below
 - Fixed VRC7 channels not resetting the pitch after note cuts during an active
    3xx command
 - Fixed groove settings dialog not restoring previous values after selecting
    "Cancel"
 - Instrument editor now displays "-y" properly for arpeggio schemes
 - Fixed undo operations for changing pattern indices
 - Fixed Ctrl / Shift + Mouse Wheel not working without an active selection in
    the pattern editor while playing with follow mode disabled
 - Fixed "Populate Unique Patterns" command and changes to expansion chip
    configuration erasing song names



V0.3.14.4 - 08/04/16

Bug fixes:
 - Fixed recent file list not updating the registry if cleared without being
    viewed again at least once
 - Fixed Vxx on blank instruments being overridden by instrument duty sequences
 - Fixed most bugs related to portamento effects on the VRC7 channels in the
    tracker



V0.3.14.3 - 08/03/16

Additions:
 - Ported the following features from 0.5.0 beta:
    - Reading 0.5.0 beta FTMs and importing 0.5.0 beta text files
    - 5B Hxx / Ixx / Jxy pattern effects (H and J swapped according to 0CC-FT)
    - && hold instrument command
    - Absolute instrument pitch sequences
    - 64-step instrument volume sequences for VRC6 sawtooth
    - Module global tuning
    - Player bookmark (as "row marker")

Improvements:
 - Ported the following changes from 0.5.0 beta:
    - Sunsoft 5B code using Blip_Buffer
    - MML field entry for 5B noise / mode sequences
    - Removing octave setting in DPCM assignment editor
    - Average BPM display
    - [WIP] Fast volume meter decay rate
    - Saving / loading themes
    - Reset button in mixer configuration menu
    - Registry entry for frame editor font
    - Movable toolbars
 - New tracker identity:
    - Tracker now fully uses "0CC-FamiTracker" as application title and uses its
       own registry key (loads default values from official FamiTracker)
    - New application icon and document icon
    - New visualizer display
 - Added support for DPI scaling
 - Selections in the frame editor now have channel scope
 - Added a command to move the current selection to the active editor window
 - "Paste & Duplicate" and drag & drop cloning for the frame editor now reuse
    common pattern indices within selection
 - Overwrite pasting and range selection commands now work in the frame editor
 - Added a pseudo-term "$$" for MML fields which treats all subsequent terms as
    hexadecimal even without an explicit "$" or "x" prefix
 - Fixed arpeggio sequences may accept note names in the MML field
 - Added buttons to toggle 5B envelope output in the graph editor for 5B noise /
    mode sequences
 - Redone detune dialog
 - "Strict" is now above "Official" for module error levels

Bug fixes:
 - Fixed tracker crashing when retrieving the state of a non-existent groove
 - Fixed pattern editor not allowing C-0 in polyphonic note preview
 - Fixed pattern editor not moving to the new frame after dragging a selection
    outside the current frame
 - Fixed "Left Edge" and "Right Edge" on the pattern editor's horizontal scroll
    bar
 - Fixed tracker using parent directory as last used folder after loading
    multiple instrument files or DPCM samples
 - Fixed N163 instrument wave editor displaying 40 as the wave size if it used
    a wave size of 4
 - Fixed C-1 and C#1 on the search query's note field matching note release and
    note cut respectively
 - Fixed search wildcards not working for insturment and volume fields
 - Fixed search results dialog moving the cursor to the incorrect channel for
    expansion chips
 - Fixed DPCM channel playing note C-0 if it contains an active note after
    retrieving the channel state
 - Fixed "Recall channel state" command crashing on retrieving the state of a
    non-existent groove
 - Fixed instrument recorder not working for the FDS channel
 - Exx effect now works on the triangle channel
 - Fixed VRC6 sawtooth outputting sound in exported NSFs when the instrument
    volume is 0
 - Fixed VRC7 using an incorrect pitch lookup table in exported NSFs
 - Fixed VRC7 not making any sound in exported NSFs after using a note release



V0.3.14.2 - 05/23/16

Additions:
 - Added linear pitch mode (originally from official 0.4.0)
 - Added split keyboard settings dialog

Improvements:
 - Keyboard input now queues notes to different channels of identical type when
    edit mode is disabled
 - Undoable actions now remember the selection information immediately before
    and after performing the action
 - Added "Find All", "Find Previous" and "Replace Previous" commands
 - Added "Selection" as the find / replace scope
 - Changed "Any" effect column scope to "All"
 - "Replace All" and changes to highlight settings are now undoable
 - Register state now uses colours for N163 waveform display
 - Module properties dialog can now insert songs at current position or delete
    multiple songs
 - Added configuration settings item to check for new versions on startup
 - [WIP] Added module error levels
 - Shortcuts menu now checks for conflicts between shortcut commands
 - Alert prompts for non-undoable commands now select "No" as the default
    option
 - Added menu command to clear the most recently used file list
 - Added shortcut to select instrument by typing instrument number

Bug fixes:
 - Fixed file save dialog not displaying .ftm files when saving modified
    untitled files while loading another document
 - Undoable actions no longer overwrite the redo state information every time
    they are undone
 - Transposing and scrolling pattern values no longer create a selection under
    the cursor
 - Fixed Insert and Backspace keys not working properly if an active selection
    spans across multiple frames or does not begin in the current frame
 - Fixed tracker resetting bookmark positions after moving frame up or down
 - Fixed repeat key inputting invalid notes after using ^0 echo buffer access
    note
 - Fixed find query not working if note field contains only note name
 - Fixed replacement query not allowing note cut or note release in the note
    field
 - Fixed find / replace dialog replacing current note if the search query is
    modified after the previous query matched
 - Fixed performance dialog not displaying after opening once and then closing
 - Fixed tracker not stopping notes from keyboard input if octave is changed
    while depressing keyboard key
 - Fixed 2A03 channels not using PAL period table when PAL is used
 - Fixed DPCM channel not playing if a VRC6 or 5B instrument is loaded as the
    current instrument
 - Fixed MMC5 channels not playing sound when switching to another song where
    the period high byte remains unchanged
 - Fixed VRC6 pulse channels and 5B channels using incorrect period tables for
    the instrument recorder
 - DPCM data always outputs to same directory as music data instead of tracker
    root when exporting BIN data and current module contains no DPCM samples
 - Fixed 3xx effect commands causing pitch bends when issued no notes are being
    played on the channel
 - Fixed 3xx effect commands on VRC7 channels ignoring the current octave
    register value
 - Fixed N163 loading the waveform of the currently selected instrument if the
    channel has not used any instrument
 - Fixed VRC7 channels inverting the 4xy vibrato pitch offset in the tracker



V0.3.14.1 - 04/09/16

Improvements:
 - Tracker now pads DPCM samples with invalid size on opening a module
 - Added shortcuts to toggle or solo the currently selected sound chip
 - Vxx effect commands on muted N163 channels now write to the wave buffer when
    retrieving channel state
 - Noise channel now performs slide effects with no pitch limits
 - Cxx effect now finishes playing the current row before halting
 - The 2A03 frame counter is now clocked at exactly 240 Hz (slightly more
    accurate than before)

Bug fixes:
 - Tracker no longer validates invalid notes (according to official build)
 - Fixed frame editor not moving the cursor to the clicked channel when clicking
    on its left/right edges
 - Fixed module properties dialog not moving bookmark lists when moving songs up
    or down
 - Fixed transpose dialog crashing on selecting "Transpose all tracks"
 - Fixed tracker not updating the vibrato table after loading a new module
 - Changing the module's highlight settings or vibrato style is now recognized
    as a file change
 - Fixed DPCM editor not saving changes
 - Fixed VRC7 and 5B not using the refresh rate of the current module
 - Fixed tracker not producing sound after rendering a WAV file until player
    begins
 - Fixed WAV render omitting last tick when rendering by a time amount
 - Fixed find dialog not working properly when some ranges are omitted
 - Fixed FDS and MMC5 not producing sound in exported multichip NSFs unless both
    are enabled
 - Fixed relative instrument arpeggio sequences clipping the channel note at A#7
    in exported NSFs
 - Fixed noise channel clipping at 0-# of an octave below in exported NSFs when
    using download portamentos
 - N163 channels no longer update the wave buffer on every frame
 - Fixed new notes on N163 channels not updating the wave buffer in exported
    NSFs if instrument does not use a wave instrument sequence



V0.3.14.0 - 03/31/16

Additions:
 - Added the *.0cc file extension
 - Added diagnostic information when loading invalid modules
 - Added transpose dialog

Improvements:
 - 2A03 instruments now implement the instrument interface
 - FDS instruments are compatible with other channels (as untyped sequence
    instruments)
 - Multichip NSFs now skip writing to registers of unused sound chips
 - Implemented FDS Zxx in exported NSFs
 - Reordered main frame menu for clearer organization
 - Re-added fine spectrum visualizer

Bug fixes:
 - Fixed document wrapper for custom exporters crashing when retrieving a non-
    existent instrument
 - Fixed tracker crashing after importing any FTM containing bookmarks
 - Fixed custom exporters crashing due to incompatible interface layouts
 - Fixed DPCM functions in document wrapper crashing the tracker if the queried
    sample does not exist
 - Fixed certain multichip exported NSFs crashing due to VRC6 overwriting the
    driver code in presence of FDS
 - Fixed tracker ignoring "Backup files" option
 - Fixed find / replace dialog not clearing wildcard effect name cache on new
    searches
 - Selection now always moves to current frame if multi-frame selection is
    disabled (according to official build)
 - Fixed selection with Shift + arrow keys allowing selection across frame
    boundaries when option is disabled
 - Fixed Shift + arrow keys not selecting entire rows when compact mode is
    enabled
 - Fixed selection errors when overflow paste mode is disabled
 - Fixed 2A03 instrument not copying delta offset values on cloning
 - Fixed BPM display showing values above maximum tempo at current refresh rate
 - Fixed VRC6 channels sometimes generating an extra click on starting



V0.3.13 - 11/16/15

Additions:
 - Added a command to create new instruments by recording the output of certain
    channels as instrument sequences
 - Instruments of all sound chips (except FDS and VRC7) are compatible

Improvements:
 - "Retrieve channel state" now respects Fxx and Oxx effects, as well as current
    groove position
 - Tracker now stops retrieving channel states after encountering a Cxx effect
 - Added ranges to the search query and the ability to search fields that do not
    match parts of the query
 - Pressing a note key always previews the current instrument even when cursor
    is not on the note column when edit mode is disabled
 - Ctrl + Left/Right now shifts the phase of the current wave in the FDS / N163
    wave editor, Ctrl + Down inverts the wave

Bug fixes:
 - [11/30/15 interim build] A00 command now updates the channel default volume
    for subsequent Axy and Mxy effects
 - [11/28/15 interim build] Multichip NSFs no longer crash due to FDS allowing
    VRC6 and VRC7 to modify the driver code
 - [11/26/15 interim build] Fixed VRC6 and 5B channels not silencing when the
    insturment sequence volume is 0 in exported NSFs
 - [11/21/15 interim build] Fixed instrument recorder crashing when a new FTM
    is loaded
 - Cleanup actions that alter the pattern data always reset the undo history
 - Fixed various memory leaks
 - Copying selection as plain text now empties unselected columns properly
 - Text export now writes unused N163 channels to output file according to the
    behaviour of official build
 - Fixed text importer not allowing "^-0" in pattern note field
 - Added ".-#" wildcard for search query for the noise channel
 - Fixed horizontal tab character not working in sequence editor MML field
 - Fixed arpeggio scheme text field parsing "+x y..." as "+y y..."
 - Fixed FDS instrument editor registering a file change on opening if the
    current instrument uses any non-zero FM parameter
 - 7xy effect on VRC6 sawtooth channel matches NSF behaviour (clip at volume 34
    if V01 is set and volume underflows)
 - N163 Z7F command now takes effect immediately
 - Fixed incorrect slide effect parameters from recalling N163 channel state
 - Fixed Zxx on N163 channels in exported NSFs being cancelled by loading new
    instruments
 - Fixed MMC5 Pulse 2 not halting when MMC5 Pulse 1 is muted in multichip NSFs
 - Fixed the above bug crashing NSFs containing the FDS chip
 - Fixed 1xx, 2xx, 3xx effects becoming 1/4 as fast on N163 in exported NSFs



V0.3.12 - 10/17/15

Additions:
 - Added FDS automatic frequency modulation effects
 - Bookmark manager no longer crashes
 - Added a menu command to swap pattern data of two channels in the FTM

Improvements:
 - Added a menu command that displays the estimated song duration
 - Pattern editor does not play notes from keyboard input while playing with
    edit mode enabled and follow mode disabled
 - Selections in compact view always include all columns in selected channels
 - Arpeggio scheme sequence editor now displays the arpeggio type of the term
    below the mouse cursor properly
 - Arpeggio scheme sequence editor can now set the arpeggio type from the graph
    editor (by holding numpad 0 - 3)
 - Register display now highlights recent register writes, blue for new values,
    red for old values
 - Groove settings dialog allows direct text input and copying grooves as Fxx
    effect pattern data
 - Added a context menu command for the VRC7 instrument editor to copy the
    current instrument as plain text values

Bug fixes:
 - Tracker no longer crashes upon loading FTMs that contain patterns with zero
    non-empty rows
 - Tracks using fixed tempo now always allow speed values up to 255
 - Fixed pattern editor not resetting the selection area when using Shift key to
    create a new selection
 - Fixed pattern editor not resetting the selection area after cursor crosses
    frames while playing with follow mode enabled
 - Fixed tracker not moving bookmark tables appropriately after tracks are moved
    or removed on the track list
 - Fixed text importer erroneously enabling default groove for random tracks
 - Fixed "Any" as effect column scope not working in Find / Replace dialog
 - Fixed Module Properties dialog removing the FDS channel upon confirmation
 - Fixed Module Properties removing channels to the right of N163 when changing
    only the number of N163 channels
 - Fixed 2A03's nonlinear mixing sometimes applying even while channel is muted
 - Fixed inactive N163 channels loading the waveform of the currently selected
    instrument upon playing
 - Fixed wave export rendering extra rows upon encountering skip effects
 - Fixed VRC7 instrument editor showing -6 dB / oct instead of -3 dB / oct for
    the rate scale settings
 - Fixed 2A03 Pulse 1's state not being retrieved
 - Fixed NSFs with certain expansion chip configurations crashing
 - Fixed Axy and Mxy resetting the channel volume incorrectly
 - Fixed N163 Zxx effect not setting the correct wave position in exported NSFs



V0.3.11r1 - 07/12/15

Improvements:
 - Added simple wildcard for search query ("." character)

Bug fixes:
 - Pasting single-channel pattern data that begins from a channel volume column
    no longer moves the target selection area depending on the cursor position
 - Pasting single-channel effect data no longer moves the target selection area
    if the cursor is outside the effect columns
 - Fixed paste undo applying to as many effect channels as 2A03 Pulse 1 has for
    single-channel effect clip data
 - Fixed Find / Replace dialog crashing upon any action
 - Effect search queries without effect parameter now work properly
 - Fixed Mxy effect not resetting to the default channel volume in exported NSFs
 - Fixed ^0 echo buffer access retrieving incorrect notes outside 2A03 Pulse 1
    in exported NSFs



V0.3.11 - 07/09/15

Additions:
 - Added pattern bookmark manager and go to dialog

Improvements:
 - Added a visual waveform manager for the N163 instrument editor
 - Added an option in the configuration menu to disable selections across frames
 - FTM import now allows importing FTMs with different expansion chips
 - "Pick Up Row" now updates the last used values of all columns for repeat key
 - "Copy As Plain Text" now includes header row containing channel names
 - "Recall Channel State" now respects several run-time effects while playing
 - Loop points of instrument sequences can be placed after release points

Bug fixes:
 - Tracker can no longer open more than one performance dialog or groove
    settings dialog
 - Added temporary fix for the tracker not setting up painting buffers properly
    after resizing
 - Fixed pattern operations not working properly when the current selection
    spans across any frame with only one row
 - Fixed several pattern operations improperly applying undo to the first row of
    the track
 - Fixed stretching, transposition, and Shift + Mouse Wheel overwriting itself
    incorrectly for selections spanning across truncated frames
 - Fixed "Copy As Plain Text" removing first few columns from the first channel
 - Implementation for "Copy As PPMCK MML" is complete
 - Fixed period/frequency values being written to several expansion chips when
    no note is active
 - Fixed Qxy and Rxy being swapped on the noise channel
 - Fixed N163 instrument editor not forcing the wave buffer to update
 - Fixed Sxx effect on the DPCM channel resetting the 2A03 Pulse 1's period low
    byte
 - Fixed Vxx in any N163 channel affecting other N163 channels (reverted to the
    Vxx behaviour in official builds)
 - Fixed VRC7 detune table not being exported to NSFs



V0.3.10 - 06/02/15

Additions:
 - Added Exx effect for the FDS channel's hardware volume envelope control
 - Added a hotkey to recall the current channel state on the status bar
 - Added fixed tempo support, which ignores tempo and directly uses the speed
    value as the number of ticks per row

Improvements:
 - Increased frame limit and pattern limit to 256
 - Added menu commands to copy the current selection as volume sequence, text or
    PPMCK MML (from official 0.3.5)
 - Added keyboard shortcut and menu entry for compact view mode
 - Added keyboard shortcuts and menu entries for selection in various scopes
 - Echo buffer command "^0" is now allowed
 - Moved DPCM states to "Display register state"

Bug fixes:
 - Application title is finally set to "0CC-FamiTracker"
 - Fixed undo issues with paste command and drag/drop paste
 - Fixed tracker initiating drag operations at an incorrect position if the
    selection is created by dragging from right top to left buttom or vice versa
 - Fixed tracker crashing while copying the selection as a volume sequence if
    the selection begins at the first row of the track
 - Fixed paste command not applying to all columns of the last channel in the
    pattern editor
 - Fixed paste operations applying an incorrect selection if the clip data only
    contains effect commands
 - Removed flicker in "Display register state"
 - "Display register state" no longer shows information of non-existent N163
    channels
 - Tracker no longer retrieves channel states from non-existent channels
 - Tracker no longer retrieves channel states from the current position before
    switching to a new song while playing
 - Fixed 2A03 channels incorrectly retrieving states of hardware effects
 - Tracker properly retrieves states of the correct channels when some channels
    are muted
 - Tracker now blocks row insertion/deletion when edit mode is disabled
 - Fixed reverse command crashing the tracker when a fx4 column is selected as
    the last column
 - "Remove Unused Instruments" now respects instruments with disabled sequences
 - Fixed frame editor incorrectly updating the value of the current pattern if
    the cursor is moved by the mouse before modifying the first digit
 - Fixed detune dialog displaying FDS frequencies at the incorrect octave
 - Fixed notes not producing sound after EE0 cancels the length counter until
    the high frequency byte is updated
 - Fixed length counter not working in MMC5 channels
 - Exx effects no longer reset the linear counter on the triangle channel
 - Triangle channel's linear counter value now resets to 0x7F before playing
 - Fixed T7y effect not working in the tracker
 - Fixed Txy effect not applying transpose to the echo buffer when the note
    transposes downwards
 - Fixed N163 channels inverting the 4xy vibrato pitch offset in the tracker
 - Fixed the tracker exporting invalid pattern data when exporting the triangle
    channel's length counter effect
 - Fixed E00 - E1F length counter effects not working in exported NSFs
 - Fixed A00 improperly resetting the channel volume when the Mxy effect is not
    used in exported NSFs
 - Fixed Sxx and Lxx effects being applied to future notes in exported NSFs
 - ASM export no longer crashes 0CC-FamiTracker
 - WAV and NSFe export now handle track durations properly when disjoint parts
    of the same frame are visited twice in a loop



V0.3.9 - 04/12/15

Additions:
 - Selection can now span across frame boundaries
 - Added several special pasting modes
 - Added an option in the configuration menu to retrieve the current state of
    all channels from previous rows
 - Added a compact view mode which displays only the note fields in the pattern
    editor and hides all other columns

Improvements:
 - Ported to the version of NSF driver used in official FamiTracker 0.4.6
 - The configuration menu's general tab is re-organized
 - Added an option in the configuration menu to allow pasting to continuously
    write to subsequent frames
 - Added an option in the configuration menu to display rows skipped by global
    effects
 - Added an option in the configuration menu to use the extra keys on the
    numpad as hexadecimal digits
 - The colours of the current row in the pattern editor can now be configured
 - The pattern editor's font size can now be set between 5 and 30 inclusive
 - The pattern editor's rendering is slightly improved
 - Added a cleanup command to populate all frames with unique pattern copies
 - "Preview next/previous frames" now displays all frames above and below the
    current frame
 - The pattern editor now highlights inapplicable effects in red
 - Automatic scrolling in the pattern editor can now move diagonally
 - Clicking previous or next frames moves the cursor to the row below the mouse
    cursor
 - Ctrl+Clear key now deletes entire note
 - Pasting now supports the Impulse Tracker edit style (any field on the note,
    instrument or volume column registers as non-empty)
 - Interpolation now works on all pattern columns, as well as effects that take
    multiple parameters
 - Added a stretch selection command which generalizes expanding and shrinking
 - Added keyboard commands to scroll the values of current selection by 0x10
    (data entry up/down coarse in ModPlug)
 - The frequency displays below the register displays now use note values
 - The tracker completely blocks all operations in the pattern editor that
    modify pattern data when the edit mode is disabled
 - The N163 wave memory is now graphically displayed along the wave registers
 - Sequence MML field now accepts "L" for loop point and "R" for release point
    (like NSDL)
 - Sequence MML field now splits hexadecimal strings into signed bytes
 - The N163 wave buffer effect is renamed to Zxx

Bug fixes:
 - Program now displays properly on higher DPI settings
 - Fixed the register display showing notes below octave 1 improperly
 - Fixed the register display evaluating incorrect notes for the 2A03 channels
    when PAL is selected
 - Fixed the register display drawing a bar for the DPCM channel even when no
    note is being played
 - The frequency displays below the register displays now use the correct order
    of N163 channels
 - Fixed "Remove unused DPCM samples" detecting sample usage incorrectly
 - The pattern editor's cursor now moves by the correct number of steps across
    frames that have been shortened when using arrow keys or the mouse wheel
 - The pattern editor always displays the current frame up to the row being
    played if follow mode is enabled, disregarding skip effects above the row
 - Fixed incorrect behaviour of editing the instrument column when the ModPlug
    Tracker edit style is enabled
 - Fixed a bug where decreasing the number of effect columns hides the cursor if
    it is on the effect column just removed
 - Fixed full row selection selecting hidden effect columns of the last channel
 - Fixed Shift + Mouse Wheel applying to an incorrect area after a selection is
    cancelled by clicking within the selection
 - Fixed Numpad Plus key incorrectly incrementing the cursor's data field to
    blank data
 - Pasting no longer applies to hidden effect columns and rows hidden by global
    effects when "Preview next/previous frames" is enabled
 - Interpolation no longer works on effect columns if the beginning and ending
    effect commands do not match
 - Transposing a selection no longer affects the echo buffer access notes
 - Fixed "Expand selection" overwriting one row outside the selection if the
    number of selected rows is odd
 - Expand, shrink, Backspace delete, and Replace instrument now apply only to
    columns within the selection
 - Fixed Replace All crashing the tracker or not updating the pattern editor
    view after replacement
 - Fixed a bug where Replace All searches the same row more than once
 - Fixed effect query on the Find / Replace tab not behaving properly when the
    effect column scope is set to "All"
 - Both the Find / Replace tab and the text importer now accept the N163 wave
    buffer effect
 - Disabled FTM import loading tracks with a different number of N163 channels
    than the current module to incorrect channels when 5B or VRC7 is also used
 - Fixed groove settings allowing negative speed values
 - Fixed incompatible behaviour of Qxy and Rxy by realizing the portamento
    effects as instantiations of 3xx automatic portamento
 - Fixed Qxy and Rxy not working in Sunsoft 5B in the tracker
 - Echo buffer no longer converts the note cut to an invalid note
 - Echo buffer no longer converts blank entries to invalid notes when they are
    modified by transposing effects
 - Fixed 2A03 hardware sweep units not resetting properly for Hxy/Ixy effects
 - Fixed FDS-only NSFs corrupting during export
 - Fixed bankswitched multichip NSFs corrupting during export
 - Fixed Txy not working in exported NSFs
 - Fixed the tracker sometimes not exporting Mxy effects to NSFs
 - Fixed the tracker exporting invalid pattern data when the N163 wave buffer
    effect has an out-of-bound parameter



V0.3.8 - 02/16/15

Additions:
 - Added Txy delayed transpose effect
 - Added an option to export raw data of all non-empty rows as CSV
 - Effect hints now appear after updating a pattern effect command
 - Added a menu command to remove all unused DPCM samples and DPCM assignments

Improvements:
 - Ported to official FamiTracker 0.4.6 and NSF driver 2.11
 - "Display register state" supports Nintendo MMC5, Konami VRC7, and Sunsoft 5B
 - "Display register state" shows human-readable channel information for all
    expansion chips
 - "Display register state" skips non-existent N163 channels in the volume/
    frequency display
 - FDS channel now uses the same volume table as exported NSFs, but an option in
    the configuration menu is added to use the old table in the tracker
 - Added an option in the configuration menu to cut sub-volume at volume 1 when
    Axy or 7xy is active on a channel
 - Pressing the Repeat key moves the cursor down on all pattern fields, except
    when using the Modplug tracker edit style
 - Added hotkey to duplicate the current non-empty pattern below the cursor to
    the first unused pattern of the channel
 - FTM import now supports detune tables and groove tables
 - Sequence MML field now accepts "'" single quotation mark for repeating terms
 - The Sunsoft 5B's volume level can now be modified in the chip mixer
 - MMC5 can now output sound when the period register is below 0x008
 - The status bar now displays the current row and frame index in hexadecimal
    numbers when "Show row numbers in hex" is enabled
 - Qxy and Rxy now affect the first entry of the echo buffer immediately

Bug fixes:
 - Sunsoft 5B channels no longer desync upon playing
 - Fixed a bug with the Lxx effect where no note release is issued if the non-
    release parts of the instrument sequences have not finished
 - Fixed Mxy not resetting the channel volume to the previous one in the tracker
    if it is interrupted by an Axy effect that is cancelled with an A00 on the
    same row as the new note
 - Fixed a bug where Yxx on the DPCM channel affects the N163 chip when there
    are fewer than 8 N163 channels
 - Effect S7F works properly in exported NSFs
 - Detune settings dialog no longer writes detune tables upon clicking "Cancel"
 - Fixed FTM import not accepting Sunsoft 5B instruments
 - Replacement query now handles expansion chip-specific effects correctly



V0.3.7 - 01/18/15

Additions:
 - Added Yxx wave buffer access for N163 channels
 - Added Find / Replace tab

Improvements:
 - Added information panel for the detune settings dialog
 - Added hotkey configuration for the Volume Mask command
 - Each N163 instrument can hold more than 512 samples in exported NSFs
 - Added warning upon removing expansion chips from the current FTM
 - Double-clicking the pattern editor does not create a selection if the step
    size is zero
 - Both the effect type and parameter are remembered together when recalled
    later using the Repeat key

Bug fixes:
 - Fixed a bug where the text importer could not load N163 instruments with a
    wave size of larger than 128
 - Fixed Shift + Mouse Wheel sometimes not working when "Warp pattern values" is
    not checked in the configuration menu
 - Fixed truncation error of the Tune button in the detune settings dialog



V0.3.6 - 01/09/15

Additions:
 - Added ad-hoc support for NSF export using multiple expansion chips
 - Added delayed channel volume effect in FamiTracker

Improvements:
 - Improved Shift + Mouse Wheel behaviour
 - Shift + Mouse Wheel wraps values only when the corresponding configuration is
    checked (disabled by default)
 - Instruments reset the 0xy effect's counter when it plays an arpeggio scheme
 - "x" and "y" are case-insensitive in the arpeggio scheme MML input box

Bug fixes:
 - When "Preview next/previous frame" is checked, 0CC-FamiTracker now moves to
    the previous channel properly using the up arrow key when the step size is
    larger than 1 and the channel contains a Bxx, Cxx, or Dxx command
 - Fixed expansion chip-exclusive effects not being properly exported to NSFs
 - Fixed Shift + Mouse Wheel sometimes editing multiple values despite having no
    pattern selection
 - FDS detune table is now in correct pitch when automatically generated by the
    cent offset in the detune settings dialog
 - Fixed expansion chip selector sometimes not removing pattern data in newly
    created channels when both the expansion chip combination and the number of
    N163 channels have been modified



V0.3.5 - 01/01/15

Additions:
 - Added echo buffer
 - Added support for NSFe export
 - Added delayed channel volume effect (implemented in ASM only)
 - Added specs.txt

Improvements:
 - Text importer and exporter now supports detune tables and grooves
 - Text importer now allows retry / ignore upon encountering an unknown command
 - Blank field dash and row number are properly aligned to the centre

Bug fixes:
 - Fixed N163 NSF export not working
 - Text importer uses the correct form of channel-exclusive effects sharing the
    same letter (H, I, J)
 - Fixed the groove settings dialog sometimes resetting the song speed
 - Fixed 0CC-FamiTracker not reading Oxx effects when the channel is muted
 - Fixed exported NSFs freezing upon using groove 00 as the default groove
 - Fixed configuration volume not affecting Sunsoft 5B channels
 - 0CC-FamiTracker can now save and load Sunsoft 5B instruments



V0.3.4 - 12/28/14

Additions:
 - Added groove settings
 - Added GROOVES block in FTM format

Improvements:
 - Namco 163 can use unused registers for the waveform memory when there are
    fewer than 8 N163 channels (up to 240 samples if there is only one channel)
 - 0CC-FamiTracker now skips sequence, instrument and DPCM blocks upon saving if
    these blocks contain no data

Bug fixes:
 - Fixed note cut not working on Sunsoft 5B channels in exported NSFs
 - Fixed Qxy and Rxy not working properly on the noise channel



V0.3.3 - 12/25/14

Additions:
 - Added Exx effect for hardware envelope and length counter control
 - Added Sxx effect for 2A03 triangle channel linear counter
 - Added two demo FTMs demonstrating the 2A03 hardware features

Improvements:
 - 2A03 hardware sweep emulation is more accurate
 - Sunsoft 5B channels are properly tuned
 - Sunsoft 5B uses a subtractive volume table to handle its exponential volume
 - Shift + Mouse Wheel can alter individual values of two-parameter effects
 - Shift + Mouse Wheel can now wrap values upon overflowing

Bug fixes:
 - Noise channel no longer halts in pitch slides and relative arpeggio sequences
    due to the channel notes' intrinsic octave and pitch
 - Fixed the 2A03 hardware envelope's divider not being properly reloaded
 - Shift + Mouse Wheel now works properly when selection spans across channels
 - Fixed expansion chip selector not removing pattern data in newly created
    channels



V0.3.2 - 12/20/14

Additions:
 - Added DETUNETABLES block in FTM format
 - Implemented detune settings dialog

Improvements:
 - Default N163 pitch table is more accurate
 - Default VRC7 pitch table is more accurate (this is already implemented in the
    official FamiTracker releases)
 - Removed detune table for Sunsoft 5B (now identical to 2A03 / NTSC)

Bug Fixes:
 - Fixed a bug where the Lxx parameter in exported NSFs is 1 larger than in FTM



V0.3.1 - 12/16/14

Bug Fixes:
 - Fixed Vxx not working on 5B channels
 - Fixed 5B noise mode sequences not working in NSF export



V0.3.0 - 12/15/14

Additions:
 - Added full support for the Sunsoft 5B expansion chip
 - Added expansion chip selector from ipi's build
 - Added one demo FTM demonstrating the 0CC-FamiTracker implementation of the
    Sunsoft 5B chip
 - Added one demo FTM demonstrating the Lxx effect

Improvements:
 - Frame editor returns to the first channel after modifying the pattern index
    on the last channel
 - NSFs can be exported in linear mode (they were forced in bankswitching mode
    since the first version)



V0.2.4 - 12/11/14

Additions:
 - Added one demo FTM demonstrating the tempo fix
 - Added detune settings (implemented in V0.3.2)

Bug Fixes:
 - Fixed tempo truncation error in FamiTracker
 - Fixed Lxx not working on the DPCM channel



V0.2.3 - 12/07/14

Additions:
 - Sunsoft 5B envelope toggle is now incorporated into instrument duty sequences
 - Vxx for the Sunsoft 5B channels, same effect as 5B duty sequence entry

Improvements:
 - Status bar now shows the combination of expansion chips in multichip FTMs
 - 0CC-FamiTracker now removes all unused sequences upon removing unused
    instruments
 - Undo reverts the "file is modified" flag if the original state of the FTM can
    be restored

Bug Fixes:
 - Fixed scrolling during drag-and-drop when there are a lot of channels
 - 0CC-FamiTracker now uses the QWERTY key code constants
 - 0CC-FamiTracker can now load FTMs using all six expansion chips
 - 0CC-FamiTracker no longer considers instruments used with no notes unused
    during clean up
 - FDS instruments no longer set the "file is modified" flag upon editing if
    they use frequency modulation
 - N163 instruments no longer set the "file is modified" flag upon editing if
    there is more than one waveform



V0.2.2 - 12/03/14

Additions:
 - Ctrl+Shift+M now toggles Namco 163 multiplexer emulation, enabled by default
 - Namco 163 waveforms can be up to 128 samples long

Improvements:
 - Multichip FTMs load properly when there are fewer than 8 N163 channels
 - Instrument editor always moves the pattern editor cursor to one of the
    instrument's channel(s) whenever the cursor is on a different chip
 - The resource file now uses English (United States) as the language for all
    files instead of Swedish (Sweden)
 - Better easter egg
 - N163 waves automatically prevent reading from the non-wave registers

Bug Fixes:
 - Fixed NSF export bug for FDS and N163 which use invalid pitch table pointers
 - Fixed NSF export bug for VRC7 where VRC7 channels are two octaves lower
 - Lxx effect no longer affects new notes, only existing notes



V0.2.1 - 11/29/14

Additions:
 - Added an easter egg (included in source code since V0.3.8)

Improvements:
 - Arpeggio sequence graph editor initializes at the correct vertical position
    in Scheme mode

Bug Fixes:
 - Fixed a bug where arpeggio schemes cannot be input using the MML field



V0.2.0 - 11/28/14

Additions:
 - Added the ability to read custom pitch tables
 - Added delayed note release effect (Lxx)

Bug Fixes:
 - Program now displays properly on higher DPI settings



V0.1.1 - 09/14/14

Improvements:
 - MML field now displays arpeggio schemes with "x" and "y" properly
 - MML field accepts "+x" and "+y" as terms

Bug Fixes:
 - Arpeggio sequence graph editor will not affect "x" and "y" in sequence terms
 - Fixed a bug that treats negative numerals in front of terms incorrectly



V0.1.0 - 09/12/14

Additions:
 - Initial release
 - Added arpeggio schemes
 - 5 demo FTMs, one with permission from ipi



--------------------------------------------------------------------------------

For enquiries mail to nicetas.c@gmail.com
