CHANGELOG

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


Unreleased

Differences from 0.3.14


Release 0.3.14 - 2023-08-29

CODENAME: Across The River

Well I hear it’s better on the other side

They say you’ll never do it so don’t even try

Well you may be beaten down with your closed mind

But don’t try and make it mine

Release 0.3.14

Differences from 0.3.13

Purpose

Fix “sample groups don’t update w/ custom samples” bug

Affected Issues

  • #256 Sample groups broken w/ custom samples

Changed

  • When custom samples are used, don’t forget to set the sample group

Added

None

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken

  • Broken on python 3.10


Release 0.3.13 - 2023-08-28

CODENAME: The Valley Road

Sometimes I lead, sometimes I follow

This time I’ll go where she wants me to go

Release 0.3.13

Differences from 0.3.12

Purpose

Add custom sample group handling, multisample dynamics, and BRR auditioning

Affected Issues

Changed

  • Default octave shift changed from -1 to 0

  • Current dynamics setting is tracked across sample and instrument changes

  • DC bias removed when computing BRR fundamentals

Added

  • Sample group selection

  • BRR sample auditioning

  • First-use check

  • MS v4.10 drumset file

Removed

  • Docker references

  • old webserver references

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken

  • Broken on python 3.10


Release 0.3.12 - 2023-08-02

CODENAME: Big Enough

AAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHH

AAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHH

AAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHH

AAAAAHHHEEEEEEEHHHHAAAAAAAHHHHHEEEEEEEHHHAAAAAAAHHHHHH

YYYYYYYYYYAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH

AAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHH

Release 0.3.12

Differences from 0.3.11

Purpose

Fix compatibility problem with AMK v1.0.9

Affected Issues

Changed

  • Renamed UI tool to SPaCeMusicW

  • Unused dynamics are set to 0 and sliders are driven to the far left

  • AMK is unzipped to a subfolder in the project during project creation (not noticeable to users)

  • Fixed GH action that publishes Musescore artifacts (not noticeable to users)

  • Addressed mypy, lint, and bandit warnings

Added

  • UI control for starting at rehearsal marks

  • Multisample instrument setting tracking

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken

  • Broken on python 3.10


Release 0.3.11 - 2023-07-09

CODENAME: Domino Dancing

All day, all day

Watch them all fall down

All day, all day

Domino dancing

Release 0.3.11

Differences from 0.3.10

Purpose

Fix issues with auto-tuned non-looping samples and subtle multi-sample bugs

Affected Issues

Changed

  • Non-looping samples are treated as “loop count == 1” for fundamental frequency detection

  • Multisample limit checking is done more carefully

  • Unmapped note detection is handled manually

  • Multisample notehead detection bugs fixed

  • All drum instruments in drm files use voice 0

  • “New version” detection only fires when a newer version is found

Added

  • Custom MuseScore palette for SMW porting

  • AST printer script

  • Musescore artifact upload GH action

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken


Release 0.3.10 - 2023-05-03

CODENAME: Weapon of Choice

Don’t be shocked by the tone of my voice

Check out my new weapon, weapon of choice

Release 0.3.10

Differences from 0.3.9

Purpose

Fix overly aggressive nil tune detection

Affected Issues

Changed

  • Only error on 0 tune for non-builtin samples

Added

None

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken


Release 0.3.9 - 2023-04-29

CODENAME: Rock Me Amadeus

Er hatte wiener Blut

Er war Populär

Er war die Nummer eins

Genau das war sein Flair

Release 0.3.9

Differences from 0.3.8

Purpose

Clean up autotune handling

Affected Issues

Changed

  • Autotune is not attempted when using builtin samples

  • For non-looping brr samples, analyze only the waveform for autotune

  • BRR files in sample packs that are not in !patterns.txt files are added with default registers $00$00$7f$10$00

  • convert.bat uses Windows line endings

  • Non-ADSR gain settings generate the correct binary gain register value

  • Recent projects have their paths resolved

Added

  • Error is generated if a tuning value of 0.0 is used

  • Show verison codename in about window

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken


Release 0.3.8 - 2023-04-27

CODENAME: DiscoVision

You found me again, welcome back

Release 0.3.8

Differences from 0.3.7

Purpose

Add autotune logic

Affected Issues

Changed

  • -visualize added to old project files

Added

  • brr handling logic

  • autotune support

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken


Release 0.3.7 - 2023-04-06

CODENAME: Sabotage

Oh my God, it’s a mirage

I’m tellin’ y’all, it’s a sabotage

Release 0.3.7

Differences from 0.3.6

Purpose

Add ARAM estimation logic

Affected Issues

Changed

  • All projects get #optimized, even if there are no custom samples

Added

  • ARAM utilization graph in bottom right

  • MML and SPC generation steps are run at MusicXML load time

    • Gives you an initial idea of your utilization and any glaring errors

  • BRR file/sample sizes are displayed in UI

  • Ctrl+R as a shortcut for render

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken


