⠀
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
desc:XFSJ.O_ENORD_IDIM_O_MIDI_DRONE_O.JSFX
|
||||
|
||||
slider1:0<0,15,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>O_LENAHC_O_CHANEL_O
|
||||
slider2:57<0,127,1{C0,C#0,D0,D#0,E0,F0,F#0,G0,G#0,A0,A#0,B0,C 1,C#1,D1,D#1,E1,F1,F#1,G1,G#1,A1,A#1,B1,C2,C#2,D2, D#2,E2,F2,F#2,G2,G#2,A2,A#2,B2,C3,C#3,D3,D#3,E3,F3 ,F#3,G3,G#3,A3,A#3,B3,C4,C#4,D4,D#4,E4,F4,F#4,G4,G #4,A4,A#4,B4,C5,C#5,D5,D#5,E5,F5,F#5,G5,G#5,A5,A#5 ,B5,C6,C#6,D6,D#6,E6,F6,F#6,G6,G#6,A6,A#6,B6,C7,C# 7,D7,D#7,E7,F7,F#7,G7,G#7,A7,A#7,B7,C8,C#8,D8,D#8, E8,F8,F#8,G8,G#8,A8,A#8,B8,C9,C#9,D9,D#9,E9,F9,F#9 ,G9,G#9,A9,A#9,B9,C10,C#10,D10,D#10,E10,F10,F#10,G 10}>O_ETON_O_NOTE_O
|
||||
slider3:127<1,127,1>O_YTICOLEV_O_VELOCITY_O
|
||||
slider4:0<0,1,1>O
|
||||
|
||||
@init
|
||||
ext_noinit = 1;
|
||||
prevNote = -1;
|
||||
prevChannel = -1;
|
||||
playing = -1;
|
||||
|
||||
@slider
|
||||
channel = slider1;
|
||||
note = slider2;
|
||||
slider3 | 0 != velocity ?
|
||||
(
|
||||
velocity = slider3 | 0;
|
||||
playing = -1;
|
||||
);
|
||||
|
||||
play = slider4;
|
||||
|
||||
@block
|
||||
function DoNoteOff(n, v, c)
|
||||
(
|
||||
midisend(0, 0x80 | c, n | (v << 8));
|
||||
midisend(0, 0x90 | c, n );
|
||||
);
|
||||
|
||||
note != prevNote || channel != prevChannel ?
|
||||
(
|
||||
!(prevNote < 0) ?
|
||||
(
|
||||
DoNoteOff(prevNote, prevVelocity, prevChannel);
|
||||
);
|
||||
|
||||
prevNote = note;
|
||||
prevChannel = channel;
|
||||
|
||||
playing = -1;
|
||||
);
|
||||
|
||||
playing != play ?
|
||||
(
|
||||
play ?
|
||||
(
|
||||
midisend(0, 0x90, note | (velocity << 8));
|
||||
prevVelocity = velocity;
|
||||
)
|
||||
:
|
||||
(
|
||||
DoNoteOff(note, prevVelocity, channel);
|
||||
);
|
||||
playing = play;
|
||||
);
|
||||
@@ -0,0 +1,9 @@
|
||||
desc:XFSJ.O_EULAV_O_VALUE_O.JSFX
|
||||
slider1:1<1,128,1>O_1_EULAV_O_VALUE_1_O
|
||||
slider2:0<0,24000,0.00001>O_2_EULAV_O_VALUE_2_O
|
||||
slider3:1<1,128,1>O_3_EULAV_O_VALUE_3_O
|
||||
slider4:0<0,174149.75,1>O_4_EULAV_O_VALUE_4_O
|
||||
@block
|
||||
|
||||
SLIDER2=SLIDER1*1.31884765625*69;
|
||||
//SLIDER4=SLIDER3*1.31884765625*69;
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
|
||||
|
||||
|
||||
desc:XFSJ.O_ROTARENEG_ESION_TEVLEV_O_VELVET_NOISE_GENERATOR_O.JSFX
|
||||
|
||||
slider1: -11.313708498984760390413509793678 < -181.01933598375616624661615669884 , 0 , 2.8284271247461900976033774484194 >O_LEVEL_EMULOV_ESION_O_NOISE_VOLUME_LEVEL_O
|
||||
|
||||
@sample
|
||||
|
||||
|
||||
|
||||
|
||||
O_LEVEL_EMULOV_O_VOLUME_LEVEL_O = 2 ^ ( SLIDER1 / 6 ) ;
|
||||
|
||||
O_ESION_O_NOISE_O = ( FLOOR ( RAND ( 2 ) ) - 0.5 ) * 4 ;
|
||||
|
||||
O_ESION_TEVLEV_O_VELVET_NOISE_O = O_ESION_O_NOISE_O*O_LEVEL_EMULOV_O_VOLUME_LEVEL_O ;
|
||||
|
||||
|
||||
|
||||
|
||||
SPL0 = O_ESION_TEVLEV_O_VELVET_NOISE_O ;
|
||||
|
||||
SPL1 = O_ESION_TEVLEV_O_VELVET_NOISE_O ;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
desc:XFSJ.O_KCOLC_DOIREP_EMIT_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_TIME_PERIOD_CLOCK_O.JSFX
|
||||
|
||||
slider1:1<0,4096,0.1>O_ANAVRINIRAP_DENIATA_ADUB_ECNIS_RATS_DNUORA_SDOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_O_WHOLE_PLANETARY_ROTATION_TIME_PERIODS_AROUND_STAR_SINCE_BUDA_ATAINED_PARINIRVANA_O
|
||||
slider2:1<1,366,0.1>O_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_TSAL_ECNIS_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_PLANETARY_POLAR_ROTATION_TIME_PERIOD_SINCE_LAST_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_O
|
||||
slider3:0<0,23,0.1>O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O
|
||||
slider4:0<0,59,0.1>O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_996782542860_6341_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_1436_068245287699_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O
|
||||
slider5:0<0,59,0.1>O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_49162717490_46168_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_86164_09471726194_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O
|
||||
|
||||
slider7:3<-24,24,1>O_TRATS_TNUOC_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_REBMUN_TFIHS_ENOZ_O_ZONE_SHIFT_NUMBER_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_COUNT_START_O
|
||||
slider8:-3<-24,24,1>O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_REBMUN_TESFO_O_OFSET_NUMBER_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O
|
||||
|
||||
slider10:0<0,86164.09471726194,0.1>O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_NI_STRAP_49162717490_46168_FO_REBMUN_O_NUMBER_OF_86164_09471726194_PARTS_IN_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O
|
||||
slider11:0<0,365.2421986,0.1>O_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ETOHW_REP_SDOIREP_EMIT_NOITATOR_RALOP_YRATENALP_FO_REBMUN_O_NUMBER_OF_PLANETARY_POLAR_ROTATION_TIME_PERIODS_PER_WHOTE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_O
|
||||
slider12:0<0,31470763.394911396337701284,0.1>O_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_NI_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_49162717490_46168_FO_REBMUN_O_NUMBER_OF_86164_09471726194_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_IN_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_O
|
||||
slider13:0<0,31470763.394911396337701284,0.1>O_DETRATS_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_TSAL_ECNIS_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_NI_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_49162717490_46168_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_86164_09471726194_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_IN_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_SINCE_LAST_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_STARTED_O
|
||||
|
||||
slider15:84.406022589954030768899117092091000289089388918088900852079<0,168.812045179908061537798234184182000578178777836177801704158,0.1>O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_49162717490_46168_MORF_DOIREP_EMIT_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_TIME_PERIOD_FROM_86164_09471726194_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O
|
||||
slider16:0<0,1020.8260018335364975934838948538,0.1>O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_REP_SDOIREP_EMIT_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_TIME_PERIODS_PER_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O
|
||||
slider17:0<0,372848.73329772850159438766679008,0.1>O_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_REP_SDOIREP_EMIT_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_TIME_PERIODS_PER_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_O
|
||||
|
||||
slider19:0<0,31470763.394911396337701284,0.1>O_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_TSAL_ECNIS_SDOIREP_EMIT_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_FO_REBMUN_O_NUMBER_OF_CONGENIAL_SYMETRICAL_REVERBERATION_TIME_PERIODS_SINCE_LAST_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_O
|
||||
slider20:0<0,1020.8287521833442514877722077870336349418412685467230187797107418,0.1>O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_TSAL_ECNIS_SDOIREP_EMIT_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_FO_REBMUN_O_NUMBER_OF_CONGENIAL_SYMETRICAL_REVERBERATION_TIME_PERIODS_SINCE_LAST_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O
|
||||
|
||||
|
||||
@block
|
||||
SLIDER15=84.406022589954030768899117092091000289089388918088900852079;
|
||||
O_ANAVRINIRAP_DENIATA_ADUB_ECNIS_RATS_DNUORA_SDOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_O_WHOLE_PLANETARY_ROTATION_TIME_PERIODS_AROUND_STAR_SINCE_BUDA_ATAINED_PARINIRVANA_O=FLOOR(TIME()/(86164.09471726194*365.2421986))+1970+543;
|
||||
O_DETRATS_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_TSAL_ECNIS_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_NI_SDOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_6891242_563_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_365_2421986_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIODS_IN_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_SINCE_LAST_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_STARTED_O=FLOOR(TIME_PRECISE()/(86164.09471726194*365.2421986));
|
||||
O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O=FLOOR((TIME_PRECISE()-(O_DETRATS_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_TSAL_ECNIS_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_NI_SDOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_6891242_563_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_365_2421986_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIODS_IN_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_SINCE_LAST_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_STARTED_O*(86164.09471726194*365.242198)))/86164.09471726194);
|
||||
O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_REBMUN_TESFO_O_OFSET_NUMBER_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O=FLOOR((TIME_PRECISE()/3600)+SLIDER8)%24;
|
||||
O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_1_O_1_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O=FLOOR(TIME_PRECISE()/3600);
|
||||
O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_996782542860_6341_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_1436_068245287699_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O=FLOOR((TIME_PRECISE()-O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_1_O_1_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O*3600)/60);
|
||||
O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_49162717490_46168_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_86164_09471726194_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O=(TIME_PRECISE()-O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_1_O_1_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O*3600-O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_996782542860_6341_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_1436_068245287699_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O*60);
|
||||
SLIDER1=FLOOR(TIME()/(86164.09471726194*365.2421986))+1970+543;
|
||||
SLIDER2=((TIME_PRECISE()-(O_DETRATS_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_TSAL_ECNIS_RATS_DNUORA_DOIREP_EMIT_NOITATOR_YRATENALP_ELOHW_NI_SDOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_6891242_563_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_365_2421986_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIODS_IN_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_SINCE_LAST_WHOLE_PLANETARY_ROTATION_TIME_PERIOD_AROUND_STAR_STARTED_O*(86164.09471726194*365.242198)))/86164.09471726194)+1;
|
||||
SLIDER3=((TIME_PRECISE()/3600)+SLIDER8)%24;
|
||||
SLIDER4=((TIME_PRECISE()-O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_1_O_1_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O*3600)/60);
|
||||
SLIDER5=O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_49162717490_46168_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_86164_09471726194_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O;
|
||||
|
||||
SLIDER8=SLIDER7-6;
|
||||
|
||||
SLIDER10=(86164.098903691 + 86164.09053083288) /2;
|
||||
SLIDER11=365.2421986;
|
||||
SLIDER12=SLIDER10*SLIDER11;
|
||||
SLIDER13=TIME_PRECISE();
|
||||
|
||||
SLIDER16=SLIDER10/SLIDER15;
|
||||
SLIDER17=( (SLIDER10*SLIDER11) )/SLIDER15;
|
||||
|
||||
SLIDER19=TIME_PRECISE()/SLIDER15;
|
||||
SLIDER20=(SLIDER19- (SLIDER16* (O_DOIREP_EMIT_NOITATOR_RALOP_YRATENALP_ELOHW_FO_STRAP_389497457074439_32_FO_REBMUN_TNERUC_O_CURENT_NUMBER_OF_23_934470754794983_PARTS_OF_WHOLE_PLANETARY_POLAR_ROTATION_TIME_PERIOD_O) ) );
|
||||
@@ -0,0 +1,89 @@
|
||||
desc:XFSJ.O_SOITAR_DOIREP_EMIT_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_TIME_PERIOD_RATIOS_O.JSFX
|
||||
|
||||
slider1:84.406022589954030768899117092091000289089388918088900852079<0,84.406022589954030768899117092091000289089388918088900852079,84.406022589954030768899117092091000289089388918088900852079>O_DOIREP_EMIT_SDNOCES_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_SECONDS_TIME_PERIOD_O
|
||||
slider2:84406.022589954030768899117092091000289089388918088900852079<0,84406.022589954030768899117092091000289089388918088900852079,84406.022589954030768899117092091000289089388918088900852079>O_DOIREP_EMIT_SDNOCESILIM_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_MILISECONDS_TIME_PERIOD_O
|
||||
slider3:4<0,16,1>O_SEMIT_NOISIVID_DOIREP_EMIT_O_TIME_PERIOD_DIVISION_TIMES_O
|
||||
slider4:0<0,65536,2>O_REDIVID_DOIREP_EMIT_O_TIME_PERIOD_DIVIDER_O
|
||||
slider5:0<0,84.406022589954030768899117092091000289089388918088900852079,0.0012879336943047184870742663130507049604658415057081436287243499755859375>O_EMIT_DOIREP_SDNOCES_DEDIVID_O_DIVIDED_SECONDS_PERIOD_TIME_O
|
||||
slider6:0<0,84406.022589954030768899117092091000289089388918088900852079,1.2879336943047184870742663130507049604658415057081436287243499755859375>O_EMIT_DOIREP_SDNOCESILIM_DEDIVID_O_DIVIDED_MILISECONDS_PERIOD_TIME_O
|
||||
|
||||
slider8:1/84.406022589954030768899117092091000289089388918088900852079<1/84.406022589954030768899117092091000289089388918088900852079,1/84.406022589954030768899117092091000289089388918088900852079,1/84.406022589954030768899117092091000289089388918088900852079>O_YCNEUQERF_ZTREH_DOIREP_EMIT_SDNOCES_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_SECONDS_TIME_PERIOD_HERTZ_FREQUENCY_O
|
||||
slider9:9<0,32,1>O_SEMIT_NOITACILPITLUM_O_MULTIPLICATION_TIMES_O
|
||||
slider10:0<0,4294967296,2>O_REILPITLUM_YCNEUQERF_ZTREH_DOIREP_EMIT_SDNOCES_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_SECONDS_TIME_PERIOD_HERTZ_FREQUENCY_MULTIPLIER_O
|
||||
slider11:233.19426026766320302265108363156006547095178535253046321384708783<0,24845.999558443856198006338735969793955318674925348268352885528015,0.0118474958221644669523269361190651864792436003329030362858226432>O_YCNEUQERF_ZTREH_DEILPITLUM_DOIREP_EMIT_SDNOCES_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_SECONDS_TIME_PERIOD_MULTIPLIED_HERTZ_FREQUENCY_O
|
||||
|
||||
slider13:233.19426026766320302265108363156006547095178535253046321384708783<0,24845.999558443856198006338735969793955318674925348268352885528015,0.0118474958221644669523269361190651864792436003329030362858226432>O_YCNEUQERF_ZTREH_4A_O_A4_HERTZ_FREQUENCY_O
|
||||
|
||||
slider15:0<0,2,0.00000001>O_ZREH_044_MORF_ETAR_TFIHS_HCTIP_4A_O_A4_PITCH_SHIFT_RATE_FROM_440_HERTZ_O
|
||||
slider16:0<-2400,2400,0>O_ZREH_044_MORF_TFIHS_STNEC_4A_O_A4_CENTS_SHIFT_FROM_440_HERZ_O
|
||||
|
||||
slider18:2<1,4,1>O_REWOP_NOISIVID_SENOT_GNITFIHS_O_SHIFTING_TONES_DIVISION_POWER_O
|
||||
slider19:5<-81,81,1>O_YCNEUQERF_ZTREH_DEILPITLUM_DOIREP_EMIT_SDNOCES_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_MORF_SENOT_DETFIHS_O_SHIFTED_TONES_FROM_CONGENIAL_SYMETRICAL_REVERBERATION_SECONDS_TIME_PERIOD_MULTIPLIED_HERTZ_FREQUENCY_O
|
||||
slider20:0<0,1625,0.00000001>O_REILPITLUM_GNITFIHS_O_SHIFTING_MULTIPLIER_O
|
||||
slider21:0<0,82712638677.012146,0.00000001>O_GNITFIHS_ENOT_RETFA_YCNEUQERF_ZTREH_DEILPITLUM_DOIREP_EMIT_SDNOCES_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_MORF_SENOT_DETFIHS_O_SHIFTED_TONES_FROM_CONGENIAL_SYMETRICAL_REVERBERATION_SECONDS_TIME_PERIOD_MULTIPLIED_HERTZ_FREQUENCY_AFTER_TONE_SHIFTING_O
|
||||
|
||||
slider23:0<0,0,0>O_ZREH_044_MORF_ETAR_TFIHS_HCTIP_ENOT_DETFIHS_O_SHIFTED_TONE_PITCH_SHIFT_RATE_FROM_440_HERTZ_O
|
||||
slider24:0<-2400,2400,0>O_ZREH_044_MORF_TFIHS_STNEC_ENOT_DETFIHS_O_SHIFTED_TONE_CENTS_SHIFT_FROM_440_HERZ_O
|
||||
|
||||
slider26:0<0,0,0>O_MUCAV_NI_DEEPS_THGIL_DNOCES_REP_SRETEM_O_METERS_PER_SECOND_LIGHT_SPEED_IN_VACUM_O
|
||||
slider27:0<0,0,0>O_MUCAV_NI_DEEPS_THGIL_DNOCES_REP_SRETEMILI_O_MILIMETERS_PER_SECOND_LIGHT_SPEED_IN_VACUU_O
|
||||
|
||||
slider29:0<0,0,0>O_XEDNI_EVITCARFER_RIA_O_AIR_REFRACTIVE_INDEX_O
|
||||
slider30:0<0,0,0>O_RIA_NI_DEEPS_THGIL_DNOCES_REP_SRETEM_O_METERS_PER_SECOND_LIGHT_SPEED_IN_AIR_O
|
||||
slider31:0<0,0,0>O_RIA_NI_DEEPS_THGIL_DNOCES_REP_SRETEMILI_O_MILIMETERS_PER_SECOND_LIGHT_SPEED_IN_AIR_O
|
||||
|
||||
slider33:0<0,0,0>O_DOIREP_EMIT_REP_ECNATSID_RETEM_MUCAV_NI_EGASAP_THGIL_O_LIGHT_PASAGE_IN_VACUM_METER_DISTANCE_PER_TIME_PERIOD_O
|
||||
slider34:0<0,0,0>O_DOIREP_EMIT_REP_ECNATSID_RETEMILIM_MUCAV_NI_EGASAP_THGIL_O_LIGHT_PASAGE_IN_VACUM_MILIMETER_DISTANCE_PER_TIME_PERIOD_O
|
||||
slider35:0<0,0,0>O_DOIREP_EMIT_REP_ECNATSID_RETEM_RIA_NI_EGASAP_THGIL_O_LIGHT_PASAGE_IN_AIR_METER_DISTANCE_PER_TIME_PERIOD_O
|
||||
slider36:0<0,0,0>O_DOIREP_EMIT_REP_ECNATSID_RETEMILIM_RIA_NI_EGASAP_THGIL_O_LIGHT_PASAGE_IN_AIR_MILIMETER_DISTANCE_PER_TIME_PERIOD_O
|
||||
|
||||
slider38:12<0,64,1>O_SEMIT_NOISIVID_ECNATSID_O_DISTANCE_DIVISION_TIMES_O
|
||||
slider39:0<0,0,0>O_REDIVID_ECNATSID_O_DISTANCE_DIVIDER_O
|
||||
|
||||
slider41:0<0,0,0>O_DOIREP_EMIT_REP_ECNATSID_RETEM_MUUCAV_NI_EGASAP_THGIL_DEDIVID_O_DIVIDED_LIGHT_PASAGE_IN_VACUUM_METER_DISTANCE_PER_TIME_PERIOD_O
|
||||
slider42:<0,0,0>O_DOIREP_EMIT_REP_ECNATSID_RETEMILIM_MUUCAV_NI_EGASAP_THGIL_DEDIVID_O_DIVIDED_LIGHT_PASAGE_IN_VACUUM_MILIMETER_DISTANCE_PER_TIME_PERIOD_O
|
||||
slider43:0<0,0,0>O_DOIREP_EMIT_REP_ECNATSID_RETEM_RIA_NI_EGASAP_THGIL_DEDIVID_O_DIVIDED_LIGHT_PASAGE_IN_AIR_METER_DISTANCE_PER_TIME_PERIOD_O
|
||||
slider44:0<0,0,0>O_DOIREP_EMIT_REP_ECNATSID_RETEMILIM_RIA_NI_EGASAP_THGIL_DEDIVID_O_DIVIDED_LIGHT_PASAGE_IN_AIR_MILIMETER_DISTANCE_PER_TIME_PERIOD_O
|
||||
|
||||
@slider
|
||||
SLIDER1=84.406022589954030768899117092091000289089388918088900852079;
|
||||
SLIDER2=SLIDER1*1000;
|
||||
SLIDER4=9^SLIDER3;
|
||||
SLIDER5=SLIDER1/SLIDER4;
|
||||
SLIDER6=SLIDER2/SLIDER4;
|
||||
|
||||
SLIDER8=1/84.406022589954030768899117092091000289089388918088900852079;
|
||||
|
||||
SLIDER10=9^SLIDER9;
|
||||
SLIDER11=SLIDER8*SLIDER10;
|
||||
|
||||
SLIDER13=19683*SLIDER8;
|
||||
|
||||
SLIDER15=SLIDER13/440;
|
||||
SLIDER16=(1200* (LOG10(SLIDER13)/LOG10(2)) ) - (1200* (LOG10(440)/LOG10(2)) );
|
||||
|
||||
SLIDER20=9^(SLIDER19/9^SLIDER18);
|
||||
SLIDER21=SLIDER11*SLIDER20;
|
||||
|
||||
SLIDER23=SLIDER21/440;
|
||||
SLIDER24=(1200* (LOG10(SLIDER21)/LOG10(2)) ) - (1200* (LOG10(440)/LOG10(2)) );
|
||||
|
||||
SLIDER26=299792458;
|
||||
SLIDER27=299792458*1000;
|
||||
|
||||
SLIDER29=1.0003;
|
||||
SLIDER30=SLIDER26/SLIDER29;
|
||||
SLIDER31=SLIDER27/SLIDER29;
|
||||
|
||||
SLIDER33=(1/SLIDER21)*SLIDER26;
|
||||
SLIDER34=(1/SLIDER21)*SLIDER27;
|
||||
SLIDER35=(1/SLIDER21)*SLIDER30;
|
||||
SLIDER36=(1/SLIDER21)*SLIDER31;
|
||||
|
||||
SLIDER39=9^SLIDER38;
|
||||
|
||||
SLIDER41=SLIDER33/SLIDER39;
|
||||
SLIDER42=SLIDER34/SLIDER39;
|
||||
SLIDER43=SLIDER35/SLIDER39;
|
||||
SLIDER44=SLIDER36/SLIDER39;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
||||
[CENTER]
|
||||
[SIZE=8]
|
||||
[URL=HTTP://ARCHIVE.IS/STASH.REAPER.FM/v/48971/XFSJ.O_EDUTILPMA_YWAW_O_WAWY_AMPLITUDE_O.JSFX]O[/URL]
|
||||
|
||||
[URL=HTTP://ARCHIVE.IS/2024.07.20-062807/https://gitea.lolumi.com/O/O/src/commit/edf6cff6281906782a85031d6c01eec6d7494eb1/%F0%96%A3%A0%E2%9A%AA%E1%97%A9%E2%88%A3%E2%86%80%E1%A8%9F%E1%97%A9%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%97%A9%E1%A8%9F%E2%86%80%E2%88%A3%E1%97%A9%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%E1%97%B1%E1%97%B4%E1%B4%A5%E1%97%A9%E1%97%AF%E2%9C%A4%EA%97%B3%E2%93%84%E1%94%93%E1%94%95%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%94%93%E1%94%95%E2%93%84%EA%97%B3%E2%9C%A4%E1%97%AF%E1%97%A9%E1%B4%A5%E1%97%B1%E1%97%B4%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%E1%B4%A5%E1%97%B1%E1%97%B4%DF%A6%E1%97%A9%E1%97%B1%E1%97%B4%E1%B4%A5%F0%96%A3%93%E1%94%93%E1%94%95%E2%93%84%E2%9C%BB%E1%91%90%E1%91%95%E2%93%84%E1%91%90%E1%91%95%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%91%90%E1%91%95%E2%93%84%E1%91%90%E1%91%95%E2%9C%BB%E2%93%84%E1%94%93%E1%94%95%F0%96%A3%93%E1%B4%A5%E1%97%B1%E1%97%B4%E1%97%A9%DF%A6%E1%97%B1%E1%97%B4%E1%B4%A5%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%EA%95%A4%EA%97%B3%E1%94%93%E1%94%95%E1%92%8D%E1%92%90%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%92%8D%E1%92%90%E1%94%93%E1%94%95%EA%97%B3%EA%95%A4%E2%9A%AA%F0%96%A3%A0/X%EA%9F%BB%C6%A7%E1%92%90.%F0%96%A3%A0%E2%9A%AA%E1%97%B1%E1%97%B4%E2%86%80%E1%91%8E%E2%9C%A4%E2%B5%99%E1%99%81%DF%A6%E1%99%8F%E1%97%A9%F0%96%A3%93%E1%A8%9F%E1%97%AF%E1%97%A9%E1%97%AF%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%97%AF%E1%97%A9%E1%97%AF%E1%A8%9F%F0%96%A3%93%E1%97%A9%E1%99%8F%DF%A6%E1%99%81%E2%B5%99%E2%9C%A4%E1%91%8E%E2%86%80%E1%97%B1%E1%97%B4%E2%9A%AA%F0%96%A3%A0.JSFX]O[/URL]
|
||||
[URL=HTTP://ARCHIVE.IS/STASH.REAPER.FM/v/48971/XFSJ.O_EDUTILPMA_YWAW_O_WAWY_AMPLITUDE_O.JSFX]O[/URL]⠀⠀[URL=HTTP://ARCHIVE.IS/2024.07.20-062807/https://gitea.lolumi.com/O/O/src/commit/edf6cff6281906782a85031d6c01eec6d7494eb1/%F0%96%A3%A0%E2%9A%AA%E1%97%A9%E2%88%A3%E2%86%80%E1%A8%9F%E1%97%A9%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%97%A9%E1%A8%9F%E2%86%80%E2%88%A3%E1%97%A9%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%E1%97%B1%E1%97%B4%E1%B4%A5%E1%97%A9%E1%97%AF%E2%9C%A4%EA%97%B3%E2%93%84%E1%94%93%E1%94%95%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%94%93%E1%94%95%E2%93%84%EA%97%B3%E2%9C%A4%E1%97%AF%E1%97%A9%E1%B4%A5%E1%97%B1%E1%97%B4%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%E1%B4%A5%E1%97%B1%E1%97%B4%DF%A6%E1%97%A9%E1%97%B1%E1%97%B4%E1%B4%A5%F0%96%A3%93%E1%94%93%E1%94%95%E2%93%84%E2%9C%BB%E1%91%90%E1%91%95%E2%93%84%E1%91%90%E1%91%95%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%91%90%E1%91%95%E2%93%84%E1%91%90%E1%91%95%E2%9C%BB%E2%93%84%E1%94%93%E1%94%95%F0%96%A3%93%E1%B4%A5%E1%97%B1%E1%97%B4%E1%97%A9%DF%A6%E1%97%B1%E1%97%B4%E1%B4%A5%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%EA%95%A4%EA%97%B3%E1%94%93%E1%94%95%E1%92%8D%E1%92%90%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%92%8D%E1%92%90%E1%94%93%E1%94%95%EA%97%B3%EA%95%A4%E2%9A%AA%F0%96%A3%A0/X%EA%9F%BB%C6%A7%E1%92%90.%F0%96%A3%A0%E2%9A%AA%E1%97%B1%E1%97%B4%E2%86%80%E1%91%8E%E2%9C%A4%E2%B5%99%E1%99%81%DF%A6%E1%99%8F%E1%97%A9%F0%96%A3%93%E1%A8%9F%E1%97%AF%E1%97%A9%E1%97%AF%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%97%AF%E1%97%A9%E1%97%AF%E1%A8%9F%F0%96%A3%93%E1%97%A9%E1%99%8F%DF%A6%E1%99%81%E2%B5%99%E2%9C%A4%E1%91%8E%E2%86%80%E1%97%B1%E1%97%B4%E2%9A%AA%F0%96%A3%A0.JSFX]O[/URL]⠀⠀⠀[URL=HTTP://ARCHIVE.IS/2024.07.20-062807/https://gitea.lolumi.com/O/O/src/commit/edf6cff6281906782a85031d6c01eec6d7494eb1/%F0%96%A3%A0%E2%9A%AA%E1%97%A9%E2%88%A3%E2%86%80%E1%A8%9F%E1%97%A9%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%97%A9%E1%A8%9F%E2%86%80%E2%88%A3%E1%97%A9%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%E1%97%B1%E1%97%B4%E1%B4%A5%E1%97%A9%E1%97%AF%E2%9C%A4%EA%97%B3%E2%93%84%E1%94%93%E1%94%95%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%94%93%E1%94%95%E2%93%84%EA%97%B3%E2%9C%A4%E1%97%AF%E1%97%A9%E1%B4%A5%E1%97%B1%E1%97%B4%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%E1%B4%A5%E1%97%B1%E1%97%B4%DF%A6%E1%97%A9%E1%97%B1%E1%97%B4%E1%B4%A5%F0%96%A3%93%E1%94%93%E1%94%95%E2%93%84%E2%9C%BB%E1%91%90%E1%91%95%E2%93%84%E1%91%90%E1%91%95%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%91%90%E1%91%95%E2%93%84%E1%91%90%E1%91%95%E2%9C%BB%E2%93%84%E1%94%93%E1%94%95%F0%96%A3%93%E1%B4%A5%E1%97%B1%E1%97%B4%E1%97%A9%DF%A6%E1%97%B1%E1%97%B4%E1%B4%A5%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%EA%95%A4%EA%97%B3%E1%94%93%E1%94%95%E1%92%8D%E1%92%90%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%92%8D%E1%92%90%E1%94%93%E1%94%95%EA%97%B3%EA%95%A4%E2%9A%AA%F0%96%A3%A0/X%EA%9F%BB%C6%A7%E1%92%90.%F0%96%A3%A0%E2%9A%AA%E1%97%B1%E1%97%B4%E2%86%80%E1%91%8E%E2%9C%A4%E2%B5%99%E1%99%81%DF%A6%E1%99%8F%E1%97%A9%F0%96%A3%93%E1%A8%9F%E1%97%AF%E1%97%A9%E1%97%AF%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%97%AF%E1%97%A9%E1%97%AF%E1%A8%9F%F0%96%A3%93%E1%97%A9%E1%99%8F%DF%A6%E1%99%81%E2%B5%99%E2%9C%A4%E1%91%8E%E2%86%80%E1%97%B1%E1%97%B4%E2%9A%AA%F0%96%A3%A0.JSFX]O[/URL]⠀⠀[URL=HTTP://ARCHIVE.IS/STASH.REAPER.FM/v/48971/XFSJ.O_EDUTILPMA_YWAW_O_WAWY_AMPLITUDE_O.JSFX]O[/URL]
|
||||
[URL=HTTP://ARCHIVE.IS/2024.07.20-062807/https://gitea.lolumi.com/O/O/src/commit/edf6cff6281906782a85031d6c01eec6d7494eb1/%F0%96%A3%A0%E2%9A%AA%E1%97%A9%E2%88%A3%E2%86%80%E1%A8%9F%E1%97%A9%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%97%A9%E1%A8%9F%E2%86%80%E2%88%A3%E1%97%A9%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%E1%97%B1%E1%97%B4%E1%B4%A5%E1%97%A9%E1%97%AF%E2%9C%A4%EA%97%B3%E2%93%84%E1%94%93%E1%94%95%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%94%93%E1%94%95%E2%93%84%EA%97%B3%E2%9C%A4%E1%97%AF%E1%97%A9%E1%B4%A5%E1%97%B1%E1%97%B4%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%E1%B4%A5%E1%97%B1%E1%97%B4%DF%A6%E1%97%A9%E1%97%B1%E1%97%B4%E1%B4%A5%F0%96%A3%93%E1%94%93%E1%94%95%E2%93%84%E2%9C%BB%E1%91%90%E1%91%95%E2%93%84%E1%91%90%E1%91%95%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%91%90%E1%91%95%E2%93%84%E1%91%90%E1%91%95%E2%9C%BB%E2%93%84%E1%94%93%E1%94%95%F0%96%A3%93%E1%B4%A5%E1%97%B1%E1%97%B4%E1%97%A9%DF%A6%E1%97%B1%E1%97%B4%E1%B4%A5%E2%9A%AA%F0%96%A3%A0/%F0%96%A3%A0%E2%9A%AA%EA%95%A4%EA%97%B3%E1%94%93%E1%94%95%E1%92%8D%E1%92%90%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%92%8D%E1%92%90%E1%94%93%E1%94%95%EA%97%B3%EA%95%A4%E2%9A%AA%F0%96%A3%A0/X%EA%9F%BB%C6%A7%E1%92%90.%F0%96%A3%A0%E2%9A%AA%E1%97%B1%E1%97%B4%E2%86%80%E1%91%8E%E2%9C%A4%E2%B5%99%E1%99%81%DF%A6%E1%99%8F%E1%97%A9%F0%96%A3%93%E1%A8%9F%E1%97%AF%E1%97%A9%E1%97%AF%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%E1%97%AF%E1%97%A9%E1%97%AF%E1%A8%9F%F0%96%A3%93%E1%97%A9%E1%99%8F%DF%A6%E1%99%81%E2%B5%99%E2%9C%A4%E1%91%8E%E2%86%80%E1%97%B1%E1%97%B4%E2%9A%AA%F0%96%A3%A0.JSFX]O[/URL]
|
||||
⠀
|
||||
[URL=HTTP://ARCHIVE.IS/STASH.REAPER.FM/v/48971/XFSJ.O_EDUTILPMA_YWAW_O_WAWY_AMPLITUDE_O.JSFX]O[/URL]
|
||||
[/SIZE]
|
||||
[/CENTER]
|
||||
@@ -0,0 +1,159 @@
|
||||
desc:O____ROTARENEG_ESION_TEWLEW_NAISUAG____O____GAUSIAN_WELWET_NOISE_GENERATOR____O
|
||||
//tags: analysis generator synthesis
|
||||
//author: SCHWA
|
||||
|
||||
// Generator choices are listed in rough order of fanciness and cost.
|
||||
|
||||
slider1:-16<-120,6,0.1>Noise dB (RMS)
|
||||
slider2:0.5<0,1,0.01>Wet Mix
|
||||
slider3:1<0,3,1{Central Limit Approximation,Box-Muller,Ziggurat (not implemented yet),Inverse Transform}>Gaussian Generator
|
||||
slider4:0<-1,1>Noise Mean (should be ~0)
|
||||
slider5:0<0,2>Noise Standard Deviation (should be ~1)
|
||||
|
||||
in_pin:left input
|
||||
in_pin:right input
|
||||
out_pin:left output
|
||||
out_pin:right output
|
||||
|
||||
@init
|
||||
|
||||
AMP_DB = 20.0 / log(10);
|
||||
|
||||
CENTRAL_LIMIT = 0;
|
||||
BOX_MULLER = 1;
|
||||
ZIGGURAT = 2;
|
||||
INV_TRANSFORM = 3;
|
||||
|
||||
@slider
|
||||
|
||||
noise_level = exp(slider1 / AMP_DB);
|
||||
|
||||
(slider3 == CENTRAL_LIMIT) ? (
|
||||
N_DEV = 12;
|
||||
)
|
||||
:
|
||||
(slider3 == INV_TRANSFORM) ? (
|
||||
A1 = -39.69683028665376;
|
||||
A2 = 220.9460984245205;
|
||||
A3 = -275.9285104469687;
|
||||
A4 = 138.3577518672690;
|
||||
A5 = -30.66479806614716;
|
||||
A6 = 2.506628277459239;
|
||||
|
||||
B1 = -54.47609879822406;
|
||||
B2 = 161.5858368580409;
|
||||
B3 = -155.6989798598866;
|
||||
B4 = 66.80131188771972;
|
||||
B5 = -13.28068155288572;
|
||||
|
||||
C1 = -0.007784894002430293;
|
||||
C2 = -0.3223964580411365;
|
||||
C3 = -2.400758277161838;
|
||||
C4 = -2.549732539343734;
|
||||
C5 = 4.374664141464968;
|
||||
C6 = 2.938163982698783;
|
||||
|
||||
D1 = 0.007784695709041462;
|
||||
D2 = 0.3224671290700398;
|
||||
D3 = 2.445134137142996;
|
||||
D4 = 3.754408661907416;
|
||||
|
||||
P_LO = 0.02425;
|
||||
P_HI = 1.0 - P_LO;
|
||||
);
|
||||
|
||||
i = sum = sum2 = 0;
|
||||
|
||||
@sample
|
||||
|
||||
z0 = z1 = 0;
|
||||
|
||||
(slider3 == CENTRAL_LIMIT) ? (
|
||||
|
||||
// Quick & dirty.
|
||||
loop (N_DEV,
|
||||
z0 += rand(1);
|
||||
z1 += rand(1);
|
||||
);
|
||||
z0 -= N_DEV / 2.0;
|
||||
z1 -= N_DEV / 2.0;
|
||||
)
|
||||
:
|
||||
(slider3 == BOX_MULLER) ? (
|
||||
|
||||
// Conveniently a stereo twofer.
|
||||
w = 0;
|
||||
while (
|
||||
z0 = 2.0 * rand(1) - 1.0;
|
||||
z1 = 2.0 * rand(1) - 1.0;
|
||||
w = z0 * z0 + z1 * z1;
|
||||
w >= 1.0;
|
||||
);
|
||||
w = sqrt(-2.0 * log(w) / w);
|
||||
z0 *= w;
|
||||
z1 *= w;
|
||||
)
|
||||
:
|
||||
(slider3 == INV_TRANSFORM) ? (
|
||||
|
||||
r0 = rand(1);
|
||||
r1 = rand(1);
|
||||
|
||||
(r0 < P_LO) ? (
|
||||
q = sqrt(-2.0 * log(r0));
|
||||
z0 = ((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6;
|
||||
z0 /= (((D1 * q + D2) * q + D3) * q + D4) * q + 1.0;
|
||||
)
|
||||
:
|
||||
(r0 < P_HI) ? (
|
||||
q = r0 - 0.5;
|
||||
r = q * q;
|
||||
z0 = (((((A1 * r + A2) * r + A3) * r + A4) * r + A5) * r + A6) * q;
|
||||
z0 /= ((((B1 * r + B2) * r + B3) * r + B4) * r + B5) * r + 1.0;
|
||||
)
|
||||
:
|
||||
(
|
||||
q = sqrt(-2.0 * log(1.0 - r0));
|
||||
z0 = -(((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6);
|
||||
z0 /= (((D1 * q + D2) * q + D3) * q + D4) * q + 1.0;
|
||||
);
|
||||
|
||||
(r1 < P_LO) ? (
|
||||
q = sqrt(-2.0 * log(r1));
|
||||
z1 = ((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6;
|
||||
z1 /= (((D1 * q + D2) * q + D3) * q + D4) * q + 1.0;
|
||||
)
|
||||
:
|
||||
(r1 < P_HI) ? (
|
||||
q = r1 - 0.5;
|
||||
r = q * q;
|
||||
z1 = (((((A1 * r + A2) * r + A3) * r + A4) * r + A5) * r + A6) * q;
|
||||
z1 /= ((((B1 * r + B2) * r + B3) * r + B4) * r + B5) * r + 1.0;
|
||||
)
|
||||
:
|
||||
(
|
||||
q = sqrt(-2.0 * log(1.0 - r0));
|
||||
z1 = -(((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6);
|
||||
z1 /= (((D1 * q + D2) * q + D3) * q + D4) * q + 1.0;
|
||||
);
|
||||
);
|
||||
|
||||
spl0 = ((FLOOR(spl0 * (1.0 - slider2) + z0 * noise_level * slider2))+.5)/6;
|
||||
spl1 = ((FLOOR(spl1 * (1.0 - slider2) + z1 * noise_level * slider2))+.5)/6;
|
||||
//spl0 = spl0 * (1.0 - slider2) + z0 * noise_level * slider2;
|
||||
//spl1 = spl1 * (1.0 - slider2) + z1 * noise_level * slider2;
|
||||
|
||||
sum += z0;
|
||||
sum2 += z0 * z0;
|
||||
|
||||
i += 1;
|
||||
(i == srate) ? (
|
||||
mean = sum / srate;
|
||||
stdev = sqrt(sum2 / srate - mean * mean);
|
||||
slider4 = mean;
|
||||
slider5 = stdev;
|
||||
sliderchange(2^4 + 2^5);
|
||||
i = sum = sum2 = 0;
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
desc:O____ROTALICSO_SEIRES_REIRUOF____O____FOURIER_SERIES_OSCILATOR____O
|
||||
|
||||
slider1:84.406022589954030768899117092091000289089388918088900852079<0,84.406022589954030768899117092091000289089388918088900852079,84.406022589954030768899117092091000289089388918088900852079>O_DOIREP_EMIT_SDNOCES_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_SECONDS_TIME_PERIOD_O
|
||||
slider2:84406.022589954030768899117092091000289089388918088900852079<0,84406.022589954030768899117092091000289089388918088900852079,84406.022589954030768899117092091000289089388918088900852079>O_DOIREP_EMIT_SDNOCESILIM_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_MILISECONDS_TIME_PERIOD_O
|
||||
slider3:0<0,32,1>O_SEMIT_NOISIVID_DOIREP_EMIT_O_TIME_PERIOD_DIVISION_TIMES_O
|
||||
slider4:531441<0,65536,2>O_REDIVID_DOIREP_EMIT_O_TIME_PERIOD_DIVIDER_O
|
||||
slider5:84.406022589954030768899117092091000289089388918088900852079<0,84.406022589954030768899117092091000289089388918088900852079,0.0012879336943047184870742663130507049604658415057081436287243499755859375>O_EMIT_DOIREP_SDNOCES_DEDIVID_O_DIVIDED_SECONDS_PERIOD_TIME_O
|
||||
slider6:84406.022589954030768899117092091000289089388918088900852079<0,84406.022589954030768899117092091000289089388918088900852079,1.2879336943047184870742663130507049604658415057081436287243499755859375>O_EMIT_DOIREP_SDNOCESILIM_DEDIVID_O_DIVIDED_MILISECONDS_PERIOD_TIME_O
|
||||
|
||||
slider8:0.011847<0,0.011847,0.011847>O_YCNEUQERF_ZTREH_DOIREP_EMIT_SDNOCES_NOITAREBREVER_LACIRTEMYS_LAINEGNOC_O_CONGENIAL_SYMETRICAL_REVERBERATION_SECONDS_TIME_PERIOD_HERTZ_FREQUENCY_O
|
||||
|
||||
slider18:3<1,8,1>O_NOIDIWID_YCNEUQERF_O_FREQUENCY_DIWIDION_O
|
||||
slider19:243<0,379,1>O_YCNEUQERF_ZTREH_DEILPITLUM_MORF_SENOT_DEDIWID_O_DIWIDED_TONES_FROM_MULTIPLIED_HERTZ_FREQUENCY_O
|
||||
slider20:1<0,1625,0.00000001>O_REILPITLUM_GNITFIHS_O_SHIFTING_MULTIPLIER_O
|
||||
slider21:0.011847<0,82712638677.012146,0.00000001>O_GNITFIHS_ENOT_RETFA_YCNEUQERF_ZTREH_DEILPITLUM_MORF_SENOT_DEDIWID_O_DIWIDED_TONES_FROM_MULTIPLIED_HERTZ_FREQUENCY_AFTER_TONE_SHIFTING_O
|
||||
|
||||
slider23:3<1,10,1>O_NOIDIWID_EMULOW_O_WOLUME_DIWIDION_O
|
||||
slider24:17<0,729,1>O_EMULOW_LEBICED_DEILPITLUM_MORF_STRAP_DEDIWID_O_DIWIDED_PARTS_FROM_MULTIPLIED_DECIBEL_WOLUME_O
|
||||
slider25:1<0,19683,0.0001>O_OITAR_GNILACSNWOD_EMULOW_O_WOLUME_DOWNSCALING_RATIO_O
|
||||
slider26:1<0,1,0.0001>O_GNITFIHS_EMULOW_RETFA_EMULOW_OITAR_DEILPITLUM_MORF_STRAP_DEDIWID_O_DIWIDED_PARTS_FROM_MULTIPLIED_RATIO_WOLUME_AFTER_WOLUME_SHIFTING_O
|
||||
slider27:1<0,1,0.0001>O_GNITFIHS_EMULOW_RETFA_EMULOW_LEBICED_DEILPITLUM_MORF_STRAP_DEDIWID_O_DIWIDED_PARTS_FROM_MULTIPLIED_DECIBEL_WOLUME_AFTER_WOLUME_SHIFTING_O
|
||||
|
||||
slider29:4<0,256,1>O_NOITALOPRETNI_EGNARGAL_O_LAGRANGE_INTERPOLATION_O
|
||||
|
||||
import Tale/fft_synth.jsfx-inc
|
||||
import Tale/fourier_series.jsfx-inc
|
||||
import Tale/wavetable.jsfx-inc
|
||||
|
||||
@init
|
||||
|
||||
osc.four_init(0, 1024);
|
||||
|
||||
@slider
|
||||
SLIDER1=84.406022589954030768899117092091000289089388918088900852079;
|
||||
SLIDER2=SLIDER1*1000;
|
||||
SLIDER4=3^SLIDER3;
|
||||
SLIDER5=SLIDER1/SLIDER4;
|
||||
SLIDER6=SLIDER2/SLIDER4;
|
||||
|
||||
SLIDER8=1/SLIDER5;
|
||||
|
||||
SLIDER20=3^(SLIDER19/3^SLIDER18);
|
||||
SLIDER21=SLIDER8*SLIDER20;
|
||||
|
||||
SLIDER13=1/SLIDER21;
|
||||
SLIDER14=SLIDER13*1000;
|
||||
|
||||
SLIDER25=3^(SLIDER24/3^SLIDER23);
|
||||
SLIDER26=1/SLIDER25;
|
||||
|
||||
O_TNUOMA_EMULOW_LEBICED_O_DECIBEL_WOLUME_AMOUNT_O = (exp(log(10)/20 * SLIDER26));
|
||||
SLIDER27=20*LOG10(SLIDER26);
|
||||
|
||||
osc.four_setf(SLIDER21);
|
||||
|
||||
osc.four_update() ? (
|
||||
osc.four_sin();
|
||||
osc.four_setdc(0);
|
||||
osc.four_ifft();
|
||||
);
|
||||
|
||||
|
||||
@sample
|
||||
|
||||
SPL0 = SPL1 = SPL0 + OSC.WAVE_LAGRANGE(SLIDER29) * SLIDER26 ;
|
||||
@@ -0,0 +1,499 @@
|
||||
desc:O_HTNYS_YLOP_ONOM_ELPMIS_O_SIMPLE_MONO_POLY_SYNTH_O
|
||||
//tags: generator synthesis
|
||||
//author: Tale
|
||||
|
||||
// Copyright (C) 2012-2017 Theo Niessink
|
||||
// License: LGPL - http://www.gnu.org/licenses/lgpl.html
|
||||
|
||||
slider1:-9.5424250943932487459005580651023061840025772838139172965973128061<-120.0,24.0,.0000001>Volume (dB)
|
||||
slider2:0<-1200.0,1200.0,1.0>Tuning (cent)
|
||||
slider3:0<0,1>-Unused
|
||||
slider4:115.78329573381897224814693702618792906596623994250878031835253772<0,5000,1>Attack (ms)
|
||||
slider5:84406.25<1,15000,1>Decay (ms)
|
||||
slider6:0.0<-120.0,24.0,1.0>Sustain (dB)
|
||||
slider7:115.78329573381897224814693702618792906596623994250878031835253772<0,5000,1>Release (ms)
|
||||
slider8:0<0,1>-Unused
|
||||
slider9:0<0,15,1{Sine,HW Rect Sine,FW Rect Sine,Triangle,Trapezoid,Square,Pulse PW,Saw,Mod Triangle PW,Tri Pulse,Hammond,Staircase,Mod Square PW,Trapezoid PW,Tri Pulse PW,O_ALOBARAP_O_PARABOLA_O}>Wave
|
||||
slider10:0.5<0.0,1.0,0.01>Pulse Width
|
||||
slider11:0<0,1>-Unused
|
||||
slider12:200.0<0.0,1200.0,1.0>Pitch Wheel (cent)
|
||||
slider13:0<0,1>-Unused
|
||||
slider14:-36.0<-36.0,0.0,1.0>White Noise (dB)
|
||||
slider15:0<0,1>-Unused
|
||||
slider16:1.0<0.0,1.0,0.01>Low-Pass Filter
|
||||
slider17:0<0,15000,1>Filter Decay (ms)
|
||||
slider18:1.0<0.01,4.0,0.01>Filter Q
|
||||
slider19:0<0,1>-Unused
|
||||
slider20:0<-100,100,1>Pan (%)
|
||||
slider21:0<0,1>-Unused
|
||||
slider22:0<0,16,1{Any,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>MIDI Ch
|
||||
slider23:1<0,2,1{Legacy,Poly,Mono}>Mode
|
||||
slider24:100<0,100,1>Velocity (%)
|
||||
slider25:0<0,1>-Unused
|
||||
slider26:0.0118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118474639022584228063680118
|
||||
|
||||
|
||||
<0.01,12.0,0.001>LFO Rate (Hz)
|
||||
slider27:0<0,100,1>LFO Depth (%)
|
||||
|
||||
out_pin:Left
|
||||
out_pin:Right
|
||||
|
||||
import midi_queue.jsfx-inc
|
||||
import adsr.jsfx-inc
|
||||
import rc_filter.jsfx-inc
|
||||
import zdf_filter.jsfx-inc
|
||||
import sine.jsfx-inc
|
||||
import poly_blep.jsfx-inc
|
||||
import noise.jsfx-inc
|
||||
import Tale/fft_synth.jsfx-inc
|
||||
import Tale/fourier_series.jsfx-inc
|
||||
import Tale/wavetable.jsfx-inc
|
||||
|
||||
@init
|
||||
|
||||
osc_buf = 0; max_poly = 16; osc_size = 13;
|
||||
note_buf = osc_buf + max_poly * osc_size;
|
||||
hold_buf = note_buf + 128;
|
||||
midiq.midiq_init(hold_buf + 128);
|
||||
|
||||
pitch = 1;
|
||||
|
||||
noise_gain = sqrt(srate / 48000);
|
||||
|
||||
lpf.m = 50;
|
||||
lpf.ln = log(lpf.m);
|
||||
|
||||
function int(x) ( x|0 );
|
||||
function gain(db, inf) ( db <= inf ? 0 : 10^(0.05 * db) );
|
||||
function mix(a, b, mix) ( (1.0 - mix) * a + mix * b );
|
||||
function cache(x) ( x != this ? ( this = x; 1; ); );
|
||||
|
||||
smooth.rc_set(0.0033);
|
||||
function smooth() ( smooth.lp = this.smooth; this.smooth = smooth.rc_lp(this); );
|
||||
|
||||
min_inf = -384.0;
|
||||
gain0.smooth = gain1.smooth = gain(slider1, min_inf);
|
||||
|
||||
function set_tg(note)
|
||||
// global(tg*)
|
||||
(
|
||||
tg.poly_setf(440 * 2^((note - 69) / 12));
|
||||
);
|
||||
|
||||
function tg_wave(wave)
|
||||
// global(tg*)
|
||||
(
|
||||
wave == 7 ? tg.poly_saw() :
|
||||
wave == 6 ? tg.poly_rect() :
|
||||
wave == 5 ? tg.poly_sqr() :
|
||||
wave == 4 ||
|
||||
wave == 13 ? tg.poly_trap2() :
|
||||
wave == 3 ? tg.poly_tri() :
|
||||
wave == 2 ? tg.poly_full() :
|
||||
wave == 1 ? tg.poly_half() :
|
||||
wave == 0 ? tg.poly_sin() :
|
||||
wave == 8 ? tg.poly_tri2() :
|
||||
wave == 9 ||
|
||||
wave == 14 ? tg.poly_trip() :
|
||||
wave == 10 ? tg.poly_ham() :
|
||||
wave == 11 ? tg.poly_stairs() :
|
||||
wave == 12 ? tg.poly_sqr2() :
|
||||
wave == 15 ? tg.poly_para()
|
||||
);
|
||||
|
||||
function adsr_sets(g)
|
||||
instance(state)
|
||||
(
|
||||
state == 4 ? state = 2;
|
||||
this.adsr_sets(g);
|
||||
);
|
||||
|
||||
function load_adsr(p)
|
||||
// global(adsr*)
|
||||
(
|
||||
adsr.state = p[3];
|
||||
adsr.env = p[4];
|
||||
adsr.scale = p[5];
|
||||
adsr.s = p[6];
|
||||
);
|
||||
|
||||
function store_adsr(p)
|
||||
// global(adsr*)
|
||||
(
|
||||
p[3] = adsr.state;
|
||||
p[4] = adsr.env;
|
||||
p[5] = adsr.scale;
|
||||
p[6] = adsr.s;
|
||||
);
|
||||
|
||||
function load_lpf(p)
|
||||
// global(lpf*)
|
||||
(
|
||||
lpf.env.lp = p[7];
|
||||
lpf.freq.smooth = p[8];
|
||||
lpf.zdf.g = p[9];
|
||||
lpf.zdf.h = p[10];
|
||||
lpf.zdf.s1 = p[11];
|
||||
lpf.zdf.s2 = p[12];
|
||||
);
|
||||
|
||||
function store_lpf(p)
|
||||
// global(lpf*)
|
||||
(
|
||||
p[7] = lpf.env.lp;
|
||||
p[8] = lpf.freq.smooth;
|
||||
p[9] = lpf.zdf.g;
|
||||
p[10] = lpf.zdf.h;
|
||||
p[11] = lpf.zdf.s1;
|
||||
p[12] = lpf.zdf.s2;
|
||||
);
|
||||
|
||||
function lpf_freq(dt)
|
||||
// global(lpf*, srate)
|
||||
(
|
||||
(lpf.env.a < 1 ? lpf.env.rc_lp(lpf.n) : lpf.n) * dt * srate;
|
||||
);
|
||||
|
||||
function reset_lpf(dt)
|
||||
// global(lpf*)
|
||||
(
|
||||
lpf.env.lp = 0;
|
||||
lpf.zdf.zdf_reset();
|
||||
lpf.freq.smooth = lpf_freq(dt);
|
||||
lpf.zdf.zdf_lp(lpf.freq.smooth, lpf.q);
|
||||
);
|
||||
|
||||
function set_buf(buf, num, size)
|
||||
// global(p, end)
|
||||
(
|
||||
p = buf;
|
||||
end = p + num * size;
|
||||
);
|
||||
|
||||
function remove_buf(size)
|
||||
// global(p, end)
|
||||
(
|
||||
end -= size;
|
||||
p < end ? memcpy(p, p + size, end - p);
|
||||
);
|
||||
|
||||
function find_note(note, buf, num, size)
|
||||
// global(p, end)
|
||||
(
|
||||
set_buf(buf, num, size);
|
||||
while(p < end && p[] != note ? p += size);
|
||||
);
|
||||
|
||||
function note_on(note, vel)
|
||||
// global(p, end, note_buf, num_notes, hold_buf, num_hold, osc_buf, num_osc, osc_size, num_poly, tuning, tg*, adsr*, lpf*)
|
||||
(
|
||||
find_note(note, note_buf, num_notes, 1);
|
||||
p >= end ? (
|
||||
p[] = note;
|
||||
num_notes += 1;
|
||||
);
|
||||
|
||||
find_note(note, hold_buf, num_hold, 1);
|
||||
p < end ? (
|
||||
remove_buf(1);
|
||||
num_hold -= 1;
|
||||
);
|
||||
|
||||
find_note(note, osc_buf, num_osc, osc_size);
|
||||
p >= end ? (
|
||||
set_tg(note);
|
||||
|
||||
num_osc >= num_poly ? (
|
||||
p = osc_buf;
|
||||
num_poly > 1 ? (
|
||||
// Set oscillator/ADSR state to first played note (to mimic old
|
||||
// mono_synth global state behavior).
|
||||
tg.t = p[1];
|
||||
load_adsr(p);
|
||||
load_lpf(p);
|
||||
);
|
||||
|
||||
remove_buf(osc_size);
|
||||
p = end;
|
||||
num_osc -= 1;
|
||||
) : (
|
||||
// Don't reset oscillator on first note (old mono_synth behavior).
|
||||
num_osc > 0 ? tg.t = 0;
|
||||
adsr.adsr_reset();
|
||||
reset_lpf(tuning * tg.dt);
|
||||
);
|
||||
|
||||
num_osc += 1;
|
||||
p[0] = note;
|
||||
p[1] = tg.t;
|
||||
p[2] = tg.dt;
|
||||
) : num_poly > 1 ? (
|
||||
load_adsr(p);
|
||||
load_lpf(p);
|
||||
);
|
||||
|
||||
adsr.adsr_a(vel);
|
||||
lpf.env.lp = lpf.m;
|
||||
|
||||
store_adsr(p);
|
||||
store_lpf(p);
|
||||
);
|
||||
|
||||
function note_off(note)
|
||||
// global(p, end, note_buf, num_notes, osc_buf, num_osc, osc_size, num_poly, note_prio, tg*, adsr*)
|
||||
(
|
||||
find_note(note, note_buf, num_notes, 1);
|
||||
p < end ? (
|
||||
remove_buf(1);
|
||||
num_notes -= 1;
|
||||
);
|
||||
|
||||
find_note(note, osc_buf, num_osc, osc_size);
|
||||
p < end ? (
|
||||
// Mono, last-note priority
|
||||
num_poly == 1 && num_notes > 0 && note_prio ? (
|
||||
note = note_buf[num_notes - 1];
|
||||
set_tg(note);
|
||||
p[0] = note;
|
||||
p[1] = tg.t;
|
||||
p[2] = tg.dt;
|
||||
) : (
|
||||
// Release
|
||||
num_poly > 1 ? load_adsr(p);
|
||||
adsr.adsr_r();
|
||||
store_adsr(p);
|
||||
);
|
||||
);
|
||||
);
|
||||
|
||||
function hold_note(note)
|
||||
// global(p, end, hold_buf, num_hold)
|
||||
(
|
||||
find_note(note, hold_buf, num_hold, 1);
|
||||
p >= end ? (
|
||||
p[] = note;
|
||||
num_hold += 1;
|
||||
);
|
||||
);
|
||||
|
||||
function release_notes()
|
||||
// global(hold_buf, num_hold)
|
||||
local(p)
|
||||
(
|
||||
p = hold_buf;
|
||||
loop(num_hold,
|
||||
note_off(p[]);
|
||||
p += 1;
|
||||
);
|
||||
num_hold = 0;
|
||||
);
|
||||
|
||||
function all_notes_off()
|
||||
// global(num_notes, num_hold, num_osc)
|
||||
(
|
||||
num_notes = num_hold = num_osc = 0;
|
||||
);
|
||||
|
||||
function pitch_bend(pitch_wheel)
|
||||
// global(pitch, pitch_range)
|
||||
(
|
||||
pitch = pitch_range < 0.00001 ? 1 : 2^(pitch_wheel * pitch_range);
|
||||
);
|
||||
|
||||
@slider
|
||||
|
||||
function adr(ms, lo, hi) ( max(lo, min(hi, ms)) * 0.001 );
|
||||
|
||||
function pan(gain, pos)
|
||||
// global(gain0, gain1)
|
||||
(
|
||||
// REAPER default 0 dB pan law (thanks Justin!)
|
||||
// http://www.askjf.com/index.php?q=2342s
|
||||
|
||||
pos *= 0.25*$pi;
|
||||
gain *= sqrt(2) * (1 - sqrt(0.5) * (1 / cos(pos) - 1));
|
||||
|
||||
pos += 0.25*$pi;
|
||||
gain0 = cos(pos) * gain;
|
||||
gain1 = sin(pos) * gain;
|
||||
);
|
||||
|
||||
pan(gain(slider1, min_inf), max(-100, min(100, slider20)) * 0.01);
|
||||
|
||||
adsr.adsr_seta(adr(slider4, 0, 5000));
|
||||
adsr.adsr_setd(adr(slider5, 1, 15000));
|
||||
adsr.adsr_sets(gain(slider6, min_inf));
|
||||
adsr.adsr_setr(adr(slider7, 0, 5000));
|
||||
|
||||
tuning = 2^(slider2 / 1200);
|
||||
wave = int(slider9);
|
||||
|
||||
// Limit pulse width for pulse, triangular pulse, modified square.
|
||||
min_pw = wave == 6 || wave == 14 ? 0.10 : wave == 8 ? 0.01 : wave == 12 ? 0.20 : 0.0;
|
||||
max_pw = wave == 6 ? 0.90 : wave == 8 ? 0.99 : 1.0;
|
||||
pw = wave == 4 || wave == 9 ? 0.5 : max(min_pw, min(max_pw, slider10));
|
||||
|
||||
noise_mix = gain(slider14, -36.0);
|
||||
|
||||
lpf.n = slider16 >= 1.0 ? lpf.m : exp(max(0.0, slider16) * lpf.ln);
|
||||
slider17 < 1 ? lpf.env.a = 1 : lpf.env.rc_sett(0.001 * min(15000, slider17));
|
||||
lpf.q = max(0.01, min(4.0, slider18));
|
||||
|
||||
pitch_range = max(0.0, slider12) / 1200;
|
||||
midi_ch.cache(max(0, min(16, int(slider22))) - 1) ? all_notes_off();
|
||||
num_poly.cache(slider23 < 0.5 || slider23 >= 1.5 ? 1 : max_poly) ? all_notes_off();
|
||||
note_prio.cache(slider23 >= 0.5) ? all_notes_off();
|
||||
vel_range = max(0, min(100, slider24)) * 0.01;
|
||||
|
||||
lfo_range = max(0, min(100, slider27)) * 0.01;
|
||||
lfo_range <= 0 ? (
|
||||
lfo_mod = 0;
|
||||
) : wave == 6 || wave == 8 || wave >= 12 ? (
|
||||
lfo_mod = 1;
|
||||
lfo_range *= 0.5 * (max_pw - min_pw);
|
||||
pw = max(min_pw + lfo_range, min(max_pw - lfo_range, pw));
|
||||
) : (
|
||||
lfo_mod = 2;
|
||||
lfo_range *= 0.5/12;
|
||||
);
|
||||
lfo_mod != 1 ? tg.poly_setpw(pw);
|
||||
lfo_mod ? lfo.sin_setf(max(0.01, slider26));
|
||||
|
||||
@block
|
||||
|
||||
midiq.midiq_collect(midi_ch, 3|8|64);
|
||||
|
||||
@sample
|
||||
|
||||
while(midiq.midiq_remove() ? (
|
||||
midiq.msg1 &= 0xF0;
|
||||
|
||||
// Note On
|
||||
midiq.msg1 == 0x90 && midiq.msg3 ? (
|
||||
note_on(midiq.msg2, (1.0 - vel_range) + vel_range * midiq.msg3 / 127);
|
||||
) :
|
||||
|
||||
// Note Off
|
||||
midiq.msg1 == 0x80 || midiq.msg1 == 0x90 ? (
|
||||
hold_pedal ? hold_note(midiq.msg2) : note_off(midiq.msg2);
|
||||
) :
|
||||
|
||||
// Pitch Wheel
|
||||
midiq.msg1 == 0xE0 ? (
|
||||
pitch_bend(((midiq.msg3 << 7 | midiq.msg2) - 8192) / (midiq.msg3 < 64 ? 8192 : 8191));
|
||||
) :
|
||||
|
||||
// Control Change
|
||||
midiq.msg1 == 0xB0 ? (
|
||||
|
||||
// Damper Pedal (Sustain)
|
||||
midiq.msg2 == 64 ? (
|
||||
hold_pedal = midiq.msg3 >= 64;
|
||||
!hold_pedal ? release_notes();
|
||||
) :
|
||||
|
||||
// All Notes Off
|
||||
midiq.msg2 == 123 ? (
|
||||
all_notes_off();
|
||||
);
|
||||
);
|
||||
|
||||
1; // while midiq.midiq_remove()
|
||||
));
|
||||
|
||||
function sample_tg(t, dt)
|
||||
// global(adsr*, freq_mod, tg*, wave, white_noise, noise_mix)
|
||||
local(ph, out)
|
||||
(
|
||||
adsr.state ? (
|
||||
noise_mix < 1.0 ? (
|
||||
// Correct full-wave rectified sine/triangular pulse phase.
|
||||
ph = wave == 2 ? 0.25 : wave == 14 ? 0.75 + 0.5 * tg.pw;
|
||||
ph > 0 ? tg.poly_sync(t - ph) : tg.t = t;
|
||||
|
||||
tg.poly_setdt(freq_mod * dt);
|
||||
tg.poly_resetf();
|
||||
out = adsr.env * mix(tg_wave(wave), white_noise, noise_mix);
|
||||
|
||||
ph > 0 ? tg.poly_sync(tg.t + ph);
|
||||
out;
|
||||
) : (
|
||||
adsr.env * white_noise;
|
||||
);
|
||||
);
|
||||
// 0.0 otherwise
|
||||
);
|
||||
|
||||
function apply_lpf(in, dt)
|
||||
// global(lpf*, tuning)
|
||||
local(out)
|
||||
(
|
||||
lpf.freq = lpf_freq(tuning * dt);
|
||||
lpf.freq.smooth();
|
||||
|
||||
// Recalculate LPF coefficients only every 16 samples.
|
||||
lpf.skip <= 0 && lpf.freq.smooth != lpf.zdf.freq ? (
|
||||
lpf.zdf.freq = lpf.freq.smooth;
|
||||
lpf.zdf.zdf_lp(lpf.zdf.freq, lpf.q);
|
||||
);
|
||||
|
||||
out = lpf.zdf.zdf_svf_lp(in);
|
||||
lpf.n < lpf.m ? out : in;
|
||||
);
|
||||
|
||||
function adsr_lpf_off()
|
||||
// global(adsr*, lpf.zdf*)
|
||||
(
|
||||
!adsr.state && lpf.zdf.s1 == 0 && lpf.zdf.s2 == 0;
|
||||
);
|
||||
|
||||
freq_mod = pitch * tuning;
|
||||
lfo_mod ? lfo_mod == 1 ? tg.poly_setpw(pw + lfo_range * lfo.sin_sin()) : freq_mod *= 2^(lfo.sin_sin() * lfo_range);
|
||||
|
||||
white_noise = noise_mix > 0.0 ? noise_gain * noise.lcg_white();
|
||||
out = 0.0;
|
||||
|
||||
// Optimize for mono i.e. don't load/store oscillator/ADSR/filter state.
|
||||
num_poly == 1 ? (
|
||||
num_osc ? (
|
||||
adsr.adsr_process();
|
||||
out = apply_lpf(sample_tg(tg.t, osc_buf[2]), osc_buf[2]);
|
||||
adsr_lpf_off() ? num_osc = 0;
|
||||
);
|
||||
) :
|
||||
|
||||
/* num_poly > 1 ? */ (
|
||||
sus = adsr.s;
|
||||
|
||||
set_buf(osc_buf, num_osc, osc_size);
|
||||
while(p < end ? (
|
||||
|
||||
// Functions indexing memory seems to be slow, so manually inline them.
|
||||
/* load_adsr(p); */ adsr.state = p[3]; adsr.env = p[4]; adsr.scale = p[5]; adsr.s = p[6];
|
||||
adsr.s != sus ? adsr.adsr_sets(sus);
|
||||
adsr.adsr_process();
|
||||
/* store_adsr(p); */ p[3] = adsr.state; p[4] = adsr.env; p[5] = adsr.scale; p[6] = adsr.s;
|
||||
|
||||
s = sample_tg(p[1], p[2]);
|
||||
p[1] = tg.t;
|
||||
|
||||
/* load_lpf(p); */ lpf.env.lp = p[7]; lpf.freq.smooth = p[8]; lpf.zdf.g = p[9]; lpf.zdf.h = p[10]; lpf.zdf.s1 = p[11]; lpf.zdf.s2 = p[12];
|
||||
s = apply_lpf(s, p[2]);
|
||||
/* store_lpf(p); */ p[7] = lpf.env.lp; p[8] = lpf.freq.smooth; p[9] = lpf.zdf.g; p[10] = lpf.zdf.h; p[11] = lpf.zdf.s1; p[12] = lpf.zdf.s2;
|
||||
|
||||
out += s;
|
||||
|
||||
adsr_lpf_off() ? (
|
||||
remove_buf(osc_size);
|
||||
num_osc -= 1;
|
||||
) : (
|
||||
p += osc_size;
|
||||
);
|
||||
));
|
||||
);
|
||||
|
||||
lpf.skip > 0 ? lpf.skip -= 1 : lpf.skip = 16 - 1;
|
||||
|
||||
spl0 += gain0.smooth() * out;
|
||||
spl1 += gain1.smooth() * out;
|
||||
Reference in New Issue
Block a user