;--------------------------------------
; general messages:

OUT    @m_mode_pe F0 42 30 36 4E 03 00 F7
OUT    @m_mode_p  F0 42 30 36 4E 02 00 F7
OUT    @m_par     F0 42 30 36 4E 03 00 F7 F0 42 30 36 41
OUT    @m_intro   @m_mode_pe P(10)

;--------------------------------------
; editor:

EDITOR "korg x5 programs" @m_intro

;--------------------------------------
; lists:

INCLUDE "x5l"
INCLUDE "x5lk"
INCLUDE "x5ls"
INCLUDE "x5lp"

;--------------------------------------
; program page:

PAGE   @p_prog "program edition" ""


BOX    @b_oscglo @p_prog "OSC Glob" 00d 00d 11d 5d ""

CHOICE @v_oscmod @b_oscglo "mode:" @l_oscmod 0 2 0 1 4 ""
CHOICE @v_oscass @b_oscglo "asgn:" @l_oscass 0 1 0 1 4 ""
CHOICE @v_oschld @b_oscglo "hold:" @l_onoff  0 1 0 1 3 ""

OUT    @ @m_par 0 0 #v_oscmod 0 F7
OUT    @ @m_par 1 0 #v_oscass 0 F7
OUT    @ @m_par 2 0 #v_oschld 0 F7

GLOBAL #isdrum =(#v_oscmod,2d) "true if drum mode"
GLOBAL #isalone d(#v_oscmod,1d) "true if single/drum mode"


MULTIBOX @mb_osc1 @p_prog #isdrum


BOX    @b_osc1   @mb_osc1 "OSC 1" 00d 05d 12d 8d ""

CHOICE @v_os1snd @b_osc1 "" @l_sounds 0 339d 0d 10d 10d ""
NUM    @v_os1lvl @b_osc1 "level =" 0 99d 90d 10d ""
NUM    @v_os1oct @b_osc1 "octave=" -2d 1d 0d 1d ""
CHOICE @v_os1pan @b_osc1 "pan   =" @l_pan 0 32d 15d 5d 3 ""
NUM    @v_os1sdc @b_osc1 "send C= " 0d 9d 0d 5d ""
NUM    @v_os1sdd @b_osc1 "send D= " 0d 9d 0d 5d ""

