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
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
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
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
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
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
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
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.txtfiles are added with default registers$00$00$7f$10$00convert.batuses Windows line endingsNon-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
Purpose
Add autotune logic
Affected Issues
Changed
-visualizeadded 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
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
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!
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.
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
octavesetting is now anoctave shift; semantics are slightly differentADSR 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
#pathDRM 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 multiplesamples; defaults to a single sample, just like previouslyAn instrument named
Drumsetis 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
.prjfiles can be opened by double-clicking or as a CLI dashboard argumentSample 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
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
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 Analysischeckbox grayed out for the time beingPreviewwindow button renamedEnvelope Previewto 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
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
samplesStreamlined 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
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
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
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
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
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
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
Purpose
First official release.
Affected Issues
Changed
Decomposed monolithic tox configuration and GH actions
Added
Proper README
Removed
mako,myst-parserdependency
Idiosyncrasies
None.
Release 0.1.0 - 2021-12-23
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