Reaktor 5 Mode - New Initialization Algorithm: First Step - Sort Modules
Reaktor 5 Mode - New Initialization Algorithm: First Step - Sort Modules
This chapter describes a new initialization scheme that is introduced with Reaktor 5. It is used, if the Reaktor 4 Legacy ode is disabled in the !nsemble "roperties. Attention! We urgently recommend to use this new mode for future compati ility! The following describes the new module and signal initialization step by step.
are marked as being passed by the current search, the module gets marked as acti'e and is put into the #orted$ odules$List. This #orting can be displayed thru a new enu$!ntry& (#ystem($)(*ebug($)(#how !'ent Initialization +rder( Remark& for odules in Loops ,!'ent$ and also %udio$Loops- the order of the #inks in the #inks$List can be rele'ant for the #orting of the odules. The order of the #inks is determined by searching #inks recursi'e in all Instruments and acros, starting from !nsemble$Le'el. Remark& /ecause on !nsemble$Le'el the only #ink is the *%0$ odule, the *%0$ odules is always the first one in the #inks$List. %dditionally, in this #orting$%lgorithm a List of generated. odules ha'ing implicit 0onstants is
Implicit 0onstants are +ut"orts of odules which do not change thru any processing of the odule. 1or e2ample the #nap 3alue %rray has an +ut"ort for the number of !lements in its array, which can only be changed in the "roperties. These +ut"orts are considerated as 0onstants and are Initialized separately from the rest of the odule. 4ere is a List of the #nap 3alue %rray odules beha'ing in this way&
+ut"ort (5( $ 5umber of !lements ulti "icture +ut"ort (5$6( $ 5umber of pictures in the animation $ 6 ulti *isplay +ut"ort (5"( $ 5umber of pictures in the animation ulti *isplay %rray +ut"ort (5"( $ 5umber of pictures in the animation +ut"ort (5+( $ 5umber of !lements %udio Table, !'ent Table +ut"ort (*7( $ 7 size of the table +ut"ort (*8( $ 8 size of the table 78 +ut"ort ( 7( $ last "osition +ut"ort ( 8( $ last "osition
If the odule has an !'ent$0onnection to another odules In"ort, notify this In"ort that a 3alue has arri'ed. If the In"ort is a polyphonic one and the odule is polyphonic, this is done for each 'oice and the In"ort has a notification flag for each 'oice.
The
"ource-Modules 1or 1aders, /uttons and so on, the Init$1unction e2ecutes basically only a recall of the last 3alue, putting it to the odules +ut"ort and notify the connected !'ent$ In"orts. They are called #ource$ odule, which reflects that their +utput$3alues are not a result of any !'ent$ or %udio$"rocessing. ost of these odules do not ha'e any In"ort.
Modules with one $ut#ort 1ader, :nob List /utton 5ote "itch "itchbend#ingle Trig. 9ate 9ate #ingle Trig. 9ate #el. 5ote 9ate +n 3elocity +ff 3elocity 0ontroller 0h. %ftertouch "oly %ftertouch #el. "oly %T #nap 3alue 0onstant +ut"ort is set;
Modules with multiple $ut#orts #tart<#top only +ut"ort (9( is set; The 3alue is e=ual to $ >.> if the 0lock is not running or $ the chosen +?T"?T 3%L?! from the "roperties$ 1unction$"age if the 0lock is running. aster Tune<Le'el 3oice Info Tuning #ystem Info 5ote Range idi 0hannel all +ut"orts are set;
#ampler 1 #ampler Loop #ample Lookup Tapedeck 6$0h Tapedeck @$0h The +ut"ort (Len( is set; Remark& for #ampler 1 and #ampler Loop this depends on the current selected #ample; #napshot& +ut"orts (#np(, (/nk(, ( ph(, (%mt( are set; +ut"ort (%( is set when there is currently a %$#nap for morphing selected +ut"ort (/( is set when there is currently a /$#nap for morphing selected +ut"ort (#w( is set to the last selected #witch$"osition ,see #napshot$Aindow-
Modules with %&ent-In#orts e.g. for a 4ybrid like this& ath odule like the %dd$ odule, the Init$1unction works
If the odule is in !'ent$ ode ,green or red coloured "orts- then do for each In"ort if the In"ort is not wired or if it is wired but the wiring is not acti'e ,e.g. a "ort is uted- then pass a >.> 3alue to the In"orts !'ent$1unction. otherwise this In"ort is (really( wired ,it is wired to a acti'e non$Transparent odule and the wiring is acti'e-. Then the algorithm looks up for each 3oice if a notification has arri'ed. If this is so, pass the 'alue to the In"orts !'ent$1unction.
this odule has no !'ent$In"ort, ne'ertheless the current 'alue at its %udio$In"ort is set to the +ut"ort; 0ore 0ell %udio, 0ore 0ell !'ent these ha'e special Init$1unctions; see Reaktor 0ore 0ell$*ocumentation; +rder the incoming !'ent is set only to the 6st ,topmost-+ut"ort. The other +ut"orts process later, see (1ourth #tep $ "rocess all +rder$ odules(.
Iteration the incoming !'ent is set to the +ut"ort, the rest of the iteration is done later, see (1ifth #tep $ "rocess all Iteration$ odules(.
!2amples when it is possible, that no 3alue arri'es at an !'ent$In"ort in spite there is a acti'e connection& The In"ort is wired to a #eparator$ odules (Low( or (4igh( +ut"ort. +nly one of these two +ut"orts will fire an !'ent at Initialization. If both +ut"orts are connected to two In"orts, only one In"ort will not recei'e a notification. The In"ort is wired to a To$3oice$ odule. %s said abo'e, the notification takes place for each 3oice. % To$3oice$ odule only sends for one 3oice at Initialisation, so the In"ort gets only a notification for that 3oice.
Ahile this algorithm processes, it can happen that it tries to notify a !'ent$In"ort of a odule which has already been passed by the algorithm. This is what we call a !'ent$Loop. These In"orts where an !'ent$Loop occurred are stored in a special List and are processed in the ne2t step.
Reaktor !'ent.