From 9209aa1cba8a942e8257dda561595d938db80609 Mon Sep 17 00:00:00 2001 From: Veikko Sariola Date: Sat, 7 Nov 2020 19:50:44 +0200 Subject: [PATCH] Implement .asm parsing in go4k, and run succesfully almost all tests/ through the bridge. Delays and samples are not implemented yet and thus the tests are skipped, as these require parsing the delay and sample tables also. Various macronames were changed to be more sensible and consistent i.e. ATTAC was changed to ATTACK. GatesLow and GatesHigh was removed for the time being and the tracker will just have to know they are the SHAPE and COLOR parameters. SU_SPEED was changed to take a parameter so the parser picks it up. --- .gitignore | 1 + CMakeLists.txt | 2 +- go4k/asmformat.go | 226 ++++++++++++++++++++++++++ go4k/asmformat_test.go | 95 +++++++++++ go4k/bridge/bridge.go | 69 +++++++- go4k/go4k.go | 8 + go4k/song_test.go | 4 +- include/sointu/flowcontrol_header.inc | 4 +- include/sointu/sources_header.inc | 5 +- render.asm | 74 ++++++++- tests/test_chords.asm | 4 +- tests/test_clip.asm | 4 +- tests/test_clip_stereo.asm | 4 +- tests/test_compressor.asm | 10 +- tests/test_compressor_stereo.asm | 10 +- tests/test_crush.asm | 4 +- tests/test_crush_stereo.asm | 4 +- tests/test_delay.asm | 2 +- tests/test_delay_dampmod.asm | 2 +- tests/test_delay_drymod.asm | 2 +- tests/test_delay_feedbackmod.asm | 2 +- tests/test_delay_flanger.asm | 2 +- tests/test_delay_notetracking.asm | 4 +- tests/test_delay_pregainmod.asm | 2 +- tests/test_delay_reverb.asm | 2 +- tests/test_delay_stereo.asm | 2 +- tests/test_distort.asm | 4 +- tests/test_distort_mod.asm | 4 +- tests/test_distort_stereo.asm | 2 +- tests/test_envelope.asm | 4 +- tests/test_envelope_mod.asm | 4 +- tests/test_envelope_stereo.asm | 2 +- tests/test_filter_band.asm | 2 +- tests/test_filter_freqmod.asm | 2 +- tests/test_filter_high.asm | 2 +- tests/test_filter_low.asm | 2 +- tests/test_filter_peak.asm | 2 +- tests/test_filter_resmod.asm | 2 +- tests/test_filter_stereo.asm | 2 +- tests/test_hold.asm | 4 +- tests/test_hold_mod.asm | 4 +- tests/test_hold_stereo.asm | 4 +- tests/test_invgain.asm | 2 +- tests/test_multiple_instruments.asm | 8 +- tests/test_noise.asm | 4 +- tests/test_noise_stereo.asm | 4 +- tests/test_oscillat_colormod.asm | 2 +- tests/test_oscillat_detunemod.asm | 2 +- tests/test_oscillat_gainmod.asm | 2 +- tests/test_oscillat_gate.asm | 8 +- tests/test_oscillat_lfo.asm | 4 +- tests/test_oscillat_phasemod.asm | 2 +- tests/test_oscillat_pulse.asm | 4 +- tests/test_oscillat_sample.asm | 12 +- tests/test_oscillat_sample_stereo.asm | 10 +- tests/test_oscillat_shapemod.asm | 2 +- tests/test_oscillat_sine.asm | 4 +- tests/test_oscillat_stereo.asm | 4 +- tests/test_oscillat_transposemod.asm | 2 +- tests/test_oscillat_trisaw.asm | 4 +- tests/test_oscillat_unison.asm | 2 +- tests/test_oscillat_unison_stereo.asm | 2 +- tests/test_panning.asm | 2 +- tests/test_panning_stereo.asm | 4 +- tests/test_polyphony.asm | 8 +- tests/test_speed.asm | 6 +- 66 files changed, 569 insertions(+), 129 deletions(-) create mode 100644 go4k/asmformat.go create mode 100644 go4k/asmformat_test.go 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