uitleg Trickshot
uitleg Trickshot
en waar was toen ineens de trickster vst gebleven...? hmm, kan m ook niet uploaden omdat die er al bij zou staan.. Dus we gaan er vanuit dat ie er toch staat en geven hier ene stukkie uitleg.... succes....
Dit is dus wel min of meer een monstertje, 1 voice vraagt op mijn computer soms to 40% in de pieken (hele oude gammele AMD3000+.... ja, HIJ WERKT NOG STEEDS! een beetje.... XD)
De soundsource:
Een unison oscilator tot 7 voices met 21 golfvormen (waarvan de tweede helft pulse-varianten zijn van de eerste helft. Hierbij wordt de pulsewidth gemoduleerd vanuit de 6x6-LFO-matrix waarover hieronder meer.)
Hiernaast de volgende controllers voor de oscilator:
-golfvorm (21 stuks)
-aantal harmonieen (tot 256 harmonics)
-unison amount (tot 7)
-key (draaiknop rechts naast de carrier waveform, helemaal naar links is C of A afhankelijk van scale)
-major/minor (switch rechts naast de unison-selector)
-PW: pulsewidth offset naast de modulatie van de 6x6 LFO)
-Detune&Stretch&Mod: unison controllers, waarbij de 'mod' de wijdtje voor een variant op de 6x6 LFO bepaald.
-Base&FM&dir&switch: voor FM synthese heb ik een simpele oscilator toegevoegd. De FM-knop bepaald de wijdte en richting van modulatie (bipolair), de base en dir knoppen bepalen de invloed van de FM met betrekking tot de gespeeld toonhoogte van de carrier (meer of minder FM op hogere of lagere noten, de base is hierbij de offset). De swtich ernaast zorgt dat de FM-modulator 1 octaaf onder de carrier gaat.
-syncmode: bij positief->negatief, OFF-stand, negatief->positief. Deze bepaalt het moment waarop de carrier wordt gesynced aan de FM oscilator.
-Sync#: aantal zero-crossings in syncmode waarna de carrier wordt gesynced (gaat tot 256). Dit zorgt voor een 'gepinged' geluid bij volledig clockwise en een normale sync bij counter clockwise.
-FM/syncform: FM/sync waveform voor modulator.
Envelope/VCA:
De envelope heb ik ook iets anders gemaakt dan standaard. De attack-decay stages worden bepaald door de A/D gate length, bij iedere nieuwe trigger wordt de envelope geretriggered en doorloop die deze stages totdat die in de sustain stage gaat, deze blijft aan totdat er een nieuwe trigger komt voor de A/D stage of de gespeelde midi-note gereleased wordt (sequencer gaat spelen bij het sturen van een midinote-on tot een midinote-off).
Waarom een aparte, geocombineerde A/D gate-time?
Bij de ADSR heb ik een sequencer gemaakt die op basis van de main-sequencer de verhouding tussen attack en decay sequenced, waardoor een doorgaande variatie mogelijk is voor de aanslag.
-Min attack: dit is de minimum attack die de synth kan aannemen en hierbij wordt de gatelength bij opgeteld voor de complete gate-tijd.
-att Step& ' / ' &Att width: op basis van de sequencer-position wordt de modulatie berekend, de att width bepaalt de modulatie-wijdte. 0 is hierbij geen modulatie (attack altijd op minimum waarde) en 10 is volledige modulatie (waarbij de decay tot 0 kan komen en de attack de volle gate-time krijgt). De att step en de '/ '-knop bepalen de stapgrootte van de modulatie. Zodra de waarde boven de att-width uitkomt, wordt die gewrapped binnen deze waarde.
-A/D gate: hierbij 2 knoppen: de kleine knop vermenigvuldigd de grote knop zodat daar makkelijker mee gespeeld kan worden. Compleet counter-clockwise zorgt ervoor dat de A/D gate knop van 0 naar 1 beat-length gaat. op basis van de sequencer-BPM. Dus als er een doorgaande, op de tel, trigger wordt gegeven heb je een standaard trance-gate. Maar als je de knop clockwise draait gaat de A/D gate tot aan 16x de beatlengte van de sequencer BPM.
-VCA-mode: verschillende modi voor de VCA. Deze heeft veel invloed op de aanslag en daarmee op de hierna komende distortion.
-volume: deze staat eigenlijk aan het einde van de volledige synth+effect chain en bepaald de overall-volume.
-Dist: input gain voor de distortion
-Speed: cutoff frequentie van de filter in het feedback-path die de input gain omlaag draait zodra het ingangs signaal boven de distortion uit zou komen. Hiermee bepaal je de character van de distortion.
-res: resonantie waarde van de filter in de distortion.
Filter:
6 verschillende filters (LP, HP,BP,NOTCH,PEAKa,PEAKb, bypass en OFF->hierbij dus ook geen geluid meer...)
CM: cutoff modulatie door de inkomende, gerectificeerde audio. Bipolair, dus bepaald hoe de uitslag vanuit het 0-punt de cutoff omhoog of omlaag duwt)
P->C: pitch voor oscilator ook naar de cutoff sturen.
Env: envelope wijdte van de A/D-sustain envelope (bipolair) die naar de cutoff wordt gestuurd.
Shape: hiermee bepaald je de shape van de envelope zoals die naar de cutoff wordt gestuurd.
Cut&width&step: Cut=main cutoff frequentie waarbij de wijdte en step de sequencer-position omzetten naar een offset voor de cutoff zodat er een cut-off modulatie plaatsvindt (zelfde opzet als A/D modulatie)
Res&width&step: main resonantie waarde van de filter met (weer dezelfde) modulatie opzet.
btw, ook hier is de 'width' verhoudings-gewijs. de -1 en +1 komen overeen met maximale en minimale cutoff en resonantie waarden zodat je hier niet overheen kan gaan en de plugin zou crashen.
De 6x6 LFO:
Dit gedeelte is nog aan verandering onderhevig en geldt dus als 'voorlopig' maar geeft wel goed weer wat het doet.
Ik heb 6 LFO's genomen met voor iedere LFO een eigen BPM (grijze bollen in deze versie) afgeleid van de main-bpm (de A in het gestreepte vlak linksbovenin bij deze vst-versie). Deze gaan naar Quad-mixers waarbij er 4 over de 4 inputs verdeelt worden en 2 over de x en y mix. Bij elke volgende quad-mixer heb ik dan de volgorde veranderd waardoor deze 6 LFO's samen meer dan 50 LFO-golfvormen produceren.
Bij deze versie heb je enkel de keuze uit 1 golfvorm voor alle 6 de lfo's (LFO MOD in het oscilator-gedeelte)
Wat moest ik met zoveel LFO's? Nou, die gaan dus naar de 32-FIR filter die achter de oscilator zit en vermenigvuldigen de audio met de LFO-waarde. Hiernaast worden alle LFO-waarden bij elkaar opgeteld en wordt het door de FIR gemodificeerde geluid terug geschaald naar een min/max bereik (anders zou het volume, afhankelijk van de waarden tot wel 30x lineair! versterkt kunnen worden).
Deze FIR is dan ook wel de CPU-vreter in de synth, want hij zit in het polyphone gedeelte. Dus met elke voice heb je weer 32 sample delays te laden....
In de volgende versie is er naast enkel de main-golfvorm en snelheiden ook de offset en wijdte voor elke sampledelay te bepalen, welke men zelf kan instellen of gewoon kan randomisen.
De Sequencer/Arp:
ok, maar hoe speelt ie nou iets? welnu, dat krijgen we hier te horen:
Rechtsbovenin heb je het sequencer gedeelte met daarin een matrix-display waarin je ziet welke triggers er waar gegenereerd worden op welk moment (gewoon leuk om te zien toch? haha)
Naast deze matrix heb je 2 rijtjes met grijze elipsen (met getallen erin zonder omschrijven merk ik net ineens op haha). Welnu van boven naar beneden besturen ze; gate, pitch, velocity, cutoff en resonantie.
de linker rij bepaald de sequencer-offset met betrekking tot de main-play-position, oftewel the start-position (deze loopt altijd van 1 tot 12

. De rechter rij geeft aan de wijdte van de gegenereerde sequence: dus als er staat 12 en 16, dan begint de sequence in de positie 12 en telt tot 27, waarna die de eventuele hogere getallen weer wrapped tussen 12 en 27).
Ok, maar hoe werkt dit??
-Allereerst heb je de main-sequencer positie
-Deze wordt voor gate, pitch, velocity, cutoff en resonantie binnen een nieuwe range gewrapped (grijze controls)
-de dan gegenereerde waarde wordt dan naar de width/step controls gestuurd die op hun beurt de waarde nogmaals naar hun eigen reikwijdtje wrappen. Hiermee ontstaan intervallen en worden er herkenbare en zich herhalende patronen gegenereerd.
-De interval max en interval step bepalen wanneer er triggers gegenereerd worden. Dit is weer op euclidische basis en de werkelijke intervallen worden dus (nog) niet weergegeven) Interval-max is maximale stap grootte en de interval step is de ratio ten opzichte van deze max (dus waarde 1 niet gebruiken, want dan komt die telkens terug op dezelfde plaats door de wrapper). Op basis van de max en step waarde wordt er dus een interval gecreeerd van 4 stappen die over de sequencer-position wordt 'heen gelegd'.
OK, leuk en aardig, maar wat doet/betekent dit?->
de sequencer telt: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
als de gecreeerde interval zou zijn: 2,5,3,4 dan telt de sequencer:
0,0,2,2,2,2,2,7,7,7,10,10,10,10
Bij elke verandering van sequencer-position wordt er dan een trigger gegenereerd voor de A/D gate en wordt er zo een doorgaand varierend ritme gecreeerd, daarnaast sample&hold die met deze trigger de pitch, velocity, cutoff en resonantie waarde voor die sequencer-positie..
Bovenin in het vlak heb je nog de 'vari-step' die een offset genereerd voor de step-grootte van pitch en gate-interval., zodat na elke x aantal beats er automatisch een variatie gegenereerd wordt op het spelende ritme. (de wijdte NIET onder de 0.5 volt zetten!!!! dan loopt je computer vast door een divider-error!! verholpen in volgende versie..).
Daarnaast nog een P-CV->step, die bepaald hoeveel er van de midi-note waarde naar de stapgrootte wordt gestuurd zodat elke gespeelde midi-note een ander ritme en melodietje speelt.
Reverb:
met volume-decay, size, diffuse, dampl, LP-in, HP-in, reverb-volume en een 'seed' die random cutoff-waarden selecteert voor de diffusers zodat de kamer anders gedimensioneerd is.
poepoe... dat was een hoop.... vraag me af of het begrijpelijk is haha