Change unison to be in the range of 0 - 3.

With this change, forgetting to initialize unison results in the default behaviour: 0 means one oscillator, 3 means four oscillators in unison.
This commit is contained in:
Veikko Sariola
2020-11-08 10:17:43 +02:00
parent 910bf42da9
commit d5886c0920
3 changed files with 7 additions and 7 deletions

View File

@ -184,13 +184,13 @@ func ParseAsm(reader io.Reader) (*Song, error) {
return nil, errors.New("Invalid oscillator type")
}
if flags["UNISON4"] {
parameters["unison"] = 4
} else if flags["UNISON3"] {
parameters["unison"] = 3
} else if flags["UNISON2"] {
} else if flags["UNISON3"] {
parameters["unison"] = 2
} else {
} else if flags["UNISON2"] {
parameters["unison"] = 1
} else {
parameters["unison"] = 0
}
if flags["LFO"] {
parameters["lfo"] = 1

View File

@ -128,7 +128,7 @@ func Synth(patch go4k.Patch) (*C.Synth, error) {
if unit.Parameters["lfo"] == 1 {
flags += 0x08
}
flags += unit.Parameters["unison"] - 1
flags += unit.Parameters["unison"]
values = append(values, byte(flags))
} else if unit.Type == "filter" {
flags := 0

View File

@ -25,10 +25,10 @@ const su_max_samples = SAMPLES_PER_ROW * TOTAL_ROWS
func TestPlayer(t *testing.T) {
patch := go4k.Patch{go4k.Instrument{1, []go4k.Unit{
go4k.Unit{"envelope", false, map[string]int{"attack": 32, "decay": 32, "sustain": 64, "release": 64, "gain": 128}},
go4k.Unit{"oscillator", false, map[string]int{"transpose": 64, "detune": 64, "phase": 0, "color": 96, "shape": 64, "gain": 128, "type": go4k.Sine, "lfo": 0, "unison": 1}},
go4k.Unit{"oscillator", false, map[string]int{"transpose": 64, "detune": 64, "phase": 0, "color": 96, "shape": 64, "gain": 128, "type": go4k.Sine, "lfo": 0, "unison": 0}},
go4k.Unit{"mulp", false, map[string]int{}},
go4k.Unit{"envelope", false, map[string]int{"attack": 32, "decay": 32, "sustain": 64, "release": 64, "gain": 128}},
go4k.Unit{"oscillator", false, map[string]int{"transpose": 72, "detune": 64, "phase": 64, "color": 64, "shape": 96, "gain": 128, "type": go4k.Sine, "lfo": 0, "unison": 1}},
go4k.Unit{"oscillator", false, map[string]int{"transpose": 72, "detune": 64, "phase": 64, "color": 64, "shape": 96, "gain": 128, "type": go4k.Sine, "lfo": 0, "unison": 0}},
go4k.Unit{"mulp", false, map[string]int{}},
go4k.Unit{"out", true, map[string]int{"gain": 128}},
}}}