package Ġfi . e vid ent . fab . pro q 2 Ċ Ċ import Ġfi . e vid ent . fab . assertContains Ċ import Ġfi . e vid ent . fab . dB Ċ import Ġfi . e vid ent . fab . pro q 2 . Global Preset Parameters . Analyzer . Flag Ċ import Ġjava . io . IOException Ċ Ċ class ĠGlobal Preset Parameters Ġ{ ĊĊĠĠĠ Ġclass ĠProcess Mode Ġprivate Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmode : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġaffects Ġonly Ġlinear Ġphase Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġphase : ĠProcess Mode . Phase ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠPhase Ġconstructor ( private Ġval Ġvalue : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLow ( 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedium ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHigh ( 2 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVery High ( 3 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMax ( 4 f ); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphase . write ( writer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġzero Latency (): ĠProcess Mode Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProcess Mode ( 0 f , ĠPhase . Medium ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġnatural Phase (): ĠProcess Mode Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProcess Mode ( 1 f , ĠPhase . Medium ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġlinear Phase ( phase : ĠPhase ): ĠProcess Mode Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProcess Mode ( 2 f , Ġphase ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠChannel Mode Ġconstructor ( private Ġval Ġvalue : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠLeft Right ( 0 f ), ĊĠĠĠĠĠĠĠ ĠMid Side ( 1 f ); ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġdb Ġ- ĠInfinity Ġto Ġ+ 3 6 ĠdB Ġ, Ġ 0 Ġ= Ġ 0 ĠdB ĊĠĠĠĠ Ġ* Ġ@ param Ġscale Ġ 0 Ġto Ġ 2 , Ġ 1 Ġ= Ġ 1 0 0 %, Ġ 2 Ġ= Ġ 2 0 0 % ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠG ain ( private Ġval Ġdb : ĠdB , Ġprivate Ġval Ġscale : ĠdB ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ(- 1 . 0 .. 1 . 0 ). assertContains ( db , Ġ" Gain Ġdb ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 0 . 0 .. 2 . 0 ). assertContains ( scale , Ġ" Gain Ġscale ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( scale . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( db . toFloat ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ- 1 Ġ.. Ġ 1 Ġwhere Ġ 0 Ġis Ġmiddle ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠOutput Pan ( private Ġval Ġvalue : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ(- 1 f .. 1 f ). assertContains ( value , Ġ" Pan ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠAnalyzer Ġ{ ĊĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠRange Ġconstructor ( private Ġval Ġvalue : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠdB 6 0 ( 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdB 9 0 ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb 1 2 0 ( 2 f ); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠResolution Ġconstructor ( private Ġval Ġvalue : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLow ( 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedium ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHigh ( 2 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMaximum ( 3 f ); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠSpeed Ġconstructor ( private Ġval Ġvalue : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠVery Slow ( 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS low ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedium ( 2 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFast ( 3 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVery Fast ( 4 f ); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠT ilt Ġconstructor ( private Ġval Ġvalue : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠdB _ oct 0 ( 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdB _ oct 1 point 5 ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdB _ oct 3 ( 2 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdB _ oct 4 point 5 ( 3 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdB _ oct 6 ( 4 f ); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠFlag Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTRUE , ĠFALSE ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinteger Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTRUE Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFALSE Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Float ( integer . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpre Ġ= ĠFlag . TRUE ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpost Ġ= ĠFlag . TRUE ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġside Chain Ġ= ĠFlag . TRUE ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrange Ġ= ĠRange . dB 9 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġresolution Ġ= ĠResolution . Medium ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġspeed Ġ= ĠSpeed . Medium ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġt ilt Ġ= ĠT ilt . dB _ oct 4 point 5 ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġfreeze Ġ= ĠFlag . FALSE ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġspectrum Grab Ġ= ĠFlag . TRUE ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre . write ( writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost . write ( writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġside Chain . write ( writer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrange . write ( writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresolution . write ( writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspeed . write ( writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ilt . write ( writer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfreeze . write ( writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspectrum Grab . write ( writer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġprocess Mode Ġ= ĠProcess Mode . linear Phase ( Process Mode . Phase . Medium ) ĊĠĠĠ Ġprivate Ġval Ġchannel Mode Ġ= ĠChannel Mode . Left Right ĊĠĠĠ Ġprivate Ġval Ġgain Ġ= ĠG ain ( 0 . 0 , Ġ 1 . 0 ) ĊĠĠĠ Ġprivate Ġval Ġpan Ġ= ĠOutput Pan ( 0 f ) ĊĠĠĠ Ġprivate Ġval Ġbypass Ġ= ĠFlag . FALSE ĊĠĠĠ Ġprivate Ġval Ġphase Invert Ġ= ĠFlag . FALSE ĊĠĠĠ Ġprivate Ġval Ġauto Gain Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval Ġanalyzer Ġ= ĠAnalyzer () ĊĠĠĠ Ġprivate Ġval Ġunknown 1 Ġ= Ġ 2 f ĊĠĠĠ Ġprivate Ġval Ġmidi Learn Ġ= ĠFlag . FALSE ĊĠĠĠ Ġprivate Ġval Ġunknown 2 Ġ= Ġ- 1 f Ġ// Ġsolo Ġband Ġ?? ĊĠĠĠ Ġprivate Ġval Ġunknown 3 Ġ= Ġ 0 f ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġwrite ( writer : ĠL ittle Endian Binary Stream Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprocess Mode . write ( writer ) ĊĠĠĠĠĠĠĠ Ġchannel Mode . write ( writer ) ĊĠĠĠĠĠĠĠ Ġgain . write ( writer ) ĊĠĠĠĠĠĠĠ Ġpan . write ( writer ) ĊĊĠĠĠĠĠĠĠ Ġbypass . write ( writer ) ĊĠĠĠĠĠĠĠ Ġphase Invert . write ( writer ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠEnabled Ġvalue Ġactually Ġseems Ġto Ġbe Ġ 2 ĊĠĠĠĠĠĠĠ Ġwriter . write Float (( if Ġ( auto Gain ) Ġ 2 Ġelse Ġ 0 ). toFloat ()) ĊĊĠĠĠĠĠĠĠ Ġanalyzer . write ( writer ) ĊĠĠĠĠĠĠĠ Ġwriter . write Float ( unknown 1 ) ĊĠĠĠĠĠĠĠ Ġmidi Learn . write ( writer ) ĊĠĠĠĠĠĠĠ Ġwriter . write Float ( unknown 2 ) ĊĠĠĠĠĠĠĠ Ġwriter . write Float ( unknown 3 ) ĊĠĠĠ Ġ} Ċ } Ċ