@ file : Jvm Name (" F aders ") Ċ Ċ package Ġcom . h arry 1 4 5 3 . k launch pad . examples Ċ Ċ import Ġcom . h arry 1 4 5 3 . k launch pad . api . Color Ċ import Ġcom . h arry 1 4 5 3 . k launch pad . api . Launch pad Ċ import Ġcom . h arry 1 4 5 3 . k launch pad . api . open Ċ Ċ // ĠTry Ġchanging Ġthis Ġvalue Ġto Ġobserve Ġthe Ġdifferent Ġmodes . Ċ const Ġval Ġb ip olar Mode Ġ= Ġtrue Ċ Ċ @ Suppress (" Constant Condition If ") Ċ suspend Ġfun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġinput DeviceInfo Ġ= ĠLaunch pad . list Midi Input Devices () ĊĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit . name Ġ== Ġ" Launch pad ĠM K 2 " Ġ} Ġ?: Ġerror (" Could Ġnot Ġfind Ġthe ĠLaunch pad 's ĠMIDI Ġinput !") ĊĠĠĠ Ġval Ġoutput DeviceInfo Ġ= ĠLaunch pad . list Midi Output Devices () ĊĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit . name Ġ== Ġ" Launch pad ĠM K 2 " Ġ} Ġ?: Ġerror (" Could Ġnot Ġfind Ġthe ĠLaunch pad 's ĠMIDI Ġoutput !") ĊĠĠĠ Ġval Ġlaunch pad Ġ= ĠLaunch pad . connect To Launch pad MK 2 ( input DeviceInfo . open (), Ġoutput DeviceInfo . open ()) ĊĠĠĠ ĠRuntime . get Runtime (). add Shutdown Hook ( Thread Ġ{ Ġlaunch pad . close () Ġ}) ĊĊĠĠĠ Ġval Ġcolor 1 Ġ= ĠColor ( 0 , Ġ 0 , Ġ 2 5 5 ) ĊĠĠĠ Ġval Ġcolor 2 Ġ= ĠColor ( 2 5 5 , Ġ 1 0 0 , Ġ 5 0 ) ĊĠĠĠ Ġval Ġcolor 3 Ġ= ĠColor ( 0 , Ġ 5 0 , Ġ 2 5 5 ) ĊĠĠĠ Ġval Ġcolor 4 Ġ= ĠColor ( 2 5 5 , Ġ 5 0 , Ġ 2 5 5 ) ĊĠĠĠ Ġval Ġcolor 5 Ġ= ĠColor ( 0 , Ġ 2 5 5 , Ġ 0 ) ĊĠĠĠ Ġval Ġcolor 6 Ġ= ĠColor ( 2 5 5 , Ġ 5 0 , Ġ 0 ) ĊĠĠĠ Ġval Ġcolor 7 Ġ= ĠColor ( 2 0 0 , Ġ 2 0 0 , Ġ 2 5 5 ) ĊĠĠĠ Ġval Ġcolor 8 Ġ= ĠColor ( 2 5 5 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġval Ġcolor 9 Ġ= ĠColor ( 0 , Ġ 2 5 5 , Ġ 2 5 5 ) ĊĊĠĠĠ Ġvar Ġf ader 0 value : ĠByte Ġ= Ġ 1 5 . to Byte () ĊĠĠĠ Ġvar Ġf ader 1 value : ĠByte Ġ= Ġ 3 1 . to Byte () ĊĠĠĠ Ġvar Ġf ader 2 value : ĠByte Ġ= Ġ 4 7 . to Byte () ĊĠĠĠ Ġvar Ġf ader 3 value : ĠByte Ġ= Ġ 6 3 . to Byte () ĊĠĠĠ Ġvar Ġf ader 4 value : ĠByte Ġ= Ġ 7 9 . to Byte () ĊĠĠĠ Ġvar Ġf ader 5 value : ĠByte Ġ= Ġ 9 5 . to Byte () ĊĠĠĠ Ġvar Ġf ader 6 value : ĠByte Ġ= Ġ 1 1 1 . to Byte () ĊĠĠĠ Ġvar Ġf ader 7 value : ĠByte Ġ= Ġ 1 2 7 . to Byte () ĊĊĠĠĠ Ġif Ġ( bip olar Mode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġf ader 0 value Ġ= Ġ( f ader 0 value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠĠĠĠĠ Ġf ader 1 value Ġ= Ġ( f ader 1 value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠĠĠĠĠ Ġf ader 2 value Ġ= Ġ( f ader 2 value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠĠĠĠĠ Ġf ader 3 value Ġ= Ġ( f ader 3 value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠĠĠĠĠ Ġf ader 4 value Ġ= Ġ( f ader 4 value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠĠĠĠĠ Ġf ader 5 value Ġ= Ġ( f ader 5 value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠĠĠĠĠ Ġf ader 6 value Ġ= Ġ( f ader 6 value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠĠĠĠĠ Ġf ader 7 value Ġ= Ġ( f ader 7 value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġf ader Mode Ġ= Ġtrue ĊĊĠĠĠ Ġfun Ġf ader Value ToString ( f ader Value : ĠByte ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġf ader Value . toString () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( value . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ" Ġ Ġ$ value " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ" Ġ$ value " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprint F ader Values () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint ("\ r F ader Ġ 1 : Ġ${ f ader Value ToString ( f ader 0 value )}, ĠF ader Ġ 2 : Ġ${ f ader Value ToString ( f ader 1 value )}, ĠF ader Ġ 3 : Ġ${ f ader Value ToString ( f ader 2 value )}, ĠF ader Ġ 4 : Ġ${ f ader Value ToString ( f ader 3 value )}, ĠF ader Ġ 5 : Ġ${ f ader Value ToString ( f ader 4 value )}, ĠF ader Ġ 6 : Ġ${ f ader Value ToString ( f ader 5 value )}, ĠF ader Ġ 7 : Ġ${ f ader Value ToString ( f ader 6 value )}, ĠF ader Ġ 8 : Ġ${ f ader Value ToString ( f ader 7 value )} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexit F ader View () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch pad . exit F ader View () ĊĠĠĠĠĠĠĠ Ġlaunch pad . set Pad Light ( launch pad . get Pad ( 4 , Ġ 8 ), ĠColor ( 0 , Ġ 2 5 5 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġlaunch pad . set Pad Light ( launch pad . get Pad ( 7 , Ġ 8 ), ĠColor ( 0 , Ġ 0 , Ġ 5 0 )) ĊĠĠĠĠĠĠĠ Ġf ader Mode Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup F ader View () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch pad . setup F ader View ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġto ĠPair ( color 1 , Ġf ader 0 value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġto ĠPair ( color 2 , Ġf ader 1 value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġto ĠPair ( color 3 , Ġf ader 2 value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġto ĠPair ( color 4 , Ġf ader 3 value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġto ĠPair ( color 5 , Ġf ader 4 value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġto ĠPair ( color 6 , Ġf ader 5 value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġto ĠPair ( color 7 , Ġf ader 6 value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġto ĠPair ( color 8 , Ġf ader 7 value ) ĊĠĠĠĠĠĠĠ Ġ), Ġb ip olar Ġ= Ġb ip olar Mode ) ĊĠĠĠĠĠĠĠ Ġlaunch pad . set Pad Light ( launch pad . get Pad ( 4 , Ġ 8 ), ĠColor ( 0 , Ġ 5 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġlaunch pad . set Pad Light ( launch pad . get Pad ( 7 , Ġ 8 ), ĠColor ( 0 , Ġ 0 , Ġ 2 5 5 )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġcan 't Ġdo Ġa Ġbulk Ġupdate Ġbecause Ġit Ġbugs Ġthe Ġlaunch pad Ġ( f ader Ġlights Ġdon 't Ġupdate ) ĊĠĠĠĠĠĠĠ Ġ( 0 .. 7 ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpad Ġ= Ġlaunch pad . get Pad ( 8 , Ġit ) Ġ?: Ġreturn @ forEach ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch pad . set Pad Light ( pad , Ġcolor 9 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġf ader Mode Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlaunch pad . set Pad Button Listener Ġ{ Ġpad , Ġpressed , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ(! f ader Mode Ġ&& Ġ!( pad . grid Y Ġ== Ġ 8 Ġ&& Ġ( pad . grid X Ġ== Ġ 4 Ġ|| Ġpad . grid X Ġ== Ġ 7 ))) Ġ{ Ġ// ĠDon 't Ġupdate Ġthe Ġmode Ġbuttons Ġwhen Ġnot Ġin Ġf ader Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pressed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch pad . set Pad Light ( pad , Ġcolor 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch pad . clear Pad Light ( pad ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( pressed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pad . grid X Ġ== Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġf ader Value Ġ= Ġ( pad . grid Y Ġ* Ġ 1 2 7 Ġ/ Ġ 7 ). to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bip olar Mode ) Ġf ader Value Ġ= Ġ( f ader Value Ġ- Ġ 6 3 ). to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( 0 .. 7 ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch pad . update F ader ( it , Ġf ader Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ader 0 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ader 1 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ader 2 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ader 3 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ader 4 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ader 5 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ader 6 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ader 7 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint F ader Values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( pad . grid X Ġ== Ġ 4 Ġ&& Ġpad . grid Y Ġ== Ġ 8 ) Ġ{ Ġ// ĠSession ĠButton ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexit F ader View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( pad . grid X Ġ== Ġ 7 Ġ&& Ġpad . grid Y Ġ== Ġ 8 ) Ġ{ Ġ// ĠMix er ĠButton ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup F ader View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġlaunch pad . set F ader Update Listener Ġ{ Ġf ader Index , Ġf ader Value Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen ( f ader Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġf ader 0 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġf ader 1 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġf ader 2 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġf ader 3 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġf ader 4 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> Ġf ader 5 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ-> Ġf ader 6 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġ-> Ġf ader 7 value Ġ= Ġf ader Value ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprint F ader Values () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsetup F ader View () ĊĠĠĠ Ġprint F ader Values () Ċ } Ċ