diff --git a/.gitignore b/.gitignore index d2c7df4..d3b7797 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ build32/ build64/ out/ .cache/ +go4k/actual_output/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 779ad19..db2b01c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ set(STATICLIB sointu) add_library(${STATICLIB} render.asm) set_target_properties(${STATICLIB} PROPERTIES LINKER_LANGUAGE C) target_link_libraries(${STATICLIB} ${HEADERLIB}) -target_compile_definitions(${STATICLIB} PUBLIC SU_USE_INTROSPECTION) +target_compile_definitions(${STATICLIB} PUBLIC SU_USE_INTROSPECTION RUNTIME_TABLES) # We should put examples here # add_subdirectory(examples) diff --git a/go4k/asmformat.go b/go4k/asmformat.go new file mode 100644 index 0000000..3944f30 --- /dev/null +++ b/go4k/asmformat.go @@ -0,0 +1,226 @@ +package go4k + +import ( + "bufio" + "errors" + "fmt" + "io" + "regexp" + "strconv" + "strings" +) + +func ParseAsm(reader io.Reader) (*Song, error) { + var bpm int + scanner := bufio.NewScanner(reader) + patterns := make([][]byte, 0) + tracks := make([]Track, 0) + var patch Patch + var instr Instrument + paramReg, err := regexp.Compile(`([a-zA-Z]\w*)\s*\(\s*([0-9]+)\s*\)`) // matches FOO(42), groups "FOO" and "42" + if err != nil { + return nil, err + } + parseParams := func(s string) (map[string]int, error) { + matches := paramReg.FindAllStringSubmatch(s, 256) + ret := map[string]int{} + for _, match := range matches { + val, err := strconv.Atoi(match[2]) + if err != nil { + return nil, fmt.Errorf("Error converting %v to integer, which is unexpected as regexp matches only numbers", match[2]) + } + ret[strings.ToLower(match[1])] = val + } + return ret, nil + } + flagsReg, err := regexp.Compile(`FLAGS\s*\(\s*(\s*\w+(?:\s*\+\s*\w+)*)\s*\)`) // matches FLAGS ( FOO + FAA), groups "FOO + FAA" + if err != nil { + return nil, err + } + flagNameReg, err := regexp.Compile(`\w+`) // matches any alphanumeric word + if err != nil { + return nil, err + } + parseFlags := func(s string) map[string]bool { + match := flagsReg.FindStringSubmatch(s) + if match == nil { + return nil + } + ret := map[string]bool{} + flagmatches := flagNameReg.FindAllString(match[1], 256) + for _, f := range flagmatches { + if f != "NONE" { + ret[f] = true + } + } + return ret + } + wordReg, err := regexp.Compile(`\s*([a-zA-Z_][a-zA-Z0-9_]*)([^;\n]*)`) // matches a word and "the rest", until newline or a comment + if err != nil { + return nil, err + } + numberReg, err := regexp.Compile(`-?[0-9]+|HLD`) // finds integer numbers, possibly with a sign in front. HLD is the magic value used by sointu, will be interpreted as 1 + if err != nil { + return nil, err + } + parseNumbers := func(s string) ([]int, error) { + matches := numberReg.FindAllString(s, 256) + ret := []int{} + for _, str := range matches { + var i int + var err error + if str == "HLD" { + i = 1 + } else { + i, err = strconv.Atoi(str) + if err != nil { + return nil, err + } + } + ret = append(ret, i) + } + return ret, nil + } + toBytes := func(ints []int) []byte { + ret := []byte{} + for _, v := range ints { + ret = append(ret, byte(v)) + } + return ret + } + unitNameMap := map[string]string{ + "SU_ADD": "add", + "SU_ADDP": "addp", + "SU_POP": "pop", + "SU_LOADNOTE": "loadnote", + "SU_MUL": "mul", + "SU_MULP": "mulp", + "SU_PUSH": "push", + "SU_XCH": "xch", + "SU_DISTORT": "distort", + "SU_HOLD": "hold", + "SU_CRUSH": "crush", + "SU_GAIN": "gain", + "SU_INVGAIN": "invgain", + "SU_FILTER": "filter", + "SU_CLIP": "clip", + "SU_PAN": "pan", + "SU_DELAY": "delay", + "SU_COMPRES": "compressor", + "SU_SPEED": "speed", + "SU_OUT": "out", + "SU_OUTAUX": "outaux", + "SU_AUX": "aux", + "SU_SEND": "send", + "SU_ENVELOPE": "envelope", + "SU_NOISE": "noise", + "SU_OSCILLAT": "oscillator", + "SU_LOADVAL": "loadval", + "SU_RECEIVE": "receive", + "SU_IN": "in", + } + for scanner.Scan() { + line := scanner.Text() + macroMatch := wordReg.FindStringSubmatch(line) + if macroMatch != nil { + word, rest := macroMatch[1], macroMatch[2] + switch word { + case "define": + defineMatch := wordReg.FindStringSubmatch(rest) + if defineMatch != nil { + defineName, defineRest := defineMatch[1], defineMatch[2] + if defineName == "BPM" { + ints, err := parseNumbers(defineRest) + if err != nil { + return nil, err + } + bpm = ints[0] + } + } + case "PATTERN": + ints, err := parseNumbers(rest) + if err != nil { + return nil, err + } + patterns = append(patterns, toBytes(ints)) + case "TRACK": + ints, err := parseNumbers(rest) + if err != nil { + return nil, err + } + track := Track{ints[0], toBytes(ints[1:])} + tracks = append(tracks, track) + case "BEGIN_INSTRUMENT": + ints, err := parseNumbers(rest) + if err != nil { + return nil, err + } + instr = Instrument{NumVoices: ints[0], Units: []Unit{}} + case "END_INSTRUMENT": + patch = append(patch, instr) + } + if unittype, ok := unitNameMap[word]; ok { + instrMatch := wordReg.FindStringSubmatch(rest) + if instrMatch != nil { + stereoMono, instrRest := instrMatch[1], instrMatch[2] + stereo := stereoMono == "STEREO" + parameters, err := parseParams(instrRest) + if err != nil { + return nil, fmt.Errorf("Error parsing parameters: %v", err) + } + flags := parseFlags(instrRest) + if unittype == "oscillator" { + if flags["SINE"] { + parameters["type"] = Sine + } else if flags["TRISAW"] { + parameters["type"] = Trisaw + } else if flags["PULSE"] { + parameters["type"] = Pulse + } else if flags["GATE"] { + parameters["type"] = Gate + } else if flags["SAMPLE"] { + parameters["type"] = Sample + } else { + return nil, errors.New("Invalid oscillator type") + } + if flags["UNISON4"] { + parameters["unison"] = 4 + } else if flags["UNISON3"] { + parameters["unison"] = 3 + } else if flags["UNISON2"] { + parameters["unison"] = 2 + } else { + parameters["unison"] = 1 + } + if flags["LFO"] { + parameters["lfo"] = 1 + } else { + parameters["lfo"] = 0 + } + } else if unittype == "filter" { + for _, flag := range []string{"LOWPASS", "BANDPASS", "HIGHPASS", "NEGBANDPASS", "NEGHIGHPASS"} { + if flags[flag] { + parameters[strings.ToLower(flag)] = 1 + } else { + parameters[strings.ToLower(flag)] = 0 + } + } + } else if unittype == "send" { + if _, ok := parameters["voice"]; !ok { + parameters["voice"] = -1 + } + if flags["SEND_POP"] { + parameters["pop"] = 1 + } else { + parameters["pop"] = 0 + } + } + unit := Unit{Type: unittype, Stereo: stereo, Parameters: parameters} + instr.Units = append(instr.Units, unit) + } + } + } + } + s := Song{BPM: bpm, Patterns: patterns, Tracks: tracks, Patch: patch, SongLength: -1} + return &s, nil +} diff --git a/go4k/asmformat_test.go b/go4k/asmformat_test.go new file mode 100644 index 0000000..550b6bf --- /dev/null +++ b/go4k/asmformat_test.go @@ -0,0 +1,95 @@ +package go4k_test + +import ( + "bytes" + "encoding/binary" + "io/ioutil" + "log" + "math" + "os" + "path" + "path/filepath" + "runtime" + "strings" + "testing" + + "github.com/vsariola/sointu/go4k" + "github.com/vsariola/sointu/go4k/bridge" +) + +func TestAllAsmFiles(t *testing.T) { + _, myname, _, _ := runtime.Caller(0) + files, err := filepath.Glob(path.Join(path.Dir(myname), "..", "tests", "*.asm")) + if err != nil { + t.Fatalf("cannot glob files in the test directory: %v", err) + } + for _, filename := range files { + basename := filepath.Base(filename) + testname := strings.TrimSuffix(basename, path.Ext(basename)) + t.Run(testname, func(t *testing.T) { + if strings.Contains(testname, "delay") || strings.Contains(testname, "sample") { + return // delays and samples are not implemented yet in the bridge, so skip them for now + } + file, err := os.Open(filename) + if err != nil { + t.Fatalf("cannot read the .asm file: %v", filename) + } + song, err := go4k.ParseAsm(file) + if err != nil { + t.Fatalf("could not parse the .asm file: %v", err) + } + synth, err := bridge.Synth(song.Patch) + if err != nil { + t.Fatalf("Compiling patch failed: %v", err) + } + buffer, err := go4k.Play(synth, *song) + if err != nil { + t.Fatalf("Play failed: %v", err) + } + if os.Getenv("GO4K_TEST_SAVE_OUTPUT") == "YES" { + outputpath := path.Join(path.Dir(myname), "actual_output") + if _, err := os.Stat(outputpath); os.IsNotExist(err) { + os.Mkdir(outputpath, 0755) + } + outFileName := path.Join(path.Dir(myname), "actual_output", testname+".raw") + outfile, err := os.OpenFile(outFileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0755) + defer outfile.Close() + if err != nil { + t.Fatalf("Creating file failed: %v", err) + } + var createdbuf bytes.Buffer + err = binary.Write(&createdbuf, binary.LittleEndian, buffer) + if err != nil { + t.Fatalf("error converting buffer: %v", err) + } + _, err = outfile.Write(createdbuf.Bytes()) + if err != nil { + log.Fatal(err) + } + } + compareToRaw(t, buffer, testname+".raw") + }) + } +} + +func compareToRaw(t *testing.T, buffer []float32, rawname string) { + _, filename, _, _ := runtime.Caller(0) + expectedb, err := ioutil.ReadFile(path.Join(path.Dir(filename), "..", "tests", "expected_output", rawname)) + if err != nil { + t.Fatalf("cannot read expected: %v", err) + } + expected := make([]float32, len(expectedb)/4) + buf := bytes.NewReader(expectedb) + err = binary.Read(buf, binary.LittleEndian, &expected) + if err != nil { + t.Fatalf("error converting expected buffer: %v", err) + } + if len(expected) != len(buffer) { + t.Fatalf("buffer length mismatch, got %v, expected %v", len(buffer), len(expected)) + } + for i, v := range expected { + if math.IsNaN(float64(buffer[i])) || math.Abs(float64(v-buffer[i])) > 1e-6 { + t.Fatalf("error bigger than 1e-6 detected, at sample position %v", i) + } + } +} diff --git a/go4k/bridge/bridge.go b/go4k/bridge/bridge.go index 8567e59..9d5dcb7 100644 --- a/go4k/bridge/bridge.go +++ b/go4k/bridge/bridge.go @@ -26,24 +26,24 @@ var opcodeTable = map[string]opTableEntry{ "mulp": opTableEntry{C.su_mulp_id, []string{}}, "push": opTableEntry{C.su_push_id, []string{}}, "xch": opTableEntry{C.su_xch_id, []string{}}, - "distortion": opTableEntry{C.su_distort_id, []string{"drive"}}, + "distort": opTableEntry{C.su_distort_id, []string{"drive"}}, "hold": opTableEntry{C.su_hold_id, []string{"holdfreq"}}, "crush": opTableEntry{C.su_crush_id, []string{"resolution"}}, "gain": opTableEntry{C.su_gain_id, []string{"gain"}}, "invgain": opTableEntry{C.su_invgain_id, []string{"invgain"}}, - "filter": opTableEntry{C.su_filter_id, []string{"frequency", "resonance", "flags"}}, + "filter": opTableEntry{C.su_filter_id, []string{"frequency", "resonance"}}, "clip": opTableEntry{C.su_clip_id, []string{}}, "pan": opTableEntry{C.su_pan_id, []string{"panning"}}, - "delay": opTableEntry{C.su_delay_id, []string{"pregain", "dry", "feedback", "depth", "damp", "delay", "count"}}, + "delay": opTableEntry{C.su_delay_id, []string{"pregain", "dry", "feedback", "damp", "damp", "delay", "count"}}, "compressor": opTableEntry{C.su_compres_id, []string{"attack", "release", "invgain", "threshold", "ratio"}}, "speed": opTableEntry{C.su_speed_id, []string{}}, "out": opTableEntry{C.su_out_id, []string{"gain"}}, "outaux": opTableEntry{C.su_outaux_id, []string{"outgain", "auxgain"}}, "aux": opTableEntry{C.su_aux_id, []string{"gain", "channel"}}, - "send": opTableEntry{C.su_send_id, []string{"amount", "port"}}, + "send": opTableEntry{C.su_send_id, []string{"amount"}}, "envelope": opTableEntry{C.su_envelope_id, []string{"attack", "decay", "sustain", "release", "gain"}}, "noise": opTableEntry{C.su_noise_id, []string{"shape", "gain"}}, - "oscillator": opTableEntry{C.su_oscillat_id, []string{"transpose", "detune", "phase", "color", "shape", "gain", "flags"}}, + "oscillator": opTableEntry{C.su_oscillat_id, []string{"transpose", "detune", "phase", "color", "shape", "gain"}}, "loadval": opTableEntry{C.su_loadval_id, []string{"value"}}, "receive": opTableEntry{C.su_receive_id, []string{}}, "in": opTableEntry{C.su_in_id, []string{"channel"}}, @@ -93,18 +93,71 @@ func Synth(patch go4k.Patch) (*C.Synth, error) { } for unitid, unit := range instr.Units { if val, ok := opcodeTable[unit.Type]; ok { + opCode := val.opcode if unit.Stereo { - commands = append(commands, byte(val.opcode+1)) - } else { - commands = append(commands, byte(val.opcode)) + opCode++ } + commands = append(commands, byte(opCode)) for _, paramname := range val.parameterList { if pval, ok := unit.Parameters[paramname]; ok { + if unit.Type == "delay" && paramname == "count" { + pval = pval*2 - 1 + if val, ok := unit.Parameters["notetracking"]; ok && val == 1 { + pval++ + } + } values = append(values, byte(pval)) } else { return nil, fmt.Errorf("Unit parameter undefined: %v (at instrument %v, unit %v)", paramname, insid, unitid) } } + if unit.Type == "oscillator" { + flags := 0 + switch unit.Parameters["type"] { + case go4k.Sine: + flags = 0x40 + case go4k.Trisaw: + flags = 0x20 + case go4k.Pulse: + flags = 0x10 + case go4k.Gate: + flags = 0x04 + case go4k.Sample: + flags = 0x80 + } + if unit.Parameters["lfo"] == 1 { + flags += 0x08 + } + flags += unit.Parameters["unison"] - 1 + values = append(values, byte(flags)) + } else if unit.Type == "filter" { + flags := 0 + if unit.Parameters["lowpass"] == 1 { + flags += 0x40 + } + if unit.Parameters["bandpass"] == 1 { + flags += 0x20 + } + if unit.Parameters["highpass"] == 1 { + flags += 0x10 + } + if unit.Parameters["negbandpass"] == 1 { + flags += 0x08 + } + if unit.Parameters["neghighpass"] == 1 { + flags += 0x04 + } + values = append(values, byte(flags)) + } else if unit.Type == "send" { + address := unit.Parameters["unit"]*16 + 24 + unit.Parameters["port"] + if unit.Parameters["voice"] != -1 { + address += 0x4000 + 16 + unit.Parameters["voice"]*1024 // global send, address is computed relative to synthworkspace + } + if unit.Parameters["pop"] == 1 { + address += 0x8000 + } + values = append(values, byte(address&255), byte(address>>8)) + } } else { return nil, fmt.Errorf("Unknown unit type: %v (at instrument %v, unit %v)", unit.Type, insid, unitid) } diff --git a/go4k/go4k.go b/go4k/go4k.go index fbe53a9..d8edf19 100644 --- a/go4k/go4k.go +++ b/go4k/go4k.go @@ -12,6 +12,14 @@ type Unit struct { Parameters map[string]int } +const ( + Sine = iota + Trisaw = iota + Pulse = iota + Gate = iota + Sample = iota +) + // Instrument includes a list of units consisting of the instrument, and the number of polyphonic voices for this instrument type Instrument struct { NumVoices int diff --git a/go4k/song_test.go b/go4k/song_test.go index 125428d..4f42575 100644 --- a/go4k/song_test.go +++ b/go4k/song_test.go @@ -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, "flags": 0x40}}, + 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{"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, "flags": 0x40}}, + 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{"mulp", false, map[string]int{}}, go4k.Unit{"out", true, map[string]int{"gain": 128}}, }}} diff --git a/include/sointu/flowcontrol_header.inc b/include/sointu/flowcontrol_header.inc index 21d0552..f5c4224 100644 --- a/include/sointu/flowcontrol_header.inc +++ b/include/sointu/flowcontrol_header.inc @@ -11,9 +11,9 @@ %endif %endmacro -%macro SU_SPEED 0 +%macro SU_SPEED 1 USE_SPEED - %xdefine CMDS CMDS SPEED_ID, ; there is no stereo variant I can think of + %xdefine CMDS CMDS SPEED_ID+%1, ; for future, although currently there is no stereo variant implemented %endmacro struc su_speed_wrk diff --git a/include/sointu/sources_header.inc b/include/sointu/sources_header.inc index 0975df2..0581503 100644 --- a/include/sointu/sources_header.inc +++ b/include/sointu/sources_header.inc @@ -24,7 +24,7 @@ %endif %endmacro -%define ATTAC(val) val +%define ATTACK(val) val %define DECAY(val) val %define SUSTAIN(val) val %define RELEASE(val) val @@ -122,10 +122,7 @@ endstruc %define TRANSPOSE(val) val %define DETUNE(val) val %define PHASE(val) val -%define GATESLOW(val) val -%define GATESHIGH(val) val %define COLOR(val) val -%define SAMPLENO(val) val %define SHAPE(val) val %define FLAGS(val) val diff --git a/render.asm b/render.asm index c07ecb9..87b422c 100644 --- a/render.asm +++ b/render.asm @@ -3,23 +3,83 @@ %include "sointu/header.inc" -; TODO: make sure compile everything in - -USE_ENVELOPE -USE_OSCILLAT +; use every opcode +USE_ADD +USE_ADDP +USE_POP +USE_LOADNOTE +USE_MUL USE_MULP +USE_PUSH +USE_XCH +USE_DISTORT +USE_HOLD +USE_CRUSH +USE_GAIN +USE_INVGAIN +USE_FILTER +USE_CLIP USE_PAN +USE_DELAY +USE_COMPRES +USE_SPEED USE_OUT +USE_OUTAUX +USE_AUX +USE_SEND +USE_ENVELOPE +USE_NOISE +USE_OSCILLAT +USE_LOAD_VAL +USE_RECEIVE +USE_IN +; include stereo variant of each opcode +%define INCLUDE_STEREO_ADD +%define INCLUDE_STEREO_ADDP +%define INCLUDE_STEREO_POP +%define INCLUDE_STEREO_LOADNOTE +%define INCLUDE_STEREO_MUL +%define INCLUDE_STEREO_MULP +%define INCLUDE_STEREO_PUSH +%define INCLUDE_STEREO_XCH +%define INCLUDE_STEREO_DISTORT +%define INCLUDE_STEREO_HOLD +%define INCLUDE_STEREO_CRUSH +%define INCLUDE_STEREO_GAIN +%define INCLUDE_STEREO_INVGAIN +%define INCLUDE_STEREO_FILTER +%define INCLUDE_STEREO_CLIP +%define INCLUDE_STEREO_PAN +%define INCLUDE_STEREO_DELAY +%define INCLUDE_STEREO_COMPRES +%define INCLUDE_STEREO_SPEED +%define INCLUDE_STEREO_OUT +%define INCLUDE_STEREO_OUTAUX +%define INCLUDE_STEREO_AUX +%define INCLUDE_STEREO_SEND +%define INCLUDE_STEREO_ENVELOPE +%define INCLUDE_STEREO_NOISE +%define INCLUDE_STEREO_OSCILLAT +%define INCLUDE_STEREO_LOADVAL +%define INCLUDE_STEREO_RECEIVE +%define INCLUDE_STEREO_IN + +; include all features inside all opcodes %define INCLUDE_TRISAW %define INCLUDE_SINE %define INCLUDE_PULSE %define INCLUDE_GATE -%define INCLUDE_STEREO_OSCILLAT -%define INCLUDE_STEREO_ENVELOPE -%define INCLUDE_STEREO_OUT +%define INCLUDE_UNISONS %define INCLUDE_POLYPHONY %define INCLUDE_MULTIVOICE_TRACKS +%define INCLUDE_DELAY_MODULATION +%define INCLUDE_LOWPASS +%define INCLUDE_BANDPASS +%define INCLUDE_HIGHPASS +%define INCLUDE_NEGBANDPASS +%define INCLUDE_NEGHIGHPASS +%define INCLUDE_GLOBAL_SEND %include "sointu/footer.inc" diff --git a/tests/test_chords.asm b/tests/test_chords.asm index a101138..4d48562 100644 --- a/tests/test_chords.asm +++ b/tests/test_chords.asm @@ -16,8 +16,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(3) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(32) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(32) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(32) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(32) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP STEREO diff --git a/tests/test_clip.asm b/tests/test_clip.asm index 3c78f3f..aa94416 100644 --- a/tests/test_clip.asm +++ b/tests/test_clip.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(SINE) SU_OSCILLAT MONO, TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(64),SHAPE(96),GAIN(128), FLAGS(SINE) SU_MULP STEREO diff --git a/tests/test_clip_stereo.asm b/tests/test_clip_stereo.asm index 5eef286..b6c3eb6 100644 --- a/tests/test_clip_stereo.asm +++ b/tests/test_clip_stereo.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(SINE) SU_OSCILLAT MONO, TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(64),SHAPE(96),GAIN(128), FLAGS(SINE) SU_MULP STEREO diff --git a/tests/test_compressor.asm b/tests/test_compressor.asm index 5114ae3..4607fa4 100644 --- a/tests/test_compressor.asm +++ b/tests/test_compressor.asm @@ -14,8 +14,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(16) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(16) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(16) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(16) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_MULP STEREO @@ -23,8 +23,8 @@ BEGIN_PATCH SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(1),FLAGS(SEND_POP) END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP STEREO @@ -33,7 +33,7 @@ BEGIN_PATCH END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Global compressor effect SU_RECEIVE STEREO - SU_COMPRES MONO,ATTAC(32),RELEASE(64),INVGAIN(32),THRESHOLD(64),RATIO(96) + SU_COMPRES MONO,ATTACK(32),RELEASE(64),INVGAIN(32),THRESHOLD(64),RATIO(96) SU_MULP MONO SU_OUT STEREO, GAIN(128) END_INSTRUMENT diff --git a/tests/test_compressor_stereo.asm b/tests/test_compressor_stereo.asm index e53080b..c01877c 100644 --- a/tests/test_compressor_stereo.asm +++ b/tests/test_compressor_stereo.asm @@ -14,8 +14,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(16) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(16) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(16) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(16) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_MULP STEREO @@ -23,8 +23,8 @@ BEGIN_PATCH SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(1),FLAGS(SEND_POP) END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP STEREO @@ -33,7 +33,7 @@ BEGIN_PATCH END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Global compressor effect SU_RECEIVE STEREO - SU_COMPRES STEREO,ATTAC(32),RELEASE(64),INVGAIN(32),THRESHOLD(64),RATIO(96) + SU_COMPRES STEREO,ATTACK(32),RELEASE(64),INVGAIN(32),THRESHOLD(64),RATIO(96) SU_MULP STEREO SU_OUT STEREO, GAIN(128) END_INSTRUMENT diff --git a/tests/test_crush.asm b/tests/test_crush.asm index 4ceec51..d653b08 100644 --- a/tests/test_crush.asm +++ b/tests/test_crush.asm @@ -12,11 +12,11 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(SINE) SU_MULP MONO SU_CRUSH MONO, RESOLUTION(3) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(64),SHAPE(96),GAIN(128), FLAGS(SINE) SU_MULP MONO SU_CRUSH MONO, RESOLUTION(64) diff --git a/tests/test_crush_stereo.asm b/tests/test_crush_stereo.asm index 43ad5f2..f15487b 100644 --- a/tests/test_crush_stereo.asm +++ b/tests/test_crush_stereo.asm @@ -12,10 +12,10 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(SINE) SU_MULP MONO - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(128),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(64),SHAPE(96),GAIN(128), FLAGS(SINE) SU_MULP MONO SU_CRUSH STEREO, RESOLUTION(32) diff --git a/tests/test_delay.asm b/tests/test_delay.asm index 179ebc5..c853c1f 100644 --- a/tests/test_delay.asm +++ b/tests/test_delay.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_DELAY MONO,PREGAIN(40),DRY(128),FEEDBACK(125),DAMP(64),DELAY(0),COUNT(1),FLAGS(NONE) diff --git a/tests/test_delay_dampmod.asm b/tests/test_delay_dampmod.asm index 4c9c2f5..acc2aa3 100644 --- a/tests/test_delay_dampmod.asm +++ b/tests/test_delay_dampmod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_DELAY MONO,PREGAIN(40),DRY(128),FEEDBACK(125),DAMP(64),DELAY(0),COUNT(1),FLAGS(NONE) diff --git a/tests/test_delay_drymod.asm b/tests/test_delay_drymod.asm index 22e7451..6b349a5 100644 --- a/tests/test_delay_drymod.asm +++ b/tests/test_delay_drymod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_DELAY MONO,PREGAIN(40),DRY(128),FEEDBACK(125),DAMP(64),DELAY(0),COUNT(1),FLAGS(NONE) diff --git a/tests/test_delay_feedbackmod.asm b/tests/test_delay_feedbackmod.asm index bf96142..4e13621 100644 --- a/tests/test_delay_feedbackmod.asm +++ b/tests/test_delay_feedbackmod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_DELAY MONO,PREGAIN(40),DRY(128),FEEDBACK(125),DAMP(64),DELAY(0),COUNT(1),FLAGS(NONE) diff --git a/tests/test_delay_flanger.asm b/tests/test_delay_flanger.asm index f8254b2..4be0596 100644 --- a/tests/test_delay_flanger.asm +++ b/tests/test_delay_flanger.asm @@ -13,7 +13,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_MULP MONO SU_DELAY MONO,PREGAIN(40),DRY(128),FEEDBACK(0),DAMP(64),DELAY(0),COUNT(1),FLAGS(NONE) diff --git a/tests/test_delay_notetracking.asm b/tests/test_delay_notetracking.asm index e936c34..a795742 100644 --- a/tests/test_delay_notetracking.asm +++ b/tests/test_delay_notetracking.asm @@ -14,8 +14,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(0),DECAY(0),SUSTAIN(96),RELEASE(96),GAIN(128) - SU_ENVELOPE MONO,ATTAC(0),DECAY(48),SUSTAIN(0),RELEASE(0),GAIN(128) + SU_ENVELOPE MONO,ATTACK(0),DECAY(0),SUSTAIN(96),RELEASE(96),GAIN(128) + SU_ENVELOPE MONO,ATTACK(0),DECAY(48),SUSTAIN(0),RELEASE(0),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(64),SHAPE(127),GAIN(64),FLAGS(SINE) SU_MULP MONO SU_FILTER MONO,FREQUENCY(32),RESONANCE(128),FLAGS(LOWPASS + BANDPASS + HIGHPASS) diff --git a/tests/test_delay_pregainmod.asm b/tests/test_delay_pregainmod.asm index 1c22dd3..42825ba 100644 --- a/tests/test_delay_pregainmod.asm +++ b/tests/test_delay_pregainmod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_DELAY MONO,PREGAIN(40),DRY(128),FEEDBACK(125),DAMP(64),DELAY(0),COUNT(1),FLAGS(NONE) diff --git a/tests/test_delay_reverb.asm b/tests/test_delay_reverb.asm index be9337b..8ec1977 100644 --- a/tests/test_delay_reverb.asm +++ b/tests/test_delay_reverb.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_DELAY MONO,PREGAIN(40),DRY(128),FEEDBACK(125),DAMP(64),DELAY(0),COUNT(8),FLAGS(NONE) diff --git a/tests/test_delay_stereo.asm b/tests/test_delay_stereo.asm index aa7790b..050dae2 100644 --- a/tests/test_delay_stereo.asm +++ b/tests/test_delay_stereo.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_PAN MONO,PANNING(64) diff --git a/tests/test_distort.asm b/tests/test_distort.asm index 11e2c1a..5975920 100644 --- a/tests/test_distort.asm +++ b/tests/test_distort.asm @@ -12,9 +12,9 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_DISTORT MONO,DRIVE(32) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_DISTORT MONO,DRIVE(96) SU_OUT STEREO,GAIN(128) END_INSTRUMENT diff --git a/tests/test_distort_mod.asm b/tests/test_distort_mod.asm index 660c4ed..78fe62a 100644 --- a/tests/test_distort_mod.asm +++ b/tests/test_distort_mod.asm @@ -12,9 +12,9 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_DISTORT MONO,DRIVE(32) - SU_ENVELOPE MONO, ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO, ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_DISTORT MONO, DRIVE(96) SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO) SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(0),FLAGS(NONE) diff --git a/tests/test_distort_stereo.asm b/tests/test_distort_stereo.asm index 44fa9fb..2a0f079 100644 --- a/tests/test_distort_stereo.asm +++ b/tests/test_distort_stereo.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE STEREO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE STEREO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_DISTORT STEREO, DRIVE(96) SU_OUT STEREO, GAIN(128) END_INSTRUMENT diff --git a/tests/test_envelope.asm b/tests/test_envelope.asm index f24621d..ad96c41 100644 --- a/tests/test_envelope.asm +++ b/tests/test_envelope.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) - SU_ENVELOPE MONO,ATTAC(95),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(95),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OUT STEREO,GAIN(128) END_INSTRUMENT END_PATCH diff --git a/tests/test_envelope_mod.asm b/tests/test_envelope_mod.asm index 859f784..d231422 100644 --- a/tests/test_envelope_mod.asm +++ b/tests/test_envelope_mod.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(120),DETUNE(64),PHASE(0),COLOR(128),SHAPE(96),GAIN(128),FLAGS(SINE+LFO) SU_SEND MONO,AMOUNT(68),UNIT(0),PORT(0),FLAGS(NONE) SU_SEND MONO,AMOUNT(68),UNIT(0),PORT(1),FLAGS(NONE) diff --git a/tests/test_envelope_stereo.asm b/tests/test_envelope_stereo.asm index e29f055..3b0ff82 100644 --- a/tests/test_envelope_stereo.asm +++ b/tests/test_envelope_stereo.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE STEREO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE STEREO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OUT STEREO,GAIN(128) END_INSTRUMENT END_PATCH diff --git a/tests/test_filter_band.asm b/tests/test_filter_band.asm index 1c7ad0c..7afbae4 100644 --- a/tests/test_filter_band.asm +++ b/tests/test_filter_band.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_MULP MONO SU_FILTER MONO,FREQUENCY(32),RESONANCE(64),FLAGS(BANDPASS) diff --git a/tests/test_filter_freqmod.asm b/tests/test_filter_freqmod.asm index 986fb42..99b7bd3 100644 --- a/tests/test_filter_freqmod.asm +++ b/tests/test_filter_freqmod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128), FLAGS(TRISAW) SU_MULP MONO SU_FILTER MONO,FREQUENCY(32),RESONANCE(64),FLAGS(BANDPASS) diff --git a/tests/test_filter_high.asm b/tests/test_filter_high.asm index fea76a2..e478383 100644 --- a/tests/test_filter_high.asm +++ b/tests/test_filter_high.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_MULP MONO SU_FILTER MONO,FREQUENCY(32),RESONANCE(64),FLAGS(HIGHPASS) diff --git a/tests/test_filter_low.asm b/tests/test_filter_low.asm index 1ad2946..7e3bec5 100644 --- a/tests/test_filter_low.asm +++ b/tests/test_filter_low.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_MULP MONO SU_FILTER MONO,FREQUENCY(32),RESONANCE(64),FLAGS(LOWPASS) diff --git a/tests/test_filter_peak.asm b/tests/test_filter_peak.asm index 9d50b44..4eeedb5 100644 --- a/tests/test_filter_peak.asm +++ b/tests/test_filter_peak.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_MULP MONO SU_FILTER MONO,FREQUENCY(32),RESONANCE(64),FLAGS(LOWPASS + NEGHIGHPASS) diff --git a/tests/test_filter_resmod.asm b/tests/test_filter_resmod.asm index 28388cc..120a232 100644 --- a/tests/test_filter_resmod.asm +++ b/tests/test_filter_resmod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128), FLAGS(TRISAW) SU_MULP MONO SU_FILTER MONO,FREQUENCY(32),RESONANCE(64),FLAGS(BANDPASS) diff --git a/tests/test_filter_stereo.asm b/tests/test_filter_stereo.asm index 0cca74f..b01eee4 100644 --- a/tests/test_filter_stereo.asm +++ b/tests/test_filter_stereo.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(72),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW) SU_MULP MONO SU_PAN MONO,PANNING(64) diff --git a/tests/test_hold.asm b/tests/test_hold.asm index a84634c..9d932bc 100644 --- a/tests/test_hold.asm +++ b/tests/test_hold.asm @@ -12,9 +12,9 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_HOLD MONO,HOLDFREQ(3) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_HOLD MONO,HOLDFREQ(3) SU_OUT STEREO,GAIN(128) END_INSTRUMENT diff --git a/tests/test_hold_mod.asm b/tests/test_hold_mod.asm index 41c011e..b1b4461 100644 --- a/tests/test_hold_mod.asm +++ b/tests/test_hold_mod.asm @@ -12,9 +12,9 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_HOLD MONO,HOLDFREQ(3) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_HOLD MONO,HOLDFREQ(3) SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO) SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(0),FLAGS(NONE) diff --git a/tests/test_hold_stereo.asm b/tests/test_hold_stereo.asm index 4e72ea6..0858293 100644 --- a/tests/test_hold_stereo.asm +++ b/tests/test_hold_stereo.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_HOLD STEREO,HOLDFREQ(3) SU_OUT STEREO,GAIN(128) END_INSTRUMENT diff --git a/tests/test_invgain.asm b/tests/test_invgain.asm index 1c273ee..ca3382c 100644 --- a/tests/test_invgain.asm +++ b/tests/test_invgain.asm @@ -13,7 +13,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 SU_LOADVAL MONO,VALUE(48) - SU_INVGAIN MONO,GAIN(64) + SU_INVGAIN MONO,INVGAIN(64) SU_LOADVAL MONO,VALUE(80) SU_INVGAIN MONO,INVGAIN(64) SU_OUT STEREO,GAIN(128) diff --git a/tests/test_multiple_instruments.asm b/tests/test_multiple_instruments.asm index b1c0d12..6216182 100644 --- a/tests/test_multiple_instruments.asm +++ b/tests/test_multiple_instruments.asm @@ -14,13 +14,13 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(0) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(0) SU_OUT STEREO,GAIN(128) END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Instrument1 - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(80),GAIN(0) - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(80),GAIN(0) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OUT STEREO,GAIN(128) END_INSTRUMENT END_PATCH diff --git a/tests/test_noise.asm b/tests/test_noise.asm index b3d9303..246153f 100644 --- a/tests/test_noise.asm +++ b/tests/test_noise.asm @@ -12,10 +12,10 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_NOISE MONO, SHAPE(64),GAIN(128) SU_MULP MONO - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_NOISE MONO, SHAPE(96),GAIN(128) SU_MULP MONO SU_OUT STEREO, GAIN(128) diff --git a/tests/test_noise_stereo.asm b/tests/test_noise_stereo.asm index 472af38..366e222 100644 --- a/tests/test_noise_stereo.asm +++ b/tests/test_noise_stereo.asm @@ -13,8 +13,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 SU_NOISE STEREO, SHAPE(96),GAIN(128) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_MULP STEREO SU_OUT STEREO, GAIN(128) END_INSTRUMENT diff --git a/tests/test_oscillat_colormod.asm b/tests/test_oscillat_colormod.asm index cca5c26..53a38a6 100644 --- a/tests/test_oscillat_colormod.asm +++ b/tests/test_oscillat_colormod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_PUSH MONO diff --git a/tests/test_oscillat_detunemod.asm b/tests/test_oscillat_detunemod.asm index d6dc8d4..ae2362e 100644 --- a/tests/test_oscillat_detunemod.asm +++ b/tests/test_oscillat_detunemod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_PUSH MONO diff --git a/tests/test_oscillat_gainmod.asm b/tests/test_oscillat_gainmod.asm index 72c3462..3978f17 100644 --- a/tests/test_oscillat_gainmod.asm +++ b/tests/test_oscillat_gainmod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_PUSH MONO diff --git a/tests/test_oscillat_gate.asm b/tests/test_oscillat_gate.asm index 428ea9e..9aea7fe 100644 --- a/tests/test_oscillat_gate.asm +++ b/tests/test_oscillat_gate.asm @@ -12,10 +12,10 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(32),PHASE(0),GATESLOW(15),GATESHIGH(96),GAIN(128),FLAGS(GATE) - SU_OSCILLAT MONO,TRANSPOSE(72),DETUNE(64),PHASE(64),GATESLOW(170),GATESHIGH(64),GAIN(128),FLAGS(GATE) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(32),PHASE(0),COLOR(15),SHAPE(96),GAIN(128),FLAGS(GATE) + SU_OSCILLAT MONO,TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(170),SHAPE(64),GAIN(128),FLAGS(GATE) SU_MULP STEREO SU_OUT STEREO,GAIN(128) END_INSTRUMENT diff --git a/tests/test_oscillat_lfo.asm b/tests/test_oscillat_lfo.asm index 1ce522e..2f2628d 100644 --- a/tests/test_oscillat_lfo.asm +++ b/tests/test_oscillat_lfo.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(90),DETUNE(64),PHASE(0),COLOR(128),SHAPE(96),GAIN(128), FLAGS(SINE + LFO) SU_OSCILLAT MONO, TRANSPOSE(100),DETUNE(64),PHASE(0),COLOR(64),SHAPE(96),GAIN(128), FLAGS(PULSE + LFO) SU_MULP STEREO diff --git a/tests/test_oscillat_phasemod.asm b/tests/test_oscillat_phasemod.asm index 230ae52..104be85 100644 --- a/tests/test_oscillat_phasemod.asm +++ b/tests/test_oscillat_phasemod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_PUSH MONO diff --git a/tests/test_oscillat_pulse.asm b/tests/test_oscillat_pulse.asm index 3b54f91..6d8d335 100644 --- a/tests/test_oscillat_pulse.asm +++ b/tests/test_oscillat_pulse.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(64),DETUNE(32),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(PULSE) SU_OSCILLAT MONO, TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(64),SHAPE(96),GAIN(128), FLAGS(PULSE) SU_MULP STEREO diff --git a/tests/test_oscillat_sample.asm b/tests/test_oscillat_sample.asm index 1c339b3..a9e1371 100644 --- a/tests/test_oscillat_sample.asm +++ b/tests/test_oscillat_sample.asm @@ -17,16 +17,16 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_OSCILLAT MONO,TRANSPOSE(68),DETUNE(64),PHASE(64),SAMPLENO(0),SHAPE(64),GAIN(128), FLAGS(SAMPLE) - SU_OSCILLAT MONO,TRANSPOSE(66),DETUNE(64),PHASE(64),SAMPLENO(1),SHAPE(64),GAIN(128), FLAGS(SAMPLE) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_OSCILLAT MONO,TRANSPOSE(68),DETUNE(64),PHASE(64),COLOR(0),SHAPE(64),GAIN(128), FLAGS(SAMPLE) + SU_OSCILLAT MONO,TRANSPOSE(66),DETUNE(64),PHASE(64),COLOR(1),SHAPE(64),GAIN(128), FLAGS(SAMPLE) SU_MULP STEREO SU_OUT STEREO,GAIN(128) END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Instrument1 to compare that the pitch is ok - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128), FLAGS(SINE) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128), FLAGS(SINE) SU_MULP STEREO diff --git a/tests/test_oscillat_sample_stereo.asm b/tests/test_oscillat_sample_stereo.asm index 2ecf24b..0d942b3 100644 --- a/tests/test_oscillat_sample_stereo.asm +++ b/tests/test_oscillat_sample_stereo.asm @@ -17,15 +17,15 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_OSCILLAT STEREO,TRANSPOSE(68),DETUNE(32),PHASE(64),SAMPLENO(0),SHAPE(64),GAIN(128), FLAGS(SAMPLE) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_OSCILLAT STEREO,TRANSPOSE(68),DETUNE(32),PHASE(64),COLOR(0),SHAPE(64),GAIN(128), FLAGS(SAMPLE) SU_MULP STEREO SU_OUT STEREO,GAIN(128) END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Instrument1 to compare that the pitch is ok - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT STEREO,TRANSPOSE(64),DETUNE(32),PHASE(0),COLOR(128),SHAPE(64),GAIN(128), FLAGS(SINE) SU_MULP STEREO SU_OUT STEREO,GAIN(128) diff --git a/tests/test_oscillat_shapemod.asm b/tests/test_oscillat_shapemod.asm index ec99845..5b23f4a 100644 --- a/tests/test_oscillat_shapemod.asm +++ b/tests/test_oscillat_shapemod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_PUSH MONO diff --git a/tests/test_oscillat_sine.asm b/tests/test_oscillat_sine.asm index edee733..bf10c31 100644 --- a/tests/test_oscillat_sine.asm +++ b/tests/test_oscillat_sine.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(SINE) SU_OSCILLAT MONO, TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(64),SHAPE(96),GAIN(128), FLAGS(SINE) SU_MULP STEREO diff --git a/tests/test_oscillat_stereo.asm b/tests/test_oscillat_stereo.asm index 9a9c575..4a644fe 100644 --- a/tests/test_oscillat_stereo.asm +++ b/tests/test_oscillat_stereo.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT STEREO, TRANSPOSE(64),DETUNE(32),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(SINE) SU_MULP STEREO SU_OUT STEREO, GAIN(128) diff --git a/tests/test_oscillat_transposemod.asm b/tests/test_oscillat_transposemod.asm index ac4eb2b..14a03fe 100644 --- a/tests/test_oscillat_transposemod.asm +++ b/tests/test_oscillat_transposemod.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP MONO SU_PUSH MONO diff --git a/tests/test_oscillat_trisaw.asm b/tests/test_oscillat_trisaw.asm index 4575974..a5547cd 100644 --- a/tests/test_oscillat_trisaw.asm +++ b/tests/test_oscillat_trisaw.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(32),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(TRISAW) SU_OSCILLAT MONO,TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(64),SHAPE(96),GAIN(128), FLAGS(TRISAW) SU_MULP STEREO diff --git a/tests/test_oscillat_unison.asm b/tests/test_oscillat_unison.asm index 0ec5405..9e5b19e 100644 --- a/tests/test_oscillat_unison.asm +++ b/tests/test_oscillat_unison.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO, TRANSPOSE(64),DETUNE(0),PHASE(64),COLOR(128),SHAPE(64),GAIN(32), FLAGS(TRISAW + UNISON4) SU_MULP MONO SU_PUSH MONO diff --git a/tests/test_oscillat_unison_stereo.asm b/tests/test_oscillat_unison_stereo.asm index fc7cdf3..62e17fc 100644 --- a/tests/test_oscillat_unison_stereo.asm +++ b/tests/test_oscillat_unison_stereo.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE STEREO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE STEREO, ATTACK(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT STEREO, TRANSPOSE(64),DETUNE(0),PHASE(64),COLOR(128),SHAPE(64),GAIN(32), FLAGS(TRISAW + UNISON4) SU_MULP STEREO SU_OUT STEREO, GAIN(128) diff --git a/tests/test_panning.asm b/tests/test_panning.asm index ec65e5d..9f08ee1 100644 --- a/tests/test_panning.asm +++ b/tests/test_panning.asm @@ -12,7 +12,7 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_PAN MONO,PANNING(40) SU_OUT STEREO,GAIN(128) END_INSTRUMENT diff --git a/tests/test_panning_stereo.asm b/tests/test_panning_stereo.asm index 97a6c70..fce1777 100644 --- a/tests/test_panning_stereo.asm +++ b/tests/test_panning_stereo.asm @@ -12,8 +12,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128) SU_PAN STEREO,PANNING(40) SU_OUT STEREO,GAIN(128) END_INSTRUMENT diff --git a/tests/test_polyphony.asm b/tests/test_polyphony.asm index 681d416..59db103 100644 --- a/tests/test_polyphony.asm +++ b/tests/test_polyphony.asm @@ -12,16 +12,16 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP STEREO SU_OUT STEREO,GAIN(128) END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Instrument1 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) SU_MULP STEREO diff --git a/tests/test_speed.asm b/tests/test_speed.asm index e208ae8..30262e0 100644 --- a/tests/test_speed.asm +++ b/tests/test_speed.asm @@ -20,8 +20,8 @@ END_TRACKS BEGIN_PATCH BEGIN_INSTRUMENT VOICES(1) ; Instrument0 - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(0),RELEASE(64),GAIN(128) - SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(0),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(0),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTACK(64),DECAY(64),SUSTAIN(0),RELEASE(64),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(32),PHASE(0),COLOR(96),SHAPE(64),GAIN(128), FLAGS(TRISAW) SU_OSCILLAT MONO,TRANSPOSE(72),DETUNE(64),PHASE(64),COLOR(64),SHAPE(96),GAIN(128), FLAGS(TRISAW) SU_MULP STEREO @@ -29,7 +29,7 @@ BEGIN_PATCH END_INSTRUMENT BEGIN_INSTRUMENT VOICES(1) ; Speed changer SU_LOADNOTE MONO - SU_SPEED + SU_SPEED MONO END_INSTRUMENT END_PATCH