OUT    @ @m_par 24d 0 i(#v_os1snd) F7
OUT    @ @m_par 25d 0 #v_os1lvl 0 F7
OUT    @ @m_par 26d 0 i(#v_os1oct) F7
OUT    @ @m_par 28d 0 i(?(<(#v_os1pan,31d),#v_os1pan,-1)) F7
OUT    @ @m_par 29d 0 #v_os1sdc 0 F7
OUT    @ @m_par 30d 0 #v_os1sdd 0 F7


BOX    @b_oscd   @mb_osc1 "OSC Drum" 00d 05d 12d 8d ""

CHOICE @v_osdsnd @b_oscd "" @l_drums 0 9d 0d 5d 10d ""
NUM    @v_osdlvl @b_oscd "level =" 0 99d 90d 10d ""
NUM    @v_osdoct @b_oscd "octave=" -2d 1d 0d 1d ""
CHOICE @v_osdpan @b_oscd "pan   =" @l_pan 0 32d 15d 5d 3 ""
NUM    @v_osdsdc @b_oscd "send C= " 0d 9d 0d 5d ""
NUM    @v_osdsdd @b_oscd "send D= " 0d 9d 0d 5d ""

OUT    @ @m_par 24d 0 i(#v_osdsnd) F7
OUT    @ @m_par 25d 0 #v_osdlvl 0 F7
OUT    @ @m_par 26d 0 i(#v_osdoct) F7
OUT    @ @m_par 28d 0 i(?(<(#v_osdpan,31d),#v_osdpan,-1)) F7
OUT    @ @m_par 29d 0 #v_osdsdc 0 F7
OUT    @ @m_par 30d 0 #v_osdsdd 0 F7

CHGNUM @v_os1snd #v_osdsnd
CHGNUM @v_os1lvl #v_osdlvl
CHGNUM @v_os1oct #v_osdoct
CHGNUM @v_os1pan #v_osdpan
CHGNUM @v_os1sdc #v_osdsdc
CHGNUM @v_os1sdd #v_osdsdd

CHGNUM @v_osdsnd #v_os1snd
CHGNUM @v_osdlvl #v_os1lvl
CHGNUM @v_osdoct #v_os1oct
CHGNUM @v_osdpan #v_os1pan
CHGNUM @v_osdsdc #v_os1sdc
CHGNUM @v_osdsdd #v_os1sdd


MULTIBOX @mb_osc2 @p_prog #isalone

BOX    @b_osc2   @mb_osc2 "OSC 2" 00d 13d 12d 12d ""
BOX    @b_osc2v  @mb_osc2 "OSC 2" 00d 13d 12d 12d ""


CHOICE @v_os2snd @b_osc2 "" @l_sounds 0 339d 0d 10d 10d ""
NUM    @v_os2lvl @b_osc2 "level =" 0 99d 90d 10d ""
NUM    @v_os2oct @b_osc2 "octave=" -2d 1d 0d 1d ""
CHOICE @v_os2pan @b_osc2 "pan   =" @l_pan 0 32d 15d 5d 3 ""
NUM    @v_os2sdc @b_osc2 "send C= " 0d 9d 0d 5d ""
NUM    @v_os2sdd @b_osc2 "send D= " 0d 9d 0d 5d ""
SEPARATOR        @b_osc2 ""
NUM    @v_os2int @b_osc2 "interv=" -12d 12d 0d 4d ""
NUM    @v_os2det @b_osc2 "detune=" -50d 50d 0d 10d ""
NUM    @v_os2del @b_osc2 "delay = " 0d 99d 0d 10d ""

OUT    @ @m_par 91d 0 i(#v_os2snd) F7
OUT    @ @m_par 92d 0 #v_os2lvl 0 F7
OUT    @ @m_par 93d 0 i(#v_os2oct) F7
OUT    @ @m_par 95d 0 i(?(<(#v_os2pan,31d),#v_os2pan,-1)) F7
OUT    @ @m_par 96d 0 #v_os2sdc 0 F7
OUT    @ @m_par 97d 0 #v_os2sdd 0 F7
OUT    @ @m_par 88d 0 i(#v_os2int) F7
OUT    @ @m_par 89d 0 i(#v_os2det) F7
OUT    @ @m_par 90d 0 i(#v_os2del) F7


BOX    @b_vdf1   @p_prog "VDF1 Col&Eg" 12d 0d 13d 16d ""

NUM    @v_v1cut  @b_vdf1 "cutoff = " 0d 99d 99d 10d ""
SEPARATOR        @b_vdf1 ""
NUM    @v_v1coin @b_vdf1 "col int  " 0d 99d 0 10d ""
NUM    @v_v1covl @b_vdf1 "col/vel " -99d 99d 0 10d ""
SEPARATOR        @b_vdf1 ""
NUM    @v_v1int  @b_vdf1 "egint  = " 0d 99d 0 10d ""
NUM    @v_v1atti @b_vdf1 "att time " 0d 99d 0 10d ""
NUM    @v_v1atlv @b_vdf1 "att lvl " -99d 99d 0 10d ""
NUM    @v_v1dcti @b_vdf1 "dec time " 0d 99d 0 10d ""
NUM    @v_v1bklv @b_vdf1 "brk lvl " -99d 99d 0 10d ""
NUM    @v_v1slti @b_vdf1 "slp time " 0d 99d 0 10d ""
NUM    @v_v1sulv @b_vdf1 "sus lvl " -99d 99d 0 10d ""
NUM    @v_v1rlti @b_vdf1 "rel time " 0d 99d 0 10d ""
NUM    @v_v1rllv @b_vdf1 "rel lvl " -99d 99d 0 10d ""

OUT    @ @m_par 31d 0 #v_v1cut 0 F7
OUT    @ @m_par 43d 0 #v_v1coin 0 F7
OUT    @ @m_par 44d 0 i(#v_v1covl) F7
OUT    @ @m_par 32d 0 #v_v1int 0 F7
OUT    @ @m_par 35d 0 #v_v1atti 0 F7
OUT    @ @m_par 36d 0 i(#v_v1atlv) F7
OUT    @ @m_par 37d 0 #v_v1dcti 0 F7
OUT    @ @m_par 38d 0 i(#v_v1bklv) F7
OUT    @ @m_par 39d 0 #v_v1slti 0 F7
OUT    @ @m_par 40d 0 i(#v_v1sulv) F7
OUT    @ @m_par 41d 0 #v_v1rlti 0 F7
OUT    @ @m_par 42d 0 i(#v_v1rllv) F7


MULTIBOX @mb_vdf2 @p_prog #isalone

BOX    @b_vdf2   @mb_vdf2 "VDF2 Col&Eg" 25d 0d 13d 16d ""
BOX    @b_vdf2_  @mb_vdf2 "VDF2 Col&Eg" 25d 0d 13d 16d ""

NUM    @v_v2cut  @b_vdf2 "cutoff = " 0d 99d 99d 10d ""
SEPARATOR        @b_vdf2 ""
NUM    @v_v2coin @b_vdf2 "col int  " 0d 99d 0 10d ""
NUM    @v_v2covl @b_vdf2 "col/vel " -99d 99d 0 10d ""
SEPARATOR        @b_vdf2 ""
NUM    @v_v2int  @b_vdf2 "egint  = " 0d 99d 0 10d ""
NUM    @v_v2atti @b_vdf2 "att time " 0d 99d 0 10d ""
NUM    @v_v2atlv @b_vdf2 "att lvl " -99d 99d 0 10d ""
NUM    @v_v2dcti @b_vdf2 "dec time " 0d 99d 0 10d ""
NUM    @v_v2bklv @b_vdf2 "brk lvl " -99d 99d 0 10d ""
NUM    @v_v2slti @b_vdf2 "slp time " 0d 99d 0 10d ""
NUM    @v_v2sulv @b_vdf2 "sus lvl " -99d 99d 0 10d ""
NUM    @v_v2rlti @b_vdf2 "rel time " 0d 99d 0 10d ""
NUM    @v_v2rllv @b_vdf2 "rel lvl " -99d 99d 0 10d ""

OUT    @ @m_par 98d 0 #v_v2cut 0 F7
OUT    @ @m_par 110d 0 #v_v2coin 0 F7
OUT    @ @m_par 111d 0 i(#v_v2covl) F7
OUT    @ @m_par 99d 0 #v_v2int 0 F7
OUT    @ @m_par 102d 0 #v_v2atti 0 F7
OUT    @ @m_par 103d 0 i(#v_v2atlv) F7
OUT    @ @m_par 104d 0 #v_v2dcti 0 F7
OUT    @ @m_par 105d 0 i(#v_v2bklv) F7
OUT    @ @m_par 106d 0 #v_v2slti 0 F7
OUT    @ @m_par 107d 0 i(#v_v2sulv) F7
OUT    @ @m_par 108d 0 #v_v2rlti 0 F7
OUT    @ @m_par 109d 0 i(#v_v2rllv) F7


BOX    @b_vdf1vk @p_prog "VDF1/Vs/Kt" 38d 0d 13d 18d ""

SEPARATOR        @b_vdf1vk "VelSens:"
NUM    @v_v3invl @b_vdf1vk "int/vel " -99d 99d 0 10d ""
NUM    @v_v3tivl @b_vdf1vk "time/vel " 0d 99d 0 10d ""
CHOICE @v_v3atvl @b_vdf1vk "att time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v3dcvl @b_vdf1vk "dec time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v3slvl @b_vdf1vk "slp time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v3rlvl @b_vdf1vk "rel time  " @l_dir -1d 1d 0d 1d 1 ""
SEPARATOR        @b_vdf1vk "KbdTrck:"
CHOICE @v_v3kmod @b_vdf1vk "mode:" @l_kmode 0 3d 1d 1d 4 ""
CHOICE @v_v3key  @b_vdf1vk "key: " @l_key 0 127d 60d 12d 4 ""
NUM    @v_v3inkt @b_vdf1vk "int/key " -99d 99d 0 10d ""
NUM    @v_v3tikt @b_vdf1vk "time/key " 0d 99d 0 10d ""
CHOICE @v_v3atkt @b_vdf1vk "att time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v3dckt @b_vdf1vk "dec time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v3slkt @b_vdf1vk "slp time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v3rlkt @b_vdf1vk "rel time  " @l_dir -1d 1d 0d 1d 1 ""

OUT    @ @m_par 43d 0 i(#v_v3invl) F7
OUT    @ @m_par 44d 0 #v_v3tivl 0 F7
OUT    @ @m_par 45d 0 i(#v_v3atvl) F7
OUT    @ @m_par 46d 0 i(#v_v3dcvl) F7
OUT    @ @m_par 47d 0 i(#v_v3slvl) F7
OUT    @ @m_par 48d 0 i(#v_v3rlvl) F7
OUT    @ @m_par 50d 0 #v_v3kmod 0 F7
OUT    @ @m_par 49d 0 #v_v3key 0 F7
OUT    @ @m_par 51d 0 i(#v_v3inkt) F7
OUT    @ @m_par 52d 0 #v_v3tikt 0 F7
OUT    @ @m_par 53d 0 i(#v_v3atkt) F7
OUT    @ @m_par 54d 0 i(#v_v3dckt) F7
OUT    @ @m_par 55d 0 i(#v_v3slkt) F7
OUT    @ @m_par 56d 0 i(#v_v3rlkt) F7


MULTIBOX @mb_vdf2vk @p_prog #isalone
BOX    @b_vdf2vk @mb_vdf2vk "VDF2/Vs/Kt" 51d 0d 13d 18d ""
BOX    @b_vdf2vk_ @mb_vdf2vk "VDF2/Vs/Kt" 51d 0d 13d 18d ""

SEPARATOR        @b_vdf2vk "VelSens:"
NUM    @v_v4invl @b_vdf2vk "int/vel " -99d 99d 0 10d ""
NUM    @v_v4tivl @b_vdf2vk "time/vel " 0d 99d 0 10d ""
CHOICE @v_v4atvl @b_vdf2vk "att time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v4dcvl @b_vdf2vk "dec time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v4slvl @b_vdf2vk "slp time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v4rlvl @b_vdf2vk "rel time  " @l_dir -1d 1d 0d 1d 1 ""
SEPARATOR        @b_vdf2vk "KbdTrck:"
CHOICE @v_v4kmod @b_vdf2vk "mode:" @l_kmode 0 3d 1d 1d 4 ""
CHOICE @v_v4key  @b_vdf2vk "key: " @l_key 0 127d 60d 12d 4 ""
NUM    @v_v4inkt @b_vdf2vk "int/key " -99d 99d 0 10d ""
NUM    @v_v4tikt @b_vdf2vk "time/key " 0d 99d 0 10d ""
CHOICE @v_v4atkt @b_vdf2vk "att time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v4dckt @b_vdf2vk "dec time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v4slkt @b_vdf2vk "slp time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_v4rlkt @b_vdf2vk "rel time  " @l_dir -1d 1d 0d 1d 1 ""

OUT    @ @m_par 110d 0 i(#v_v4invl) F7
OUT    @ @m_par 111d 0 #v_v4tivl 0 F7
OUT    @ @m_par 112d 0 i(#v_v4atvl) F7
OUT    @ @m_par 113d 0 i(#v_v4dcvl) F7
OUT    @ @m_par 114d 0 i(#v_v4slvl) F7
OUT    @ @m_par 115d 0 i(#v_v4rlvl) F7
OUT    @ @m_par 117d 0 #v_v4kmod 0 F7
OUT    @ @m_par 116d 0 #v_v4key 0 F7
OUT    @ @m_par 118d 0 i(#v_v4inkt) F7
OUT    @ @m_par 119d 0 #v_v4tikt 0 F7
OUT    @ @m_par 120d 0 i(#v_v4atkt) F7
OUT    @ @m_par 121d 0 i(#v_v4dckt) F7
OUT    @ @m_par 122d 0 i(#v_v4slkt) F7
OUT    @ @m_par 123d 0 i(#v_v4rlkt) F7


BOX    @b_vmod   @p_prog "VDF MOD" 64d 0d 12d 8d ""

CHOICE @v_vmwave @b_vmod "wave:" @l_wave 0d 5d 0d 1d 5 ""
NUM    @v_vmfreq @b_vmod "freq :" 0d 99d 0 10d ""
NUM    @v_vmint  @b_vmod "int  :" 0d 99d 0 10d ""
NUM    @v_vmdel  @b_vmod "delay:" 0d 99d 0 10d ""
CHOICE @v_vmosc  @b_vmod "osc  :" @l_osc 0d 3d 0d 1d 4 ""
CHOICE @v_vmsync @b_vmod "sync :" @l_onoff 0d 1d 0d 1d 3 ""

OUT    @ @m_par 11d 0 #v_vmwave 0 F7
OUT    @ @m_par 12d 0 #v_vmfreq 0 F7
OUT    @ @m_par 13d 0 #v_vmint 0 F7
OUT    @ @m_par 14d 0 #v_vmdel 0 F7
OUT    @ @m_par 15d 0 #v_vmosc 0 F7
OUT    @ @m_par 16d 0 #v_vmsync 0 F7


BOX    @b_vda1   @p_prog "VDA1 Eg" 12d 16d 13d 9d ""

NUM    @v_a1atti @b_vda1 "att time " 0d 99d 0 10d ""
NUM    @v_a1atlv @b_vda1 "att lvl " 0d 99d 50d 10d ""
NUM    @v_a1dcti @b_vda1 "dec time " 0d 99d 25 10d ""
NUM    @v_a1bklv @b_vda1 "brk lvl " 0d 99d 45d 10d ""
NUM    @v_a1slti @b_vda1 "slp time " 0d 99d 55d 10d ""
NUM    @v_a1sulv @b_vda1 "sus lvl " 0d 99d 0 10d ""
NUM    @v_a1rlti @b_vda1 "rel time " 0d 99d 35d 10d ""

OUT    @ @m_par 57d 0 #v_a1atti 0 F7
OUT    @ @m_par 58d 0 i(#v_a1atlv) F7
OUT    @ @m_par 59d 0 #v_a1dcti 0 F7
OUT    @ @m_par 60d 0 i(#v_a1bklv) F7
OUT    @ @m_par 61d 0 #v_a1slti 0 F7
OUT    @ @m_par 62d 0 i(#v_a1sulv) F7
OUT    @ @m_par 63d 0 #v_a1rlti 0 F7


MULTIBOX @mb_vda2 @p_prog #isalone
BOX    @b_vda2   @mb_vda2 "VDA2 Eg" 25d 16d 13d 9d ""
BOX    @b_vda2_  @mb_vda2 "VDA2 Eg" 25d 16d 13d 9d ""

NUM    @v_a2atti @b_vda2 "att time " 0d 99d 0 10d ""
NUM    @v_a2atlv @b_vda2 "att lvl " 0d 99d 50d 10d ""
NUM    @v_a2dcti @b_vda2 "dec time " 0d 99d 25d 10d ""
NUM    @v_a2bklv @b_vda2 "brk lvl " 0d 99d 45d 10d ""
NUM    @v_a2slti @b_vda2 "slp time " 0d 99d 55d 10d ""
NUM    @v_a2sulv @b_vda2 "sus lvl " 0d 99d 0 10d ""
NUM    @v_a2rlti @b_vda2 "rel time " 0d 99d 35d 10d ""

OUT    @ @m_par 124d 0 #v_a2atti 0 F7
OUT    @ @m_par 125d 0 i(#v_a2atlv) F7
OUT    @ @m_par 126d 0 #v_a2dcti 0 F7
OUT    @ @m_par 127d 0 i(#v_a2bklv) F7
OUT    @ @m_par 0d   1 #v_a2slti 0 F7
OUT    @ @m_par 1d   1 i(#v_a2sulv) F7
OUT    @ @m_par 2d   1 #v_a2rlti 0 F7


BOX    @b_vda1vk  @p_prog "VDA1/Vs/Kt" 38d 18d 13d 18d ""

SEPARATOR        @b_vda1vk "VelSens:"
NUM    @v_a3invl @b_vda1vk "amp/vel " -99d 99d 60d 10d ""
NUM    @v_a3tivl @b_vda1vk "time/vel " 0d 99d 0 10d ""
CHOICE @v_a3atvl @b_vda1vk "att time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a3dcvl @b_vda1vk "dec time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a3slvl @b_vda1vk "slp time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a3rlvl @b_vda1vk "rel time  " @l_dir -1d 1d 0d 1d 1 ""
SEPARATOR        @b_vda1vk "KbdTrck:"
CHOICE @v_a3kmod @b_vda1vk "mode:" @l_kmode 0 3d 1d 1d 4 ""
CHOICE @v_a3key  @b_vda1vk "key: " @l_key 0 127d 60d 12d 4 ""
NUM    @v_a3inkt @b_vda1vk "amp/key " -99d 99d 0 10d ""
NUM    @v_a3tikt @b_vda1vk "time/key " 0d 99d 0 10d ""
CHOICE @v_a3atkt @b_vda1vk "att time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a3dckt @b_vda1vk "dec time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a3slkt @b_vda1vk "slp time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a3rlkt @b_vda1vk "rel time  " @l_dir -1d 1d 0d 1d 1 ""

OUT    @ @m_par 64d 0 i(#v_a3invl) F7
OUT    @ @m_par 65d 0 #v_a3tivl 0 F7
OUT    @ @m_par 66d 0 i(#v_a3atvl) F7
OUT    @ @m_par 67d 0 i(#v_a3dcvl) F7
OUT    @ @m_par 68d 0 i(#v_a3slvl) F7
OUT    @ @m_par 69d 0 i(#v_a3rlvl) F7
OUT    @ @m_par 71d 0 #v_a3kmod 0 F7
OUT    @ @m_par 70d 0 #v_a3key 0 F7
OUT    @ @m_par 72d 0 i(#v_a3inkt) F7
OUT    @ @m_par 73d 0 #v_a3tikt 0 F7
OUT    @ @m_par 74d 0 i(#v_a3atkt) F7
OUT    @ @m_par 75d 0 i(#v_a3dckt) F7
OUT    @ @m_par 76d 0 i(#v_a3slkt) F7
OUT    @ @m_par 77d 0 i(#v_a3rlkt) F7


MULTIBOX @mb_vda2vk @p_prog #isalone
BOX    @b_vda2vk @mb_vda2vk "VDA2/Vs/Kt" 51d 18d 13d 18d ""
BOX    @b_vda2vk_  @mb_vda2vk "VDA2/Vs/Kt" 51d 18d 13d 18d ""

SEPARATOR        @b_vda2vk "VelSens:"
NUM    @v_a4invl @b_vda2vk "amp/vel " -99d 99d 50d 10d ""
NUM    @v_a4tivl @b_vda2vk "time/vel " 0d 99d 0 10d ""
CHOICE @v_a4atvl @b_vda2vk "att time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a4dcvl @b_vda2vk "dec time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a4slvl @b_vda2vk "slp time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a4rlvl @b_vda2vk "rel time  " @l_dir -1d 1d 0d 1d 1 ""
SEPARATOR        @b_vda2vk "KbdTrck:"
CHOICE @v_a4kmod @b_vda2vk "mode:" @l_kmode 0 3d 1d 1d 4 ""
CHOICE @v_a4key  @b_vda2vk "key: " @l_key 0 127d 60d 12d 4 ""
NUM    @v_a4inkt @b_vda2vk "amp/key " -99d 99d 0 10d ""
NUM    @v_a4tikt @b_vda2vk "time/key " 0d 99d 0 10d ""
CHOICE @v_a4atkt @b_vda2vk "att time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a4dckt @b_vda2vk "dec time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a4slkt @b_vda2vk "slp time  " @l_dir -1d 1d 0d 1d 1 ""
CHOICE @v_a4rlkt @b_vda2vk "rel time  " @l_dir -1d 1d 0d 1d 1 ""

OUT    @ @m_par 3d  1 i(#v_a4invl) F7
OUT    @ @m_par 4d  1 #v_a4tivl 0 F7
OUT    @ @m_par 5d  1 i(#v_a4atvl) F7
OUT    @ @m_par 6d  1 i(#v_a4dcvl) F7
OUT    @ @m_par 7d  1 i(#v_a4slvl) F7
OUT    @ @m_par 8d  1 i(#v_a4rlvl) F7
OUT    @ @m_par 10d 1 #v_a4kmod 0 F7
OUT    @ @m_par 9d  1 #v_a4key 0 F7
OUT    @ @m_par 11d 1 i(#v_a4inkt) F7
OUT    @ @m_par 12d 1 #v_a4tikt 0 F7
OUT    @ @m_par 13d 1 i(#v_a4atkt) F7
OUT    @ @m_par 14d 1 i(#v_a4dckt) F7
OUT    @ @m_par 15d 1 i(#v_a4slkt) F7
OUT    @ @m_par 16d 1 i(#v_a4rlkt) F7


BOX    @b_ptcheg  @p_prog "PITCH Eg" 00d 25d 13d 12d ""

NUM    @v_peint1 @b_ptcheg "egint 1=" -99d 99d 0 10d ""
NUM    @v_peint2 @b_ptcheg "egint 2=" -99d 99d 0 10d ""
NUM    @v_pestlv @b_ptcheg "sta lvl " -99d 99d 0 10d ""
NUM    @v_peatti @b_ptcheg "att time " 0d 99d 0 10d ""
NUM    @v_peatlv @b_ptcheg "att lvl " -99d 99d 0 10d ""
NUM    @v_pedcti @b_ptcheg "dec time " 0d 99d 0 10d ""
NUM    @v_perlti @b_ptcheg "rel time " 0d 99d 0 10d ""
NUM    @v_perllv @b_ptcheg "rel lvl " -99d 99d 0 10d ""
NUM    @v_pelvvl @b_ptcheg "lvl/vel=" -99d 99d 0 10d ""
NUM    @v_petivl @b_ptcheg "tim/vel=" -99d 99d 0 10d ""

OUT    @ @m_par 27d 0 i(#v_peint1) F7
OUT    @ @m_par 94d 0 i(#v_peint2) F7
OUT    @ @m_par 03d 0 i(#v_pestlv) F7
OUT    @ @m_par 04d 0 #v_peatti 0 F7
OUT    @ @m_par 05d 0 i(#v_peatlv) F7
OUT    @ @m_par 06d 0 #v_pedcti 0 F7
OUT    @ @m_par 07d 0 #v_perlti 0 F7
OUT    @ @m_par 08d 0 i(#v_perllv) F7
OUT    @ @m_par 09d 0 i(#v_pelvvl) F7
OUT    @ @m_par 10d 0 i(#v_petivl) F7


BOX    @b_pmod1  @p_prog "PITCH Mod1" 13d 25d 12d 12d ""

CHOICE @v_p1wave @b_pmod1 "wave:" @l_wave 0d 5d 0d 1d 5 ""
NUM    @v_p1freq @b_pmod1 "freq :" 0d 99d 0 10d ""
NUM    @v_p1int  @b_pmod1 "int  :" 0d 99d 0 10d ""
NUM    @v_p1del  @b_pmod1 "delay:" 0d 99d 0 10d ""
NUM    @v_p1fdin @b_pmod1 "fadin:" 0d 99d 0 10d ""
CHOICE @v_p1sync @b_pmod1 "sync :" @l_onoff 0d 1d 0d 1d 3 ""
NUM    @v_p1fqkt @b_pmod1 "fq/key:" -99d 99d 0 10d ""
NUM    @v_p1fqat @b_pmod1 "fq/aft:" 0d 9d 0 5d ""
NUM    @v_p1inat @b_pmod1 "int/aft:" 0d 99d 0 10d ""
NUM    @v_p1injo @b_pmod1 "int/joy:" 0d 99d 0 10d ""

OUT    @ @m_par 78d 0 #v_p1wave 0 F7
OUT    @ @m_par 79d 0 #v_p1freq 0 F7
OUT    @ @m_par 80d 0 #v_p1int 0 F7
OUT    @ @m_par 81d 0 #v_p1del 0 F7
OUT    @ @m_par 82d 0 #v_p1fdin 0 F7
OUT    @ @m_par 83d 0 #v_p1sync 0 F7
OUT    @ @m_par 84d 0 i(#v_p1fqkt) F7
OUT    @ @m_par 85d 0 #v_p1fqat 0 F7
OUT    @ @m_par 86d 0 #v_p1inat 0 F7
OUT    @ @m_par 87d 0 #v_p1injo 0 F7


MULTIBOX @mb_pmod2 @p_prog #isalone
BOX    @b_pmod2  @mb_pmod2 "PITCH Mod2" 25d 25d 12d 12d ""
BOX    @b_pmod2_ @mb_pmod2 "PITCH Mod2" 25d 25d 12d 12d ""

CHOICE @v_p2wave @b_pmod2 "wave:" @l_wave 0d 5d 0d 1d 5 ""
NUM    @v_p2freq @b_pmod2 "freq :" 0d 99d 0 10d ""
NUM    @v_p2int  @b_pmod2 "int  :" 0d 99d 0 10d ""
NUM    @v_p2del  @b_pmod2 "delay:" 0d 99d 0 10d ""
NUM    @v_p2fdin @b_pmod2 "fadin:" 0d 99d 0 10d ""
CHOICE @v_p2sync @b_pmod2 "sync :" @l_onoff 0d 1d 0d 1d 3 ""
NUM    @v_p2fqkt @b_pmod2 "fq/key:" -99d 99d 0 10d ""
NUM    @v_p2fqat @b_pmod2 "fq/aft:" 0d 9d 0 5d ""
NUM    @v_p2inat @b_pmod2 "int/aft:" 0d 99d 0 10d ""
NUM    @v_p2injo @b_pmod2 "int/joy:" 0d 99d 0 10d ""

OUT    @ @m_par 17d 1 #v_p2wave 0 F7
OUT    @ @m_par 18d 1 #v_p2freq 0 F7
OUT    @ @m_par 19d 1 #v_p2int 0 F7
OUT    @ @m_par 20d 1 #v_p2del 0 F7
OUT    @ @m_par 21d 1 #v_p2fdin 0 F7
OUT    @ @m_par 22d 1 #v_p2sync 0 F7
OUT    @ @m_par 23d 1 i(#v_p2fqkt) F7
OUT    @ @m_par 24d 1 #v_p2fqat 0 F7
OUT    @ @m_par 25d 1 #v_p2inat 0 F7
OUT    @ @m_par 26d 1 #v_p2injo 0 F7


BOX    @b_joy    @p_prog "AFTT & JOY" 64d 8d 14d 12d ""

SEPARATOR @b_joy "Aftertouch:"
NUM    @v_afbdrg @b_joy "bend rng:" -12d 12d 0 6d ""
NUM    @v_afcut  @b_joy "vdf cut :" -99d 99d 0 10d ""
NUM    @v_afvmod @b_joy "vdf mod : " 0d 99d 0 10d ""
NUM    @v_afvda  @b_joy "vda amp :" -99d 99d 0 10d ""
SEPARATOR @b_joy "Mod Wheel:"
NUM    @v_jomodv @b_joy "vdf mod : " 0d 99d 0 10d ""
SEPARATOR @b_joy "Pitch bend:"
NUM    @v_jobdrg @b_joy "bend rng:" -12d 12d 0 6d ""
NUM    @v_jocut  @b_joy "vdf cut :" -99d 99d 0 10d ""

OUT    @ @m_par 17d 0 i(#v_afbdrg) F7
OUT    @ @m_par 18d 0 i(#v_afcut) F7
OUT    @ @m_par 19d 0 #v_afvmod 0 F7
OUT    @ @m_par 20d 0 i(#v_afvda) F7
OUT    @ @m_par 21d 0 #v_jomodv 0 F7
OUT    @ @m_par 22d 0 i(#v_jobdrg) F7
OUT    @ @m_par 23d 0 i(#v_jocut) F7


BOX    @b_name @p_prog "NAME" 27d 37d 12d 3d ""
STRING @v_name @b_name "" 20 7F 10d "noname    " ""


;--------------------------------------
; receive program buffer:

BUFFER @buf 164d "program buffer"


;--------------------------------------
; effects page:

GLOBAL @efofs 155d ""
GLOBAL @efofr 135d ""

INCLUDE "x5e"


;--------------------------------------
; build a program dump:

OUT    @m_pr_dump \
       F0 42 30 36 40 {k \
; name (0-9)
       @v_name \
; osc (10-20)
       @v_oscmod +(@v_oscass,l(@v_oschld,1)) \
       I(@v_os1snd) @v_os1oct \
       I(@v_os2snd) @v_os2oct \
       @v_os2int @v_os2det @v_os2del \
; pitch eg (21-28)
       @v_pestlv @v_peatti @v_peatlv @v_pedcti @v_perlti @v_perllv \
       @v_petivl @v_pelvvl \
; vdf mod (29-32)
       +(@v_vmwave,l(@v_vmosc,5),l(@v_vmsync,7)) @v_vmfreq @v_vmdel @v_vmint \
; afttouch (33-36)
       @v_afbdrg @v_afcut @v_afvmod @v_afvda \
; joystick (37-39)
       @v_jobdrg @v_jocut @v_jomodv \
; osc1 pitch (40-49)
       @v_peint1 +(@v_p1wave,l(@v_p1sync,7)) @v_p1freq @v_p1del @v_p1fdin \
       @v_p1int @v_p1fqkt @v_p1inat @v_p1injo @v_p1fqat \
; vdf1 (50-56)
       @v_v1cut @v_v3key @v_v3inkt @v_v1int @v_v3tikt @v_v3tivl @v_v3invl \
; vdf1 eg (57-64)
       @v_v1atti @v_v1atlv @v_v1dcti @v_v1bklv @v_v1slti @v_v1sulv \
       @v_v1rlti @v_v1rllv \
; vda1 (65-70)
       @v_os1lvl @v_a3key @v_a3inkt @v_a3invl @v_a3tikt @v_a3tivl \
; vda1 eg (71-77)
       @v_a1atti @v_a1atlv @v_a1dcti @v_a1bklv @v_a1slti @v_a1sulv @v_a1rlti \
; osc1 eg time kbd track vel sws&pol (78-81)
       n(d(@v_v3atkt,0),0,d(@v_v3dckt,0),1,d(@v_v3slkt,0),2,d(@v_v3rlkt,0),3,d(@v_v3atkt,1),4,d(@v_v3dckt,1),5,d(@v_v3slkt,1),6,d(@v_v3rlkt,1),7) \
       n(d(@v_v3atvl,0),0,d(@v_v3dcvl,0),1,d(@v_v3slvl,0),2,d(@v_v3rlvl,0),3,d(@v_v3atvl,1),4,d(@v_v3dcvl,1),5,d(@v_v3slvl,1),6,d(@v_v3rlvl,1),7) \
       n(d(@v_a3atkt,0),0,d(@v_a3dckt,0),1,d(@v_a3slkt,0),2,d(@v_a3rlkt,0),3,d(@v_a3atkt,1),4,d(@v_a3dckt,1),5,d(@v_a3slkt,1),6,d(@v_a3rlkt,1),7) \
       n(d(@v_a3atvl,0),0,d(@v_a3dcvl,0),1,d(@v_a3slvl,0),2,d(@v_a3rlvl,0),3,d(@v_a3atvl,1),4,d(@v_a3dcvl,1),5,d(@v_a3slvl,1),6,d(@v_a3rlvl,1),7) \
; osc1 send (82)
       n(@v_os1sdd,0,@v_os1sdc,4) \
; color 1 (83-84)
       @v_v1coin @v_v1covl \
; kbd trk mode 1 (85)
       n(@v_v3kmod,0,@v_a3kmod,4) \
; osc1 pan (86)
       ?(<(@v_os1pan,31d),@v_os1pan,FF) \
; osc2 pitch (87-96)
       @v_peint2 +(@v_p2wave,l(@v_p2sync,7)) @v_p2freq @v_p2del @v_p2fdin \
       @v_p2int @v_p2fqkt @v_p2inat @v_p2injo @v_p2fqat \
; vdf2 (97-103)
       @v_v2cut @v_v4key @v_v4inkt @v_v2int @v_v4tikt @v_v4tivl @v_v4invl \
; vdf2 eg (104-111)
       @v_v2atti @v_v2atlv @v_v2dcti @v_v2bklv @v_v2slti @v_v2sulv \
       @v_v2rlti @v_v2rllv \
; vda2 (112-117)
       @v_os2lvl @v_a4key @v_a4inkt @v_a4invl @v_a4tikt @v_a4tivl \
; vda2 eg (118-124)
       @v_a2atti @v_a2atlv @v_a2dcti @v_a2bklv @v_a2slti @v_a2sulv @v_a2rlti \
; osc2 eg time kbd track vel sws&pol (125-128)
       n(d(@v_v4atkt,0),0,d(@v_v4dckt,0),1,d(@v_v4slkt,0),2,d(@v_v4rlkt,0),3,d(@v_v4atkt,1),4,d(@v_v4dckt,1),5,d(@v_v4slkt,1),6,d(@v_v4rlkt,1),7) \
       n(d(@v_v4atvl,0),0,d(@v_v4dcvl,0),1,d(@v_v4slvl,0),2,d(@v_v4rlvl,0),3,d(@v_v4atvl,1),4,d(@v_v4dcvl,1),5,d(@v_v4slvl,1),6,d(@v_v4rlvl,1),7) \
       n(d(@v_a4atkt,0),0,d(@v_a4dckt,0),1,d(@v_a4slkt,0),2,d(@v_a4rlkt,0),3,d(@v_a4atkt,1),4,d(@v_a4dckt,1),5,d(@v_a4slkt,1),6,d(@v_a4rlkt,1),7) \
       n(d(@v_a4atvl,0),0,d(@v_a4dcvl,0),1,d(@v_a4slvl,0),2,d(@v_a4rlvl,0),3,d(@v_a4atvl,1),4,d(@v_a4dcvl,1),5,d(@v_a4slvl,1),6,d(@v_a4rlvl,1),7) \
; osc2 send (129)
       n(@v_os2sdd,0,@v_os2sdc,4) \
; color 2 (130-131)
       @v_v2coin @v_v2covl \
; kbd trk mode 2 (132)
       n(@v_v4kmod,0,@v_a4kmod,4) \
; osc2 pan (133)
       ?(<(@v_os2pan,31d),@v_os2pan,FF) \
; reserved (134)
       0 \
; effects parameters (135-163)
       @m_ef \
       }k F7


;--------------------------------------
; write/read synth ; load/save disk:

BOX     @b_wr   @p_prog "WRITE/READ" 0d 37d 27d 8d ""

REQ     @rq_pr_edit  @m_mode_pe P(6) F0 42 30 36 10 F7
RECEIVE @r_pr_edit @b_wr "read from edit buffer" @rq_pr_edit &buf 2d 1d 5d 192d 'k' ""

OUT     @m_pr_edit  @m_mode_pe P(6) @m_pr_dump
SEND    @s_pr_edit  @b_wr "write to edit buffer" @m_pr_edit ""

CHOICE  @v_pr_nu_r  @b_wr "read num  = " @l_progs 1d 236d 1d 10d 4d "[1...100]=[A00...A99] [101...236]=[G001...G136]"
GLOBAL  @v_bnk j(#v_pr_nu_r,1d,0d,100d,1d,229d,2d) ""

REQ     @m_pr_ch B0 0 .(#v_bnk,0,38,3E) B0 20 0 C0 .(#v_bnk,-(#v_pr_nu_r,1d),-(#v_pr_nu_r,100d),J(#v_pr_nu_r,229d,0,10,19,20,28,40,18,30))
REQ     @rq_pr_nu  @m_mode_p P(6) @m_pr_ch P(6) @rq_pr_edit
RECEIVE @r_pr_nu @b_wr "read from prg num" @rq_pr_nu &buf 4d 1d 5d 192d 'k' "Global/ProgramChangeFilter must be at least on PRG !"

NUM     @v_pr_nu_w  @b_wr "write num = A" 0d 99d 0 10d ""

OUT     @m_pr_nu  @m_mode_pe P(6) F0 42 30 36 11 00 @v_pr_nu_w F7
SEND    @s_pr_nu  @b_wr "write to prg num (user)" @m_pr_nu ""


BOX     @b_sl   @p_prog "SAVE/LOAD" 27d 40d 51d 4d ""

SAVE    @@save @b_sl "save to file  :" 34d "p-noname.x5" @m_pr_dump ""

LOAD    @@load @b_sl "load from file:" 34d "p-noname.x5" &buf 1d 1d 5d 192d 'k' ""
OUT     @ z(#@load) @m_pr_edit

;--------------------------------------
; change each parameters after
; receiving a dump:

CHGBUF    @v_name #buf
CHGNUM    &v_oscmod :(#buf,10d)
CHGNUM    @v_oscass t(:(#buf,11d),1)
CHGNUM    @v_oschld t(:(#buf,11d),2)

CHGNUM    @v_os1snd M(:(#buf,12d),:(#buf,13d))
CHGNUM    @v_os1oct s(:(#buf,14d))
CHGNUM    @v_osdsnd M(:(#buf,12d),:(#buf,13d))
CHGNUM    @v_osdoct s(:(#buf,14d))
CHGNUM    @v_os2snd M(:(#buf,15d),:(#buf,16d))
CHGNUM    @v_os2oct s(:(#buf,17d))
CHGNUM    @v_os2int s(:(#buf,18d))
CHGNUM    @v_os2det s(:(#buf,19d))
CHGNUM    @v_os2del s(:(#buf,20d))

CHGNUM    @v_pestlv s(:(#buf,21d))
CHGNUM    @v_peatti :(#buf,22d)
CHGNUM    @v_peatlv s(:(#buf,23d))
CHGNUM    @v_pedcti :(#buf,24d)
CHGNUM    @v_perlti :(#buf,25d)
CHGNUM    @v_perllv s(:(#buf,26d))
CHGNUM    @v_petivl s(:(#buf,27d))
CHGNUM    @v_pelvvl s(:(#buf,28d))

CHGNUM    @v_vmwave c(:(#buf,29d),0,3)
CHGNUM    @v_vmosc  c(:(#buf,29d),5,2)
CHGNUM    @v_vmsync t(:(#buf,29d),7)
CHGNUM    @v_vmfreq :(#buf,30d)
CHGNUM    @v_vmdel  :(#buf,31d)
CHGNUM    @v_vmint  :(#buf,32d)

CHGNUM    @v_afbdrg s(:(#buf,33d))
CHGNUM    @v_afcut  s(:(#buf,34d))
CHGNUM    @v_afvmod :(#buf,35d)
CHGNUM    @v_afvda  s(:(#buf,36d))

CHGNUM    @v_jobdrg s(:(#buf,37d))
CHGNUM    @v_jocut  s(:(#buf,38d))
CHGNUM    @v_jomodv :(#buf,39d)

; parameters osc1:

CHGNUM    @v_peint1  s(:(#buf,40d))
CHGNUM    @v_p1wave  c(:(#buf,41d),0,3)
CHGNUM    @v_p1sync  t(:(#buf,41d),7)
CHGNUM    @v_p1freq  :(#buf,42d)
CHGNUM    @v_p1del   :(#buf,43d)
CHGNUM    @v_p1fdin  :(#buf,44d)
CHGNUM    @v_p1int   :(#buf,45d)
CHGNUM    @v_p1fqkt  s(:(#buf,46d))
CHGNUM    @v_p1inat  :(#buf,47d)
CHGNUM    @v_p1injo  :(#buf,48d)
CHGNUM    @v_p1fqat  :(#buf,49d)

CHGNUM    @v_v1cut   :(#buf,50d)
CHGNUM    @v_v3key   :(#buf,51d)
CHGNUM    @v_v3inkt  s(:(#buf,52d))
CHGNUM    @v_v1int   :(#buf,53d)
CHGNUM    @v_v3tikt  :(#buf,54d)
CHGNUM    @v_v3tivl  :(#buf,55d)
CHGNUM    @v_v3invl  s(:(#buf,56d))

CHGNUM    @v_v1atti  :(#buf,57d)
CHGNUM    @v_v1atlv  s(:(#buf,58d))
CHGNUM    @v_v1dcti  :(#buf,59d)
CHGNUM    @v_v1bklv  s(:(#buf,60d))
CHGNUM    @v_v1slti  :(#buf,61d)
CHGNUM    @v_v1sulv  s(:(#buf,62d))
CHGNUM    @v_v1rlti  :(#buf,63d)
CHGNUM    @v_v1rllv  s(:(#buf,64d))

CHGNUM    @v_os1lvl  :(#buf,65d)
CHGNUM    @v_osdlvl  :(#buf,65d)
CHGNUM    @v_a3key   :(#buf,66d)
CHGNUM    @v_a3inkt  s(:(#buf,67d))
CHGNUM    @v_a3invl  s(:(#buf,68d))
CHGNUM    @v_a3tikt  :(#buf,69d)
CHGNUM    @v_a3tivl  :(#buf,70d)

CHGNUM    @v_a1atti  :(#buf,71d)
CHGNUM    @v_a1atlv  :(#buf,72d)
CHGNUM    @v_a1dcti  :(#buf,73d)
CHGNUM    @v_a1bklv  :(#buf,74d)
CHGNUM    @v_a1slti  :(#buf,75d)
CHGNUM    @v_a1sulv  :(#buf,76d)
CHGNUM    @v_a1rlti  :(#buf,77d)

CHGNUM    @v_v3atkt  ?(t(:(#buf,78d),0),?(t(:(#buf,78d),4),-1,1),0)
CHGNUM    @v_v3dckt  ?(t(:(#buf,78d),1),?(t(:(#buf,78d),5),-1,1),0)
CHGNUM    @v_v3slkt  ?(t(:(#buf,78d),2),?(t(:(#buf,78d),6),-1,1),0)
CHGNUM    @v_v3rlkt  ?(t(:(#buf,78d),3),?(t(:(#buf,78d),7),-1,1),0)

CHGNUM    @v_v3atvl  ?(t(:(#buf,79d),0),?(t(:(#buf,79d),4),-1,1),0)
CHGNUM    @v_v3dcvl  ?(t(:(#buf,79d),1),?(t(:(#buf,79d),5),-1,1),0)
CHGNUM    @v_v3slvl  ?(t(:(#buf,79d),2),?(t(:(#buf,79d),6),-1,1),0)
CHGNUM    @v_v3rlvl  ?(t(:(#buf,79d),3),?(t(:(#buf,79d),7),-1,1),0)

CHGNUM    @v_a3atkt  ?(t(:(#buf,80d),0),?(t(:(#buf,80d),4),-1,1),0)
CHGNUM    @v_a3dckt  ?(t(:(#buf,80d),1),?(t(:(#buf,80d),5),-1,1),0)
CHGNUM    @v_a3slkt  ?(t(:(#buf,80d),2),?(t(:(#buf,80d),6),-1,1),0)
CHGNUM    @v_a3rlkt  ?(t(:(#buf,80d),3),?(t(:(#buf,80d),7),-1,1),0)

CHGNUM    @v_a3atvl  ?(t(:(#buf,81d),0),?(t(:(#buf,81d),4),-1,1),0)
CHGNUM    @v_a3dcvl  ?(t(:(#buf,81d),1),?(t(:(#buf,81d),5),-1,1),0)
CHGNUM    @v_a3slvl  ?(t(:(#buf,81d),2),?(t(:(#buf,81d),6),-1,1),0)
CHGNUM    @v_a3rlvl  ?(t(:(#buf,81d),3),?(t(:(#buf,81d),7),-1,1),0)

CHGNUM    @v_os1sdd  c(:(#buf,82d),0,4)
CHGNUM    @v_os1sdc  c(:(#buf,82d),4,4)
CHGNUM    @v_osdsdd  c(:(#buf,82d),0,4)
CHGNUM    @v_osdsdc  c(:(#buf,82d),4,4)

CHGNUM    @v_v1coin  :(#buf,83d)
CHGNUM    @v_v1covl  s(:(#buf,84d))

CHGNUM    @v_v3kmod  c(:(#buf,85d),0,2)
CHGNUM    @v_a3kmod  c(:(#buf,85d),4,2)

CHGNUM    @v_os1pan  ?(=(:(#buf,86d),FF),32d,:(#buf,86d))
CHGNUM    @v_osdpan  ?(=(:(#buf,86d),FF),32d,:(#buf,86d))

; parameters osc2:

CHGNUM    @v_peint2  s(:(#buf,87d))
CHGNUM    @v_p2wave  c(:(#buf,88d),0,3)
CHGNUM    @v_p2sync  t(:(#buf,88d),7)
CHGNUM    @v_p2freq  :(#buf,89d)
CHGNUM    @v_p2del   :(#buf,90d)
CHGNUM    @v_p2fdin  :(#buf,91d)
CHGNUM    @v_p2int   :(#buf,92d)
CHGNUM    @v_p2fqkt  s(:(#buf,93d))
CHGNUM    @v_p2inat  :(#buf,94d)
CHGNUM    @v_p2injo  :(#buf,95d)
CHGNUM    @v_p2fqat  :(#buf,96d)

CHGNUM    @v_v2cut   :(#buf,97d)
CHGNUM    @v_v4key   :(#buf,98d)
CHGNUM    @v_v4inkt  s(:(#buf,99d))
CHGNUM    @v_v2int   :(#buf,100d)
CHGNUM    @v_v4tikt  :(#buf,101d)
CHGNUM    @v_v4tivl  :(#buf,102d)
CHGNUM    @v_v4invl  s(:(#buf,103d))

CHGNUM    @v_v2atti  :(#buf,104d)
CHGNUM    @v_v2atlv  s(:(#buf,105d))
CHGNUM    @v_v2dcti  :(#buf,106d)
CHGNUM    @v_v2bklv  s(:(#buf,107d))
CHGNUM    @v_v2slti  :(#buf,108d)
CHGNUM    @v_v2sulv  s(:(#buf,109d))
CHGNUM    @v_v2rlti  :(#buf,110d)
CHGNUM    @v_v2rllv  s(:(#buf,111d))

CHGNUM    @v_os2lvl  :(#buf,112d)
CHGNUM    @v_a4key   :(#buf,113d)
CHGNUM    @v_a4inkt  s(:(#buf,114d))
CHGNUM    @v_a4invl  s(:(#buf,115d))
CHGNUM    @v_a4tikt  :(#buf,116d)
CHGNUM    @v_a4tivl  :(#buf,117d)

CHGNUM    @v_a2atti  :(#buf,118d)
CHGNUM    @v_a2atlv  :(#buf,119d)
CHGNUM    @v_a2dcti  :(#buf,120d)
CHGNUM    @v_a2bklv  :(#buf,121d)
CHGNUM    @v_a2slti  :(#buf,122d)
CHGNUM    @v_a2sulv  :(#buf,123d)
CHGNUM    @v_a2rlti  :(#buf,124d)

CHGNUM    @v_v4atkt  ?(t(:(#buf,125d),0),?(t(:(#buf,125d),4),-1,1),0)
CHGNUM    @v_v4dckt  ?(t(:(#buf,125d),1),?(t(:(#buf,125d),5),-1,1),0)
CHGNUM    @v_v4slkt  ?(t(:(#buf,125d),2),?(t(:(#buf,125d),6),-1,1),0)
CHGNUM    @v_v4rlkt  ?(t(:(#buf,125d),3),?(t(:(#buf,125d),7),-1,1),0)

CHGNUM    @v_v4atvl  ?(t(:(#buf,126d),0),?(t(:(#buf,126d),4),-1,1),0)
CHGNUM    @v_v4dcvl  ?(t(:(#buf,126d),1),?(t(:(#buf,126d),5),-1,1),0)
CHGNUM    @v_v4slvl  ?(t(:(#buf,126d),2),?(t(:(#buf,126d),6),-1,1),0)
CHGNUM    @v_v4rlvl  ?(t(:(#buf,126d),3),?(t(:(#buf,126d),7),-1,1),0)

CHGNUM    @v_a4atkt  ?(t(:(#buf,127d),0),?(t(:(#buf,127d),4),-1,1),0)
CHGNUM    @v_a4dckt  ?(t(:(#buf,127d),1),?(t(:(#buf,127d),5),-1,1),0)
CHGNUM    @v_a4slkt  ?(t(:(#buf,127d),2),?(t(:(#buf,127d),6),-1,1),0)
CHGNUM    @v_a4rlkt  ?(t(:(#buf,127d),3),?(t(:(#buf,127d),7),-1,1),0)

CHGNUM    @v_a4atvl  ?(t(:(#buf,128d),0),?(t(:(#buf,128d),4),-1,1),0)
CHGNUM    @v_a4dcvl  ?(t(:(#buf,128d),1),?(t(:(#buf,128d),5),-1,1),0)
CHGNUM    @v_a4slvl  ?(t(:(#buf,128d),2),?(t(:(#buf,128d),6),-1,1),0)
CHGNUM    @v_a4rlvl  ?(t(:(#buf,128d),3),?(t(:(#buf,128d),7),-1,1),0)

CHGNUM    @v_os2sdd  c(:(#buf,129d),0,4)
CHGNUM    @v_os2sdc  c(:(#buf,129d),4,4)

CHGNUM    @v_v2coin  :(#buf,130d)
CHGNUM    @v_v2covl  s(:(#buf,131d))

CHGNUM    @v_v4kmod  c(:(#buf,132d),0,2)
CHGNUM    @v_a4kmod  c(:(#buf,132d),4,2)

CHGNUM    @v_os2pan  ?(=(:(#buf,133d),FF),32d,:(#buf,133d))

; effects are changed in file x5e

