PROGRAM_NAME='RICHMOND SOUND, DM1616HD, MIDI, BASIC, 10-98, BA' (* DATE:05/20/99 TIME:16:29:37 *) (***********************************************************) (* The following code block is provided as a guide to *) (* programming the device(s) listed above. This is a *) (* sample only, and will most likely require modification *) (* to be integrated into a master program. *) (* *) (* Device-specific protocols should be obtained directly *) (* from the equipment manufacturer to ensure compliance *) (* with the most current versions. Within the limits *) (* imposed by any non-disclosure agreements, AMX will *) (* provide protocols upon request. *) (* *) (* If further programming assistance is required, please *) (* contact your AMX customer support team. *) (* *) (***********************************************************) (* This program is intended to be used with the Touch *) (* Panel file 'Richmond.tpd' in the Equip directory. *) (***********************************************************) (* DEVICE NUMBER DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_DEVICE (* AXB-MIDI *) MIXER = 3 (* 1616HD *) PANEL = 128 (* AMX PANEL *) (***********************************************************) (* CONSTANT DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_CONSTANT (*** GO & STOP CONSTANT VALUES ***) CUR_SELECT = 0 SPEC_SELECT = 1 ALL_CHANNELS = 0 SPEC_CHANNEL = 1 (***********************************************************) (* VARIABLE DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_VARIABLE MIXER_BUFFER[100] (* SWITCHER BUFFER *) PANEL_BUFFER[100] BUTTON_GROUP MIXER_ID MIXER_IN[16] MIXER_OUT[16] (* Gain variables *) GAIN_CHANNEL INTEGER GAIN_PRESET[16] INTEGER GAIN_PRESET_OLD[16] GAIN_PRESET_UP GAIN_PRESET_DN GAIN_PRESET_FL (* delay variables *) DELAY_PRESET DELAY_PRESET_OLD DELAY_CHANNEL DELAY_OUTPUT_FL DELAY_ENABLE[2][16] DELAY_ENABLE_OLD[2][16] (* EQ variables *) EQ_CHANNEL EQ_OUTPUT_FL EQ_PRESET[2][16] EQ_PRESET_OLD[2][16] EQ_PRESET_LEVEL EQ_PRESET_UP EQ_PRESET_DN (* Submaster variables *) SUBMAST_NUM SUBMAST_LEVEL[32] SUBMAST_LEVEL_OLD[32] SUBMAST_BARGRAPH (* Audio Playback variables *) GO_SELECT GO_CHANNEL GO_CH_NUM STOP_SELECT STOP_CHANNEL STOP_CH_NUM GO_SELECT_FL GO_SAMPLE_FL STOP_SELECT_FL STOP_SAMPLE_FL GO_SELECT_NUM GO_SAMPLE_NUM STOP_SELECT_NUM STOP_SAMPLE_NUM BUFFER_MESSAGE[100] NEW_LVL TEMP_VAR TEMP_STRING[100] (***********************************************************) (* LATCHING DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_LATCHING (***********************************************************) (* MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_MUTUALLY_EXCLUSIVE (***********************************************************) (* SUBROUTINE DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_CALL 'BUTTON GROUP' (GRP) { IF (BUTTON_GROUP <> GRP) { SELECT { ACTIVE (BUTTON_GROUP = 1): (* Recall Crosspoint *) GAIN_PRESET[GAIN_CHANNEL+1] = GAIN_PRESET_OLD[GAIN_CHANNEL+1] ACTIVE (BUTTON_GROUP = 21): (* Recall Delay *) DELAY_PRESET = DELAY_PRESET_OLD ACTIVE (BUTTON_GROUP = 31): (* Enable Delay *) DELAY_ENABLE[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] = DELAY_ENABLE_OLD[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] ACTIVE (BUTTON_GROUP = 51): (* Recall EQ *) EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET_OLD[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] ACTIVE (BUTTON_GROUP = 71): (* Submaster Level *) SUBMAST_LEVEL[SUBMAST_NUM+1] = SUBMAST_LEVEL_OLD[SUBMAST_NUM+1] } BUTTON_GROUP = GRP } } DEFINE_CALL 'SEND TO AUDIOBOX' (DEV,CMD[20]) { SEND_STRING DEV,"$F0,CMD,$F7" SEND_STRING 0,"$F0,CMD,$F7" } DEFINE_CALL 'AUDIOBOX MSC' (DEV,MSCCMD[20]) { CALL 'SEND TO AUDIOBOX' (DEV,"$7F,MIXER_ID,$02,MSCCMD") } (* DEFINE_CALL 'AUDIOBOX SYS EX' (DEV,SYSCMD[20]) { CALL 'SEND TO AUDIOBOX' (DEV,"$00,$00,$40,$02,SYSCMD") } *) DEFINE_CALL 'AUDIOBOX BUFFER' LOCAL_VAR LEN DATA[100] { LEN = LENGTH_STRING(MIXER_BUFFER) IF (MIXER_BUFFER[2] = $7F) (* MSC Command *) { } ELSE IF (MIXER_BUFFER[2] = $00) (* Sys Excl Command *) { DATA = MID_STRING(MIXER_BUFFER,8,(LEN-9)) SELECT { ACTIVE (DATA[1] = $20): (* Device ID Response *) { BUFFER_MESSAGE = "'Device ID is $',itohex(data[2]),'.'" } ACTIVE (DATA[1] = $40): (* IO Levels Response *) { MIXER_IN = MID_STRING(DATA,2,16) MIXER_OUT = "" BUFFER_MESSAGE = "'Input #1 level is ',itoa(mixer_in[1]),'.'" } ACTIVE (1): { BUFFER_MESSAGE = "'Other: ',data" } } } CLEAR_BUFFER MIXER_BUFFER } (***********************************************************) (* STARTUP CODE GOES BELOW *) (***********************************************************) DEFINE_START CREATE_BUFFER MIXER,MIXER_BUFFER CREATE_BUFFER PANEL,PANEL_BUFFER CREATE_LEVEL PANEL,1,EQ_PRESET_LEVEL CREATE_LEVEL PANEL,2,SUBMAST_BARGRAPH SEND_COMMAND MIXER,'INA-4' (* MidiBox command to route Midi-In to buffer *) (*** Initialize variables ***) SET_LENGTH_STRING (SUBMAST_LEVEL,32) IF (LEFT_STRING(SUBMAST_LEVEL,8) = "0,0,0,0,0,0,0,0") { SUBMAST_LEVEL = "64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64" SUBMAST_LEVEL_OLD = "64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64" } IF (GO_CH_NUM < 8) GO_CH_NUM = 8 IF (STOP_CH_NUM < 8) STOP_CH_NUM = 8 (***********************************************************) (* THE ACTUAL PROGRAM GOES BELOW *) (***********************************************************) DEFINE_PROGRAM (*** Recall Crosspoint Levels ***) PUSH[PANEL,1] (* CHANNEL 1 *) PUSH[PANEL,2] (* CHANNEL 2 *) PUSH[PANEL,3] (* CHANNEL 3 *) PUSH[PANEL,4] (* CHANNEL 4 *) PUSH[PANEL,5] (* CHANNEL 5 *) PUSH[PANEL,6] (* CHANNEL 6 *) PUSH[PANEL,7] (* CHANNEL 7 *) PUSH[PANEL,8] (* CHANNEL 8 *) PUSH[PANEL,9] (* CHANNEL 9 *) PUSH[PANEL,10] (* CHANNEL 10 *) PUSH[PANEL,11] (* CHANNEL 11 *) PUSH[PANEL,12] (* CHANNEL 12 *) PUSH[PANEL,13] (* CHANNEL 13 *) PUSH[PANEL,14] (* CHANNEL 14 *) PUSH[PANEL,15] (* CHANNEL 15 *) PUSH[PANEL,16] (* CHANNEL 16 *) IF (GAIN_CHANNEL <> PUSH_CHANNEL - 1) { GAIN_PRESET[GAIN_CHANNEL+1] = GAIN_PRESET_OLD[GAIN_CHANNEL+1] GAIN_CHANNEL = PUSH_CHANNEL - 1 SEND_COMMAND PANEL,"'TEXT1-',ITOA(GAIN_PRESET[GAIN_CHANNEL+1])" CALL 'BUTTON GROUP' (1) } PUSH[PANEL,17] (* INCREASE PRESET *) { IF (GAIN_PRESET[GAIN_CHANNEL+1] < 622) { ON[GAIN_PRESET_UP] GAIN_PRESET[GAIN_CHANNEL+1] = GAIN_PRESET[GAIN_CHANNEL+1] + 1 SEND_COMMAND PANEL,"'TEXT1-',ITOA(GAIN_PRESET[GAIN_CHANNEL+1])" } CALL 'BUTTON GROUP' (1) } PUSH[PANEL,18] (* DECREASE PRESET *) { IF (GAIN_PRESET[GAIN_CHANNEL+1] > 0) { ON[GAIN_PRESET_DN] GAIN_PRESET[GAIN_CHANNEL+1] = GAIN_PRESET[GAIN_CHANNEL+1] - 1 SEND_COMMAND PANEL,"'TEXT1-',ITOA(GAIN_PRESET[GAIN_CHANNEL+1])" } CALL 'BUTTON GROUP' (1) } RELEASE[PANEL,17] RELEASE[PANEL,18] { CANCEL_WAIT 'GAIN PRESET UP' CANCEL_WAIT 'GAIN PRESET DOWN' OFF[GAIN_PRESET_UP] OFF[GAIN_PRESET_DN] } IF (GAIN_PRESET_UP) WAIT 1 'GAIN PRESET UP' { IF (GAIN_PRESET[GAIN_CHANNEL+1] < 622) { GAIN_PRESET[GAIN_CHANNEL+1] = GAIN_PRESET[GAIN_CHANNEL+1] + 1 SEND_COMMAND PANEL,"'TEXT1-',ITOA(GAIN_PRESET[GAIN_CHANNEL+1])" } ELSE OFF[GAIN_PRESET_UP] } ELSE IF (GAIN_PRESET_DN) WAIT 1 'GAIN PRESET DOWN' { IF (GAIN_PRESET[GAIN_CHANNEL+1] > 0) { GAIN_PRESET[GAIN_CHANNEL+1] = GAIN_PRESET[GAIN_CHANNEL+1] - 1 SEND_COMMAND PANEL,"'TEXT1-',ITOA(GAIN_PRESET[GAIN_CHANNEL+1])" } ELSE OFF[GAIN_PRESET_DN] } PUSH[PANEL,19] (* KEYPAD ENTRY *) { ON[GAIN_PRESET_FL] SEND_COMMAND PANEL,'AKEYP-' } PUSH[PANEL,121] (* SEND *) { CALL 'AUDIOBOX MSC' (MIXER,"$10,$06,$03,GAIN_CHANNEL, (GAIN_PRESET[GAIN_CHANNEL+1]%$80),(GAIN_PRESET[GAIN_CHANNEL+1]/$80), 0,0,0,0,0") GAIN_PRESET_OLD[GAIN_CHANNEL+1] = GAIN_PRESET[GAIN_CHANNEL+1] CALL 'BUTTON GROUP' (1) } [PANEL,1] = (GAIN_CHANNEL = 0) [PANEL,2] = (GAIN_CHANNEL = 1) [PANEL,3] = (GAIN_CHANNEL = 2) [PANEL,4] = (GAIN_CHANNEL = 3) [PANEL,5] = (GAIN_CHANNEL = 4) [PANEL,6] = (GAIN_CHANNEL = 5) [PANEL,7] = (GAIN_CHANNEL = 6) [PANEL,8] = (GAIN_CHANNEL = 7) [PANEL,9] = (GAIN_CHANNEL = 8) [PANEL,10] = (GAIN_CHANNEL = 9) [PANEL,11] = (GAIN_CHANNEL = 10) [PANEL,12] = (GAIN_CHANNEL = 11) [PANEL,13] = (GAIN_CHANNEL = 12) [PANEL,14] = (GAIN_CHANNEL = 13) [PANEL,15] = (GAIN_CHANNEL = 14) [PANEL,16] = (GAIN_CHANNEL = 15) (*** Recall & Enable Delay ***) PUSH[PANEL,21] (* DELAY PRESET #0 *) PUSH[PANEL,22] (* DELAY PRESET #1 *) PUSH[PANEL,23] (* DELAY PRESET #2 *) PUSH[PANEL,24] (* DELAY PRESET #3 *) PUSH[PANEL,25] (* DELAY PRESET #4 *) PUSH[PANEL,26] (* DELAY PRESET #5 *) PUSH[PANEL,27] (* DELAY PRESET #6 *) PUSH[PANEL,28] (* DELAY PRESET #7 *) { DELAY_PRESET = PUSH_CHANNEL - 21 CALL 'BUTTON GROUP' (21) } PUSH[PANEL,122] (* SEND *) { CALL 'AUDIOBOX MSC' (MIXER,"$10,$06,$00,$15,DELAY_PRESET,0") DELAY_PRESET_OLD = DELAY_PRESET CALL 'BUTTON GROUP' (21) } PUSH[PANEL,31] (* CHANNEL 1 *) PUSH[PANEL,32] (* CHANNEL 2 *) PUSH[PANEL,33] (* CHANNEL 3 *) PUSH[PANEL,34] (* CHANNEL 4 *) PUSH[PANEL,35] (* CHANNEL 5 *) PUSH[PANEL,36] (* CHANNEL 6 *) PUSH[PANEL,37] (* CHANNEL 7 *) PUSH[PANEL,38] (* CHANNEL 8 *) PUSH[PANEL,39] (* CHANNEL 9 *) PUSH[PANEL,40] (* CHANNEL 10 *) PUSH[PANEL,41] (* CHANNEL 11 *) PUSH[PANEL,42] (* CHANNEL 12 *) PUSH[PANEL,43] (* CHANNEL 13 *) PUSH[PANEL,44] (* CHANNEL 14 *) PUSH[PANEL,45] (* CHANNEL 15 *) PUSH[PANEL,46] (* CHANNEL 16 *) IF (DELAY_CHANNEL <> PUSH_CHANNEL - 31) { DELAY_ENABLE[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] = DELAY_ENABLE_OLD[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] DELAY_CHANNEL = PUSH_CHANNEL - 31 CALL 'BUTTON GROUP' (31) } PUSH[PANEL,47] (* INPUT *) PUSH[PANEL,48] (* OUTPUT *) IF (DELAY_OUTPUT_FL <> PUSH_CHANNEL - 47) { DELAY_ENABLE[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] = DELAY_ENABLE_OLD[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] DELAY_OUTPUT_FL = PUSH_CHANNEL - 47 CALL 'BUTTON GROUP' (31) } PUSH[PANEL,29] (* ENABLE *) PUSH[PANEL,30] (* BYPASS *) { DELAY_ENABLE[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] = 30 - PUSH_CHANNEL CALL 'BUTTON GROUP' (31) } PUSH[PANEL,123] (* SEND *) { TEMP_VAR = DELAY_CHANNEL + ($20 * DELAY_OUTPUT_FL) CALL 'AUDIOBOX MSC' (MIXER,"$10,$06,$00,$0B,TEMP_VAR, DELAY_ENABLE[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1]") DELAY_ENABLE_OLD[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] = DELAY_ENABLE[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] CALL 'BUTTON GROUP' (31) } [PANEL,21] = (DELAY_PRESET = 0) [PANEL,22] = (DELAY_PRESET = 1) [PANEL,23] = (DELAY_PRESET = 2) [PANEL,24] = (DELAY_PRESET = 3) [PANEL,25] = (DELAY_PRESET = 4) [PANEL,26] = (DELAY_PRESET = 5) [PANEL,27] = (DELAY_PRESET = 6) [PANEL,28] = (DELAY_PRESET = 7) [PANEL,29] = (DELAY_ENABLE[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] = 1) [PANEL,30] = (DELAY_ENABLE[DELAY_OUTPUT_FL+1][DELAY_CHANNEL+1] = 0) [PANEL,31] = (DELAY_CHANNEL = 0) [PANEL,32] = (DELAY_CHANNEL = 1) [PANEL,33] = (DELAY_CHANNEL = 2) [PANEL,34] = (DELAY_CHANNEL = 3) [PANEL,35] = (DELAY_CHANNEL = 4) [PANEL,36] = (DELAY_CHANNEL = 5) [PANEL,37] = (DELAY_CHANNEL = 6) [PANEL,38] = (DELAY_CHANNEL = 7) [PANEL,39] = (DELAY_CHANNEL = 8) [PANEL,40] = (DELAY_CHANNEL = 9) [PANEL,41] = (DELAY_CHANNEL = 10) [PANEL,42] = (DELAY_CHANNEL = 11) [PANEL,43] = (DELAY_CHANNEL = 12) [PANEL,44] = (DELAY_CHANNEL = 13) [PANEL,45] = (DELAY_CHANNEL = 14) [PANEL,46] = (DELAY_CHANNEL = 15) [PANEL,47] = NOT(DELAY_OUTPUT_FL) [PANEL,48] = DELAY_OUTPUT_FL (*** Recall EQ ***) PUSH[PANEL,51] (* CHANNEL 1 *) PUSH[PANEL,52] (* CHANNEL 2 *) PUSH[PANEL,53] (* CHANNEL 3 *) PUSH[PANEL,54] (* CHANNEL 4 *) PUSH[PANEL,55] (* CHANNEL 5 *) PUSH[PANEL,56] (* CHANNEL 6 *) PUSH[PANEL,57] (* CHANNEL 7 *) PUSH[PANEL,58] (* CHANNEL 8 *) PUSH[PANEL,59] (* CHANNEL 9 *) PUSH[PANEL,60] (* CHANNEL 10 *) PUSH[PANEL,61] (* CHANNEL 11 *) PUSH[PANEL,62] (* CHANNEL 12 *) PUSH[PANEL,63] (* CHANNEL 13 *) PUSH[PANEL,64] (* CHANNEL 14 *) PUSH[PANEL,65] (* CHANNEL 15 *) PUSH[PANEL,66] (* CHANNEL 16 *) IF (EQ_CHANNEL <> PUSH_CHANNEL - 51) { EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET_OLD[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] EQ_CHANNEL = PUSH_CHANNEL - 51 SEND_COMMAND PANEL,"'TEXT3-',ITOA(EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1])" EQ_PRESET_LEVEL = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1]*255/32 SEND_LEVEL PANEL,1,EQ_PRESET_LEVEL CALL 'BUTTON GROUP' (51) } PUSH[PANEL,67] (* INPUT *) PUSH[PANEL,68] (* OUTPUT *) IF (EQ_OUTPUT_FL <> PUSH_CHANNEL - 67) { EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET_OLD[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] EQ_OUTPUT_FL = PUSH_CHANNEL - 67 SEND_COMMAND PANEL,"'TEXT3-',ITOA(EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1])" EQ_PRESET_LEVEL = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1]*255/32 SEND_LEVEL PANEL,1,EQ_PRESET_LEVEL CALL 'BUTTON GROUP' (51) } PUSH[PANEL,69] (* INCREASE PRESET *) { IF (EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] < 32) { ON[EQ_PRESET_UP] EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] + 1 SEND_COMMAND PANEL,"'TEXT3-',ITOA(EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1])" EQ_PRESET_LEVEL = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1]*255/32 SEND_LEVEL PANEL,1,EQ_PRESET_LEVEL } CALL 'BUTTON GROUP' (51) } PUSH[PANEL,70] (* DECREASE PRESET *) { IF (EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] > 0) { ON[EQ_PRESET_DN] EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] - 1 SEND_COMMAND PANEL,"'TEXT3-',ITOA(EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1])" EQ_PRESET_LEVEL = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1]*255/32 SEND_LEVEL PANEL,1,EQ_PRESET_LEVEL } CALL 'BUTTON GROUP' (51) } RELEASE[PANEL,69] RELEASE[PANEL,70] { CANCEL_WAIT 'EQ PRESET UP' CANCEL_WAIT 'EQ PRESET DOWN' OFF[EQ_PRESET_UP] OFF[EQ_PRESET_DN] } IF (EQ_PRESET_UP) WAIT 5 'EQ PRESET UP' { IF (EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] < 32) { EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] + 1 SEND_COMMAND PANEL,"'TEXT3-',ITOA(EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1])" EQ_PRESET_LEVEL = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1]*255/32 SEND_LEVEL PANEL,1,EQ_PRESET_LEVEL } ELSE OFF[EQ_PRESET_UP] } ELSE IF (EQ_PRESET_DN) WAIT 5 'EQ PRESET DOWN' { IF (EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] > 0) { EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] - 1 SEND_COMMAND PANEL,"'TEXT3-',ITOA(EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1])" EQ_PRESET_LEVEL = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1]*255/32 SEND_LEVEL PANEL,1,EQ_PRESET_LEVEL } ELSE OFF[EQ_PRESET_DN] } IF (EQ_PRESET_LEVEL <> (EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1]*255/32)) { EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET_LEVEL *32/255 EQ_PRESET_LEVEL = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1]*255/32 SEND_COMMAND PANEL,"'TEXT3-',ITOA(EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1])" } PUSH[PANEL,124] (* SEND *) { TEMP_VAR = DELAY_CHANNEL + ($20 * DELAY_OUTPUT_FL) CALL 'AUDIOBOX MSC' (MIXER,"$10,$06,$0A,TEMP_VAR, EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1],0") EQ_PRESET_OLD[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] = EQ_PRESET[EQ_OUTPUT_FL+1][EQ_CHANNEL+1] CALL 'BUTTON GROUP' (51) } [PANEL,51] = (EQ_CHANNEL = 0) [PANEL,52] = (EQ_CHANNEL = 1) [PANEL,53] = (EQ_CHANNEL = 2) [PANEL,54] = (EQ_CHANNEL = 3) [PANEL,55] = (EQ_CHANNEL = 4) [PANEL,56] = (EQ_CHANNEL = 5) [PANEL,57] = (EQ_CHANNEL = 6) [PANEL,58] = (EQ_CHANNEL = 7) [PANEL,59] = (EQ_CHANNEL = 8) [PANEL,60] = (EQ_CHANNEL = 9) [PANEL,61] = (EQ_CHANNEL = 10) [PANEL,62] = (EQ_CHANNEL = 11) [PANEL,63] = (EQ_CHANNEL = 12) [PANEL,64] = (EQ_CHANNEL = 13) [PANEL,65] = (EQ_CHANNEL = 14) [PANEL,66] = (EQ_CHANNEL = 15) [PANEL,67] = (EQ_OUTPUT_FL = 0) [PANEL,68] = (EQ_OUTPUT_FL = 1) (*** Set Submaster Levels ***) PUSH[PANEL,71] (* SUBMASTER 1 *) PUSH[PANEL,72] (* SUBMASTER 2 *) PUSH[PANEL,73] (* SUBMASTER 3 *) PUSH[PANEL,74] (* SUBMASTER 4 *) PUSH[PANEL,75] (* SUBMASTER 5 *) PUSH[PANEL,76] (* SUBMASTER 6 *) PUSH[PANEL,77] (* SUBMASTER 7 *) PUSH[PANEL,78] (* SUBMASTER 8 *) PUSH[PANEL,79] (* SUBMASTER 9 *) PUSH[PANEL,80] (* SUBMASTER 10 *) PUSH[PANEL,81] (* SUBMASTER 11 *) PUSH[PANEL,82] (* SUBMASTER 12 *) PUSH[PANEL,83] (* SUBMASTER 13 *) PUSH[PANEL,84] (* SUBMASTER 14 *) PUSH[PANEL,85] (* SUBMASTER 15 *) PUSH[PANEL,86] (* SUBMASTER 16 *) PUSH[PANEL,87] (* SUBMASTER 17 *) PUSH[PANEL,88] (* SUBMASTER 18 *) PUSH[PANEL,89] (* SUBMASTER 19 *) PUSH[PANEL,90] (* SUBMASTER 20 *) PUSH[PANEL,90] (* SUBMASTER 20 *) PUSH[PANEL,91] (* SUBMASTER 21 *) PUSH[PANEL,92] (* SUBMASTER 22 *) PUSH[PANEL,93] (* SUBMASTER 23 *) PUSH[PANEL,94] (* SUBMASTER 24 *) PUSH[PANEL,95] (* SUBMASTER 25 *) PUSH[PANEL,96] (* SUBMASTER 26 *) PUSH[PANEL,97] (* SUBMASTER 27 *) PUSH[PANEL,98] (* SUBMASTER 28 *) PUSH[PANEL,99] (* SUBMASTER 29 *) PUSH[PANEL,100] (* SUBMASTER 30 *) PUSH[PANEL,101] (* SUBMASTER 31 *) PUSH[PANEL,102] (* SUBMASTER 32 *) IF (SUBMAST_NUM <> PUSH_CHANNEL - 71) { SUBMAST_LEVEL[SUBMAST_NUM+1] = SUBMAST_LEVEL_OLD[SUBMAST_NUM+1] SUBMAST_NUM = PUSH_CHANNEL - 71 SEND_COMMAND PANEL,"'TEXT4-',ITOA(SUBMAST_LEVEL[SUBMAST_NUM+1])" SUBMAST_BARGRAPH = SUBMAST_LEVEL[SUBMAST_NUM+1]*2 SEND_LEVEL PANEL,2,SUBMAST_BARGRAPH CALL 'BUTTON GROUP' (71) } IF (SUBMAST_LEVEL[SUBMAST_NUM+1] <> (SUBMAST_BARGRAPH/2)) { SUBMAST_LEVEL[SUBMAST_NUM+1] = SUBMAST_BARGRAPH/2 SEND_COMMAND PANEL,"'TEXT4-',ITOA(SUBMAST_LEVEL[SUBMAST_NUM+1])" } PUSH[PANEL,125] (* SEND *) { CALL 'AUDIOBOX MSC' (MIXER,"$10,$06,$00,$06,SUBMAST_NUM, SUBMAST_LEVEL[SUBMAST_NUM+1]") SUBMAST_LEVEL_OLD[SUBMAST_NUM+1] = SUBMAST_LEVEL[SUBMAST_NUM+1] CALL 'BUTTON GROUP' (71) } [PANEL,71] = (SUBMAST_NUM = 0) [PANEL,72] = (SUBMAST_NUM = 1) [PANEL,73] = (SUBMAST_NUM = 2) [PANEL,74] = (SUBMAST_NUM = 3) [PANEL,75] = (SUBMAST_NUM = 4) [PANEL,76] = (SUBMAST_NUM = 5) [PANEL,77] = (SUBMAST_NUM = 6) [PANEL,78] = (SUBMAST_NUM = 7) [PANEL,79] = (SUBMAST_NUM = 8) [PANEL,80] = (SUBMAST_NUM = 9) [PANEL,81] = (SUBMAST_NUM = 10) [PANEL,82] = (SUBMAST_NUM = 11) [PANEL,83] = (SUBMAST_NUM = 12) [PANEL,84] = (SUBMAST_NUM = 13) [PANEL,85] = (SUBMAST_NUM = 14) [PANEL,86] = (SUBMAST_NUM = 15) [PANEL,87] = (SUBMAST_NUM = 16) [PANEL,88] = (SUBMAST_NUM = 17) [PANEL,89] = (SUBMAST_NUM = 18) [PANEL,90] = (SUBMAST_NUM = 19) [PANEL,91] = (SUBMAST_NUM = 20) [PANEL,92] = (SUBMAST_NUM = 21) [PANEL,93] = (SUBMAST_NUM = 22) [PANEL,94] = (SUBMAST_NUM = 23) [PANEL,95] = (SUBMAST_NUM = 24) [PANEL,96] = (SUBMAST_NUM = 25) [PANEL,97] = (SUBMAST_NUM = 26) [PANEL,98] = (SUBMAST_NUM = 27) [PANEL,99] = (SUBMAST_NUM = 28) [PANEL,100]= (SUBMAST_NUM = 29) [PANEL,101]= (SUBMAST_NUM = 30) [PANEL,102]= (SUBMAST_NUM = 31) (*** Audio Playback ***) PUSH[PANEL,103] (* PLAY *) { OFF[PANEL,104] ON[PANEL,103] IF ((GO_SELECT = CUR_SELECT) AND (GO_CHANNEL = ALL_CHANNELS)) CALL 'AUDIOBOX MSC' (MIXER,"$13,$01,$30") ELSE IF ((GO_SELECT = SPEC_SELECT) AND (GO_CHANNEL = ALL_CHANNELS)) CALL 'AUDIOBOX MSC' (MIXER,"$13,$01,GO_SELECT_NUM") ELSE IF ((GO_SELECT = CUR_SELECT) AND (GO_CHANNEL = SPEC_CHANNEL)) CALL 'AUDIOBOX MSC' (MIXER,"$13,$01,$30,$00,GO_CH_NUM") ELSE IF ((GO_SELECT = SPEC_SELECT) AND (GO_CHANNEL = SPEC_CHANNEL)) CALL 'AUDIOBOX MSC' (MIXER,"$13,$01,GO_SELECT_NUM,$00,GO_CH_NUM") } PUSH[PANEL,104] (* STOP *) { OFF[PANEL,103] ON[PANEL,104] IF ((GO_SELECT = CUR_SELECT) AND (GO_CHANNEL = ALL_CHANNELS)) CALL 'AUDIOBOX MSC' (MIXER,"$13,$02,$30") ELSE IF ((GO_SELECT = SPEC_SELECT) AND (GO_CHANNEL = ALL_CHANNELS)) CALL 'AUDIOBOX MSC' (MIXER,"$13,$02,GO_SELECT_NUM") ELSE IF ((GO_SELECT = CUR_SELECT) AND (GO_CHANNEL = SPEC_CHANNEL)) CALL 'AUDIOBOX MSC' (MIXER,"$13,$02,$30,$00,GO_CH_NUM") ELSE IF ((GO_SELECT = SPEC_SELECT) AND (GO_CHANNEL = SPEC_CHANNEL)) CALL 'AUDIOBOX MSC' (MIXER,"$13,$02,GO_SELECT_NUM,$00,GO_CH_NUM") } PUSH[PANEL,105] (* GO - CURRENT SELECTION *) { GO_SELECT = CUR_SELECT SEND_COMMAND PANEL,'TEXT11-' SEND_COMMAND PANEL,'TEXT12-' } PUSH[PANEL,106] (* GO - SPECIFIC SELECTION *) { GO_SELECT = SPEC_SELECT SEND_COMMAND PANEL,"'TEXT11-',ITOA(GO_SELECT_NUM)" SEND_COMMAND PANEL,"'TEXT12-',ITOA(GO_SAMPLE_NUM)" } PUSH[PANEL,107] (* GO - ALL CHANNELS *) { GO_CHANNEL = ALL_CHANNELS } PUSH[PANEL,108] (* GO - SPECIFIC CHANNEL *) { GO_CHANNEL = SPEC_CHANNEL } PUSH[PANEL,127] (* SELECTION NUMBER *) IF (GO_SELECT = CUR_SELECT) { ON[GO_SELECT_FL] SEND_COMMAND PANEL,'AKEYP-' } PUSH[PANEL,128] (* SAMPLE NUMBER *) IF (GO_SELECT = CUR_SELECT) { ON[GO_SAMPLE_FL] SEND_COMMAND PANEL,'AKEYP-' } PUSH[PANEL,113] (* CHANNEL 9 *) PUSH[PANEL,114] (* CHANNEL 10 *) PUSH[PANEL,115] (* CHANNEL 11 *) PUSH[PANEL,116] (* CHANNEL 12 *) PUSH[PANEL,117] (* CHANNEL 13 *) PUSH[PANEL,118] (* CHANNEL 14 *) PUSH[PANEL,119] (* CHANNEL 15 *) PUSH[PANEL,120] (* CHANNEL 16 *) IF (GO_CHANNEL = SPEC_CHANNEL) { GO_CH_NUM = PUSH_CHANNEL - 105 } PUSH[PANEL,109] (* STOP - CURRENT SELECTION *) { STOP_SELECT = CUR_SELECT SEND_COMMAND PANEL,'TEXT13-' SEND_COMMAND PANEL,'TEXT14-' } PUSH[PANEL,110] (* STOP - SPECIFIC SELECTION *) { STOP_SELECT = SPEC_SELECT SEND_COMMAND PANEL,"'TEXT13-',ITOA(STOP_SELECT_NUM)" SEND_COMMAND PANEL,"'TEXT14-',ITOA(STOP_SAMPLE_NUM)" } PUSH[PANEL,111] (* STOP - ALL CHANNELS *) { STOP_CHANNEL = ALL_CHANNELS } PUSH[PANEL,112] (* STOP - SPECIFIC CHANNEL *) { STOP_CHANNEL = SPEC_CHANNEL } PUSH[PANEL,129] (* SELECTION NUMBER *) IF (STOP_SELECT = CUR_SELECT) { ON[STOP_SELECT_FL] SEND_COMMAND PANEL,'AKEYP-' } PUSH[PANEL,130] (* SAMPLE NUMBER *) IF (STOP_SELECT = CUR_SELECT) { ON[STOP_SAMPLE_FL] SEND_COMMAND PANEL,'AKEYP-' } PUSH[PANEL,131] (* CHANNEL 9 *) PUSH[PANEL,132] (* CHANNEL 10 *) PUSH[PANEL,133] (* CHANNEL 11 *) PUSH[PANEL,134] (* CHANNEL 12 *) PUSH[PANEL,135] (* CHANNEL 13 *) PUSH[PANEL,136] (* CHANNEL 14 *) PUSH[PANEL,137] (* CHANNEL 15 *) PUSH[PANEL,138] (* CHANNEL 16 *) IF (STOP_CHANNEL = SPEC_CHANNEL) { STOP_CH_NUM = PUSH_CHANNEL - 123 } [PANEL,105] = (GO_SELECT = CUR_SELECT) [PANEL,106] = (GO_SELECT = SPEC_SELECT) [PANEL,107] = (GO_CHANNEL = ALL_CHANNELS) [PANEL,108] = (GO_CHANNEL = SPEC_CHANNEL) [PANEL,109] = (STOP_SELECT = CUR_SELECT) [PANEL,110] = (STOP_SELECT = SPEC_SELECT) [PANEL,111] = (STOP_CHANNEL = ALL_CHANNELS) [PANEL,112] = (STOP_CHANNEL = SPEC_CHANNEL) [PANEL,113] = ((GO_CHANNEL = SPEC_CHANNEL) AND (GO_CH_NUM = 8)) [PANEL,114] = ((GO_CHANNEL = SPEC_CHANNEL) AND (GO_CH_NUM = 9)) [PANEL,115] = ((GO_CHANNEL = SPEC_CHANNEL) AND (GO_CH_NUM = 10)) [PANEL,116] = ((GO_CHANNEL = SPEC_CHANNEL) AND (GO_CH_NUM = 11)) [PANEL,117] = ((GO_CHANNEL = SPEC_CHANNEL) AND (GO_CH_NUM = 12)) [PANEL,118] = ((GO_CHANNEL = SPEC_CHANNEL) AND (GO_CH_NUM = 13)) [PANEL,119] = ((GO_CHANNEL = SPEC_CHANNEL) AND (GO_CH_NUM = 14)) [PANEL,120] = ((GO_CHANNEL = SPEC_CHANNEL) AND (GO_CH_NUM = 15)) [PANEL,131] = ((STOP_CHANNEL = SPEC_CHANNEL) AND (STOP_CH_NUM = 8)) [PANEL,132] = ((STOP_CHANNEL = SPEC_CHANNEL) AND (STOP_CH_NUM = 9)) [PANEL,133] = ((STOP_CHANNEL = SPEC_CHANNEL) AND (STOP_CH_NUM = 10)) [PANEL,134] = ((STOP_CHANNEL = SPEC_CHANNEL) AND (STOP_CH_NUM = 11)) [PANEL,135] = ((STOP_CHANNEL = SPEC_CHANNEL) AND (STOP_CH_NUM = 12)) [PANEL,136] = ((STOP_CHANNEL = SPEC_CHANNEL) AND (STOP_CH_NUM = 13)) [PANEL,137] = ((STOP_CHANNEL = SPEC_CHANNEL) AND (STOP_CH_NUM = 14)) [PANEL,138] = ((STOP_CHANNEL = SPEC_CHANNEL) AND (STOP_CH_NUM = 15)) IF (LENGTH_STRING(MIXER_BUFFER)) { IF (FIND_STRING(MIXER_BUFFER,"$F7",1)) { CANCEL_WAIT 'CLEAR BUFFER' CALL 'AUDIOBOX BUFFER' } ELSE WAIT 10 'CLEAR BUFFER' CLEAR_BUFFER MIXER_BUFFER } (*** TOUCH PANEL BUFFER ***) IF (LENGTH_STRING(PANEL_BUFFER)) { SELECT { ACTIVE (GAIN_PRESET_FL): { OFF[GAIN_PRESET_FL] IF (FIND_STRING(PANEL_BUFFER,'KEYP-',1)) { TEMP_STRING = REMOVE_STRING(PANEL_BUFFER,'KEYP-',1) IF (LENGTH_STRING(PANEL_BUFFER)) TEMP_VAR = ATOI(PANEL_BUFFER) ELSE TEMP_VAR = 9999 IF (TEMP_VAR <= 622) { GAIN_PRESET[GAIN_CHANNEL+1] = TEMP_VAR SEND_COMMAND PANEL,"'TEXT1-',ITOA(GAIN_PRESET[GAIN_CHANNEL+1])" } } } ACTIVE (GO_SELECT_FL): { OFF[GO_SELECT_FL] IF (FIND_STRING(PANEL_BUFFER,'KEYP-',1)) { TEMP_STRING = REMOVE_STRING(PANEL_BUFFER,'KEYP-',1) GO_SELECT_NUM = ATOI(PANEL_BUFFER) SEND_COMMAND PANEL,"'TEXT11-',ITOA(GO_SELECT_NUM)" } } ACTIVE (GO_SAMPLE_FL): { OFF[GO_SAMPLE_FL] IF (FIND_STRING(PANEL_BUFFER,'KEYP-',1)) { TEMP_STRING = REMOVE_STRING(PANEL_BUFFER,'KEYP-',1) GO_SAMPLE_NUM = ATOI(PANEL_BUFFER) SEND_COMMAND PANEL,"'TEXT12-',ITOA(GO_SAMPLE_NUM)" } } ACTIVE (STOP_SELECT_FL): { OFF[STOP_SELECT_FL] IF (FIND_STRING(PANEL_BUFFER,'KEYP-',1)) { TEMP_STRING = REMOVE_STRING(PANEL_BUFFER,'KEYP-',1) STOP_SELECT_NUM = ATOI(PANEL_BUFFER) SEND_COMMAND PANEL,"'TEXT13-',ITOA(STOP_SELECT_NUM)" } } ACTIVE (STOP_SAMPLE_FL): { OFF[STOP_SAMPLE_FL] IF (FIND_STRING(PANEL_BUFFER,'KEYP-',1)) { TEMP_STRING = REMOVE_STRING(PANEL_BUFFER,'KEYP-',1) STOP_SAMPLE_NUM = ATOI(PANEL_BUFFER) SEND_COMMAND PANEL,"'TEXT14-',ITOA(STOP_SAMPLE_NUM)" } } } CLEAR_BUFFER PANEL_BUFFER } (*** Other Functions ***) PUSH[PANEL,201] (* Set Input 1 to 100% *) CALL 'AUDIOBOX MSC' (MIXER,"$10,$06,0,0,0,NEW_LVL,0,0,0,0,0") PUSH[PANEL,202] (* Set Output 1 to 100% *) CALL 'AUDIOBOX MSC' (MIXER,"$10,$06,0,3,0,NEW_LVL,0,0,0,0,0") PUSH[PANEL,203] (* Set Crosspoint 1-1 to 100% *) CALL 'AUDIOBOX MSC' (MIXER,"$10,$06,1,0,0,NEW_LVL,0,0,0,0,0") (***********************************************************) (* END OF PROGRAM *) (* DO NOT PUT ANY CODE BELOW THIS COMMENT *) (***********************************************************)