mirror of
https://github.com/vsariola/sointu.git
synced 2025-07-23 15:34:52 -04:00
fix(vm)!: first modulate delay time, then notetracking
BREAKING CHANGE: the order of these operations was inconsistent across the different VMs. Go VM was the only one to first modulate and then apply note tracking multiplication. But that made most sense. So now all different VM versions work in this same way.
This commit is contained in:
parent
78fc6302a0
commit
95af8da939
10
CHANGELOG.md
10
CHANGELOG.md
@ -45,6 +45,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
be computed every draw. ([#176][i176])
|
||||
|
||||
### Fixed
|
||||
- BREAKING CHANGE: always first modulate delay time, then apply notetracking. In
|
||||
a delay unit, modulation adds to the delay time, while note tracking
|
||||
multiplies it with a multiplier dependent on the note. The order of these
|
||||
operations was different in the Go VM vs. x86 VM & WebAssembly VM. In the Go
|
||||
VM, it first modulated, and then applied the note tracking multiplication. In
|
||||
the two assembly VMs, it first applied the note tracking and then modulated.
|
||||
Of these two behaviours, the Go VM behaviour made more sense: if you make a
|
||||
vibrato of +-50 cents for C4, you probably want a vibrato of +-50 cents for C6
|
||||
also. Thus, first modulating and then applying the note tracking
|
||||
multiplication is now the behaviour accross all VMs.
|
||||
- Loading instrument forgot to close the file (in model.ReadInstrument)
|
||||
- We try to honor the MIDI event time stamps, so that the timing between MIDI
|
||||
events (as reported to us by RTMIDI) will be correct.
|
||||
|
Reference in New Issue
Block a user