Release 0.3.6 - 2023-04-01

CODENAME: La Forme

Inspiration

Expiration

Contraction

Décontraction

La forme

Release 0.3.6

Differences from 0.3.5

Purpose

Finally fix broken initial q values

Affected Issues

Changed

  • Start measure, just do it, render, and reload xml moved to below main UI

    • Makes collapsing the control panel easier to do

  • Changed default articulation settings

Added

  • Instrument q values are set to default when an instrument is chosen

  • Prompt on render option

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken


Release 0.3.5 - 2023-03-30

CODENAME: Cherry Twist

That’s right

Have more rhythm

Woooo!

Release 0.3.5

Differences from 0.3.4

Purpose

Fix new project creation bug

Affected Issues

Changed

Fixed incorrect type conversion

Added

None

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken


Release 0.3.4 - 2023-03-25

CODENAME: I’m Pissed

You won’t like me ‘til I’ve had my dance.

Release 0.3.4

Differences from 0.3.3

Purpose

Add multisample and proper percussion support

Affected Issues

Changed

  • Save file version updated

    • We best-effort an upgrade and save a backup

  • Sample pack selections are cleared when changing to a sample that doesn’t use them

  • Old octave setting is now an octave shift; semantics are slightly different

  • ADSR sliders flipped upside down so “more of X” is higher

  • “Just do it” hotkey changed to Ctrl+Space

  • SPC generation timeout changed to 15s

  • Bail on “just do it” if there was an error in MML or SPC generation

  • Load projects even when no musicxml is found

  • Error on opening missing project files

  • UI elements are cleared on project close

  • Changed pan mid left/right values

  • Custom samples go in a #path

  • DRM file changes to put all instruments on voice 0

    • Added a MuseScore v4 drm file

  • History window title

  • Instrument UI element looks a little different

Added

  • Dark mode

  • Per-note sample definitions

    • This enables using multiple brr files for a single instrument based on a note range

    • Also enables custom percussion kits

    • Now there are instruments, which can have multiple samples; defaults to a single sample, just like previously

    • An instrument named Drumset is auto-populated with a fully featured kit

  • First-class support for percussion, including artic, pan, and dynamics

  • Sample folder watching—new samples are automatically found

  • .prj files can be opened by double-clicking or as a CLI dashboard argument

  • Sample pack and builtin sources are automatically chosen when a sample or builtin is chosen

  • Automatic handling for vanilla vs. custom percussion samples

  • An alert on new releases from github

  • Logic to handle blankl ines and comments in sample packs

  • Render/mixdown button

  • History menu item under “Edit”

  • Versioning to preferences file

  • Logic to remove a glitch at the end of a builtin song

Removed

  • QML plugin

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS

  • All tests are broken


Release 0.3.3 - 2023-03-02

Release 0.3.3

Differences from 0.3.2

Purpose

Incorporate feedback on the v0.3.2 release, mostly feature additions.

Affected Issues

Changed

  • Ties/slurs in triplets no longer broken

  • Juxtaposed slurs/ties no longer broken

  • Fixed “assert on MML generation in non-project mode”

  • Switched to using a Qt resource file for data artifacts

  • Poetry version pinned

Added

  • Project mode UI elements are disabled if AMK and spcplayer aren’t set

    • Tooltips on those elements describe how to set those preferences

  • Icons

Removed

  • All webserver components and dependencies

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS


Release 0.3.2 - 2023-02-27

Release 0.3.2

Differences from 0.3.1

Purpose

Incorporate feedback on the v0.3.1 release, mostly feature additions.

Affected Issues

Changed

  • Preferences hotkey changed to control+,

  • Changed custom samples subdirectory to match the project name

  • Fixed incorrect echo channel ordering

  • Instrument name reported in UI status updates

  • Superloop Analysis checkbox grayed out for the time being

  • Preview window button renamed Envelope Preview to clear up confusion about its purpose

Added

  • Percussion solo/mute functionality

    • Current implementation is stopgap

  • Pan surround support

  • Option to start outputting music after measure 1

    • This implicitly disables loop detection

    • Might behave strangely if there are crescendos that cross the starting measure, or if you start after the initial repeat point and listen across the repeat

  • Advanced mode in preferences

    • When disabled (default), global echo, generate MML, generate SPC, and play SPC UI elements are hidden

    • Defaults to “off”, with global echo defaulted to “on”

  • Explicit warnings when trying to convert a non-existent MML file, or play a non-existent SPC file

  • Tooltips for echo inversion checkboxes

Removed

  • Webserver deployment github action

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS


Release 0.3.1 - 2023-02-20

Release 0.3.1

Differences from 0.3.0

Purpose

Cleanup a few warts in v0.3.0

Affected Issues

