mirror of
https://github.com/vsariola/sointu.git
synced 2025-07-21 06:24:32 -04:00
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:
@ -184,13 +184,13 @@ func ParseAsm(reader io.Reader) (*Song, error) {
|
|||||||
return nil, errors.New("Invalid oscillator type")
|
return nil, errors.New("Invalid oscillator type")
|
||||||
}
|
}
|
||||||
if flags["UNISON4"] {
|
if flags["UNISON4"] {
|
||||||
parameters["unison"] = 4
|
|
||||||
} else if flags["UNISON3"] {
|
|
||||||
parameters["unison"] = 3
|
parameters["unison"] = 3
|
||||||
} else if flags["UNISON2"] {
|
} else if flags["UNISON3"] {
|
||||||
parameters["unison"] = 2
|
parameters["unison"] = 2
|
||||||
} else {
|
} else if flags["UNISON2"] {
|
||||||
parameters["unison"] = 1
|
parameters["unison"] = 1
|
||||||
|
} else {
|
||||||
|
parameters["unison"] = 0
|
||||||
}
|
}
|
||||||
if flags["LFO"] {
|
if flags["LFO"] {
|
||||||
parameters["lfo"] = 1
|
parameters["lfo"] = 1
|
||||||
|
@ -128,7 +128,7 @@ func Synth(patch go4k.Patch) (*C.Synth, error) {
|
|||||||
if unit.Parameters["lfo"] == 1 {
|
if unit.Parameters["lfo"] == 1 {
|
||||||
flags += 0x08
|
flags += 0x08
|
||||||
}
|
}
|
||||||
flags += unit.Parameters["unison"] - 1
|
flags += unit.Parameters["unison"]
|
||||||
values = append(values, byte(flags))
|
values = append(values, byte(flags))
|
||||||
} else if unit.Type == "filter" {
|
} else if unit.Type == "filter" {
|
||||||
flags := 0
|
flags := 0
|
||||||
|
@ -25,10 +25,10 @@ const su_max_samples = SAMPLES_PER_ROW * TOTAL_ROWS
|
|||||||
func TestPlayer(t *testing.T) {
|
func TestPlayer(t *testing.T) {
|
||||||
patch := go4k.Patch{go4k.Instrument{1, []go4k.Unit{
|
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{"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{"mulp", false, map[string]int{}},
|
||||||
go4k.Unit{"envelope", false, map[string]int{"attack": 32, "decay": 32, "sustain": 64, "release": 64, "gain": 128}},
|
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{"mulp", false, map[string]int{}},
|
||||||
go4k.Unit{"out", true, map[string]int{"gain": 128}},
|
go4k.Unit{"out", true, map[string]int{"gain": 128}},
|
||||||
}}}
|
}}}
|
||||||
|
Reference in New Issue
Block a user