mirror of
https://github.com/vsariola/sointu.git
synced 2025-06-04 01:28:45 -04:00
fix(vm): stereo delay flipped taps for right and left channel
This commit is contained in:
parent
38e9007bf8
commit
33625c6f40
@ -17,6 +17,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
options
|
options
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
- The stereo version of delay in the go virtual machine (executables / plugins
|
||||||
|
not ending with -native) applied the left delay taps on the right channel, and
|
||||||
|
the right delay taps on the left channel.
|
||||||
- The sointu-vsti-native plugin has different plugin ID and plugin name
|
- The sointu-vsti-native plugin has different plugin ID and plugin name
|
||||||
to not confuse it with the non-native one
|
to not confuse it with the non-native one
|
||||||
- The VSTI waits for the gioui actually have quit when closing the
|
- The VSTI waits for the gioui actually have quit when closing the
|
||||||
|
@ -524,9 +524,10 @@ func (s *Interpreter) Render(buffer sointu.AudioBuffer, maxtime int) (samples in
|
|||||||
var index, count byte
|
var index, count byte
|
||||||
index, count, values = values[0], values[1], values[2:]
|
index, count, values = values[0], values[1], values[2:]
|
||||||
t := uint16(s.synth.globalTime)
|
t := uint16(s.synth.globalTime)
|
||||||
|
stackIndex := l - channels
|
||||||
for i := 0; i < channels; i++ {
|
for i := 0; i < channels; i++ {
|
||||||
var d *delayline
|
var d *delayline
|
||||||
signal := stack[l-1-i]
|
signal := stack[stackIndex]
|
||||||
output := params[1] * signal // dry output
|
output := params[1] * signal // dry output
|
||||||
for j := byte(0); j < count; j += 2 {
|
for j := byte(0); j < count; j += 2 {
|
||||||
d, delaylines = &delaylines[0], delaylines[1:]
|
d, delaylines = &delaylines[0], delaylines[1:]
|
||||||
@ -542,7 +543,8 @@ func (s *Interpreter) Render(buffer sointu.AudioBuffer, maxtime int) (samples in
|
|||||||
}
|
}
|
||||||
d.dcFiltState = output + (0.99609375*d.dcFiltState - d.dcIn)
|
d.dcFiltState = output + (0.99609375*d.dcFiltState - d.dcIn)
|
||||||
d.dcIn = output
|
d.dcIn = output
|
||||||
stack[l-1-i] = d.dcFiltState
|
stack[stackIndex] = d.dcFiltState
|
||||||
|
stackIndex++
|
||||||
}
|
}
|
||||||
unit.ports[4] = 0
|
unit.ports[4] = 0
|
||||||
case opCompressor:
|
case opCompressor:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user