Changed

  • Fixed quicklook using non-monospace font on windows

  • Fixed broken undo/redo while working in a project

  • BRR files are placed in a subdirectory of samples

  • Streamlined envelope calculations

  • On project load, first instrument is selected automatically

  • Sample packs now come from a user-provided directory rather than being registered one-by-one

Added

  • Space is a shortcut for “convert and play”

  • Porter and game name entries in the UI

    • These can be pulled in from the score; if used in the UI, those values are overridden

  • Human-readable ADSR/gain values

Removed

None

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS


Release 0.3.0 - 2023-02-19

Release 0.3.0

Differences from 0.2.3

Purpose

First big step towards making this tool a one-stop-shop for porting music. What a difference a year makes.

Affected Issues

Changed

  • Totally reworked UI to use qtdesigner

    • Some reorganization of UI elements

  • Moved python package to beta

Added

  • Project-based workflow

  • Generate and play SPC files directly from UI

  • Native support for BRR samples and sample packs

  • Instrument solo/mute functionality

  • Support for modifying instrument tuning and envelopes

    • Can use both UI elements or raw BRR settings

  • Envelope viewer

  • History viewer

  • Undo/redo support

Removed

  • UI tests

    • These were breaking hard; left them in place, just marked as unused. Can be recovered later.

Idiosyncrasies

  • Lightly tested on windows, watch out for problems on that OS


Release 0.2.3 - 2022-02-27

Release 0.2.3

Differences from 0.2.2

Purpose

Affected Issues

Changed

  • Fix bug where multiple exports in the dashboard broke things spectacularly

  • Moved python package to alpha

  • Strip unicode from instrument names, except flat which goes to ‘b’

Added

  • Quicklook window

  • MML file backup generation

  • Initial vibrato support

  • Logic to support transposing instruments - Temporarily removed due to a bug in music21

  • Testing updates - GUI tests

    • Github action to run tests on windows runners

Removed

None.

Idiosyncrasies

None.


Release 0.2.2 - 2022-02-22

Release 0.2.2

Differences from 0.2.1

Purpose

Fix extra newline problem in output on windows

Affected Issues

Changed

  • Removed extra newlines in .exe-generated MML outputs - This was a side effect of print in text mode on windows

Added

None.

Removed

None.

Idiosyncrasies

None.


Release 0.2.1 - 2022-02-21

Release 0.2.1

Differences from 0.2.0

Purpose

Fix problem in GH publish action—no changes to the codebase.

See Release 0.2.0 for applicable changelog.

Affected Issues

None.

Changed

None.

Added

None.

Removed

None.

Idiosyncrasies

None.


Release 0.2.0 - 2022-02-21

Release 0.2.0

Differences from 0.1.2

Purpose

Major overhaul, adding GUI support and moving towards a completely declarative MML file

Affected Issues

Changed

  • Use ^ for tied notes

  • Volume macro names

  • Instrument-specific octave, volume, pan, artic settings

Added

  • Support for: - AMK loop-point handling

    • Slurs

    • Configurable global legato option

    • Staccato and accents

    • Loop analysis, including labeled loops

    • Repeated note detection

    • Measure numbering

    • Percussion

    • Echo options

    • Mid-staff instrument changes

    • Crescendo/decrescendo

    • Instrument pans

    • Multiple tempos

  • GUI, webserver, and MuseScore plugin UI support

    • Webserver and MuseScore generated outputs include git hash

  • Default @, v, y, q settings

  • Build date/time in generated MML files

  • Checks for note octave and percussion note validity

  • Check for chords

  • Custom instrument/sample boilerplate output

  • Global volume control in GUI

Removed

None.

Idiosyncrasies

None.


Release 0.1.2 - 2021-12-28

Release 0.1.2

Differences from 0.1.1

Purpose

Add support for ties, triplets, dots, and simple dynamics

Affected Issues

Changed

  • Lowered octave mapping by 1

  • Generated file includes tool version number

  • Cleaned up API documentation

Added

  • Support for: - 64th notes

    • Tied notes

    • Triplet notes/rests

    • Grace notes

    • Dynamics levels

    • Dotted notes/rests

  • Test coverage GH, RTD configuration

Removed

None.

Idiosyncrasies

None.


Release 0.1.1 - 2021-12-23

Release 0.1.1

Differences from 0.1.0

Purpose

First official release.

Affected Issues

Changed

  • Decomposed monolithic tox configuration and GH actions

Added

  • Proper README

Removed

  • mako, myst-parser dependency

Idiosyncrasies

None.


Release 0.1.0 - 2021-12-23

Release 0.1.0

Purpose

Unofficial Initial release, published to test.pypi.org for workflow tests only.

Supports:

  • Composer and title metadata

  • Tempo calculation

  • Note and rest decoding

  • Automatic most-common octave and note/rest length detection

  • AMK annotations

Affected Issues