Vous êtes sur la page 1sur 224

REAKTOR CORE

Tutoriel / Manuel Utilisateur

Les informations contenues dans ce document peuvent tre modies tout moment sans pravis et nengagent pas la responsabilit de Native Instruments Software Synthesis GmbH. Le Logiciel dcrit dans ce document est soumis lacceptation dune Licence dUtilisation et ne doit pas tre copi sur dautres supports. Aucune partie de ce manuel ne peut tre copie, reproduite, transfre ou enregistre, sous quelque forme que ce soit et pour quelque usage que ce soit, sans laccord crit explicite de Native Instruments Software Synthesis GmbH. Tous les noms de produits et dentreprises sont des marques dposes par leurs propritaires respectifs. De plus, si vous lisez ceci, cela signie que vous avez prfr acheter le logiciel plutt que de le voler. Cest grce aux gens comme vous que nous pouvons continuer crer de formidables outils et les mettre jour . Nous vous en remercions chaleureusement. Manuel dutilisation crit par: Native Instruments Software Synthesis et Len Sasso Traduction : Nicolas Sidi (nicolas.sidi@polytechnique.org) Remerciements spciaux lquipe de bta-testeurs, dont laide nous fut prcieuse non seulement pour trouver et corriger les bogues, mais aussi pour rendre ce produit encore meilleur. Native Instruments Software Synthesis GmbH, 2005. Tous droits rservs. REAKTOR, REAKTOR 5 et REAKTOR CORE sont des marques de Native Instruments Software Synthesis.

Germany Native Instruments GmbH Schlesische Str. 28 D-10997 Berlin Germany info@native-instruments.de www.native-instruments.de

USA Native Instruments USA, Inc. 5631 A Hollywood Boulevard Los Angeles, CA 90028 USA info@native-instruments.com www.native-instruments.com

Table des matires


1. Premiers pas avec Reaktor Core ........................................................... 11 1.1. Quest-ce que Reaktor Core ? ...................................................11 1.2. Utilisation des cellules core .....................................................12 1.3. Utilisation des cellules core dans un exemple rel ......................15 1.4. dition basique des cellules core ..............................................17 2. Pntrer dans lenvironnement Reaktor Core .........................................23 2.1. Cellules core vnement et audio ............................................. 23 2.2. Cration de votre premire cellule core..................................... 25 2.3. Les signaux audio et les signaux de contrle ..............................37 2.5. Utiliser laudio comme signal de contrle...................................51 2.6. Les signaux vnements ......................................................... 53 2.7. Les signaux logiques .............................................................. 57 3. Fondements de Reaktor Core: le modle du signal core ..........................60 3.1. Les valeurs ........................................................................... 60 3.2. Les vnements .................................................................... 60 3.3. vnements simultans ........................................................... 63 3.4. Lordre de traitement .............................................................. 65 3.5. Retour aux cellules core vnements........................................ 66 4. Les structures avec tat interne ...........................................................72 4.1. Les signaux dhorloge ..............................................................72 4.2. Les Object Bus Connections (OBC)........................................... 73 4.3. Initialisation .......................................................................... 77 4.4. Construire un accumulateur dvnements ................................ 79 4.5. Le mlange dvnements .......................................................81 4.6. Laccumulateur dvnements avec reset et initialisation ............. 83 4.7. Rparons le modeleur dvnements ........................................ 89 5. Le traitement de laudio en dtail ..........................................................92 5.1. Les signaux audio ................................................................... 92 5.2. Le bus dhorloge du taux dchantillonnage ............................... 94 5.3. Rinjection dune connexion ................................................... 95 5.4. Rinjection et macros ............................................................ 99 5.5. Les valeurs dnormales .........................................................103 5.6. Les autres mauvais nombres ..................................................108 5.7. Construction dun ltre passe-bas 1 ple ..............................109 6. Le traitement conditionnel .................................................................. 112 6.1. Le routage des vnements....................................................112

REAKTOR CORE III

6.2. Construction dun limiteur de signal ........................................ 115 6.3. Construction dun oscillateur en dents de scie simple ............... 116 7. Les autres types de signaux ................................................................ 118 7.1. Les signaux ottants .............................................................118 7.2. Les signaux entiers ...............................................................120 7.3. Construction dun compteur dvnements ...............................123 7.4. Building a rising edge counter macro .......................................124 8. Les tableaux ...................................................................................... 128 8.1. Introduction aux tableaux ......................................................128 8.2. Construction dun dtecteur de signal audio ............................131 8.3. Construction dun dlai .........................................................138 8.4. Les tables ...........................................................................144 9. Construction de structures optimises ................................................149 9.1. Les Latches et les macros modulation ..................................149 9.2. Routage et mlange ...............................................................150 9.3. Les oprations numriques ....................................................151 9.4. Conversions entre ottants et entiers ......................................152 Annexe A. Interface utilisateur de Reaktor Core ......................................154 A.1. Les cellules core....................................................................154 A.2. Les macros et modules core ..................................................154 A.3. Les ports core......................................................................155 A.4. Modication de la structure core ............................................155 Annexe B. Le concept de Reaktor Core .................................................... 156 B.1. Les signaux et les vnements ...............................................156 B.2. Linitialisation.......................................................................157 B.3. Les connexions OBC .............................................................157 B.4. Le routage ...........................................................................157 B.5. Le latching .......................................................................157 B.6. Les horloges ........................................................................158 Annexe C. Les ports des macros core...................................................... 158 C.1. In .......................................................................................158 C.2. Out .....................................................................................158 C.3. Latch (entre) ......................................................................159 C.4. Latch (sortie) .......................................................................159 C.5. Bool C (entre) ....................................................................159 C.6. Bool C (sortie) .....................................................................159 Annexe D. Les ports des cellules core ..................................................... 160 D.1. In (mode audio)....................................................................160

IV REAKTOR CORE

D.2. Out (mode audio) .................................................................160 D.3. In (mode vnement) ............................................................160 D.4. Out (mode vnement) .........................................................160 Annexe E. Les bus intgrs ..................................................................... 161 E.1. SR.C ...................................................................................161 E.2. SR.R ...................................................................................161 Annexe F. Les modules dusine ................................................................ 161 F.1. Const ...................................................................................161 F.2. Math > + .............................................................................162 F.3. Math > - ..............................................................................162 F.4. Math > * ..............................................................................162 F.5. Math > / ..............................................................................162 F.6. Math > |x| ............................................................................163 F.7. Math > x .............................................................................163 F.8. Math > DN Cancel ................................................................163 F.9. Math > ~log .........................................................................163 F.10. Math > ~exp .......................................................................164 F.11. Bit > Bit AND .....................................................................164 F.12. Bit > Bit OR .......................................................................164 F.13. Bit > Bit XOR .....................................................................164 F.15. Bit > Bit << ........................................................................165 F.16. Bit > Bit >> ........................................................................165 F.17. Flow > Router .....................................................................165 F.18. Flow > Compare ..................................................................166 F.19. Flow > Compare Sign ...........................................................166 F.20. Flow > ES Ctl .....................................................................167 F.21. Flow > ~BoolCtl ..................................................................167 F.22. Flow > Merge .....................................................................167 F.23. Flow > EvtMerge .................................................................167 F.24. Memory > Read ..................................................................168 F.25. Memory > Write ..................................................................168 F.26. Memory > R/W Order ..........................................................168 F.27. Memory > Array ..................................................................169 F.28. Memory > Size [ ] ...............................................................169 F.29. Memory > Index .................................................................169 F.30. Memory > Table ..................................................................170 F.31. Macro ................................................................................170 Annexe G. Les macros expertes .............................................................. 171 G.1. Clipping > Clip Max / IClip Max ..............................................171

REAKTOR CORE V

G.2. Clipping > Clip Min / IClip Min ...............................................171 G.3. Clipping > Clip MinMax / IClipMinMax ....................................171 G.4. Math > 1 div x .....................................................................171 G.5. Math > 1 wrap .....................................................................171 G.6. Math > Imod .......................................................................172 G.7. Math > Max / IMax ...............................................................172 G.8. Math > Min / IMin ................................................................172 G.9. Math > round.......................................................................172 G.10. Math > sign +- ...................................................................172 G.11. Math > sqrt (>0) ................................................................173 G.13. Math > x(>0)^y .................................................................173 G.14. Math > x^2 / x^3 / x^4 .......................................................173 G.15. Math > Chain Add / Chain Mult ............................................173 G.16. Math > Trig-Hyp > 2 pi wrap ................................................173 G.17. Math > Trig-Hyp > arcsin / arccos / arctan ............................. 174 G.18. Math > Trig-Hyp > sin / cos / tan .......................................... 174 G.19. Math > Trig-Hyp > sin pi..pi / cos pi..pi / tan pi..pi ............ 174 G.20. Math > Trig-Hyp > tan pi4..pi4 .......................................... 174 G.21. Math > Trig-Hyp > sinh / cosh / tanh .................................... 174 G.22. Memory > Latch / ILatch..................................................... 174 G.23. Memory > z^-1 / z^-1 ndc ...................................................175 G.24. Memory > Read [] ..............................................................175 G.25. Memory > Write [] ..............................................................175 G.26. Modulation > x + a / Integer > Ix + a ....................................176 G.27. Modulation > x * a / Integer > Ix * a .....................................176 G.28. Modulation > x a / Integer > Ix a .....................................176 G.29. Modulation > a x / Integer > Ia x .....................................176 G.30. Modulation > x / a ..............................................................176 G.31. Modulation > a / x ..............................................................177 G.32. Modulation > xa + y............................................................177 Annexe H. Les macros standard .............................................................. 177 H.1. Audio Mix-Amp > Amount .....................................................177 H.2. Audio Mix-Amp > Amp Mod ..................................................177 H.3. Audio Mix-Amp > Audio Mix ..................................................178 H.4. Audio Mix-Amp > Audio Relay ...............................................178 H.5. Audio Mix-Amp > Chain (amount) ..........................................178 H.6. Audio Mix-Amp > Chain (dB) .................................................179 H.7. Audio Mix-Amp > Gain (dB) ...................................................179 H.8. Audio Mix-Amp > Invert ........................................................179 H.9. Audio Mix-Amp > Mixer 2 4 ..............................................179

VI REAKTOR CORE

H.10. H.11. H.13. H.14. H.15. H.16. H.17. H.18. H.19. H.20. H.21. H.22. H.23. H.24. H.25. H.26. H.27. H.28. H.29. H.30. H.31. H.32. H.33. H.34. H.35. H.36. H.37. H.38. H.39. H.40. H.41. H.42. H.43. H.44. H.45. H.46. H.47. H.48. H.49. H.50.

Audio Mix-Amp > Pan ........................................................ 180 Audio Mix-Amp > Ring-Amp Mod ........................................ 180 Audio Mix-Amp > Stereo Mixer 2 4 ..................................181 Audio Mix-Amp > VCA .........................................................181 Audio Mix-Amp > XFade (lin) ...............................................181 Audio Mix-Amp > XFade (par) ..............................................182 Audio Shaper > 1+2+3 Shaper .............................................182 Audio Shaper > 3-1-2 Shaper ..............................................182 Audio Shaper > Broken Par Sat ........................................... 183 Audio Shaper > Hyperbol Sat ............................................. 183 Audio Shaper > Parabol Sat ............................................... 183 Audio Shaper > Sine Shaper 4 / 8 ....................................... 184 Control > Ctl Amount ........................................................ 184 Control > Ctl Amp Mod ...................................................... 184 Control > Ctl Bi2Uni .......................................................... 184 Control > Ctl Chain ............................................................185 Control > Ctl Invert .............................................................185 Control > Ctl Mix ...............................................................185 Control > Ctl Mixer 2 ..........................................................185 Control > Ctl Pan .............................................................. 186 Control > Ctl Relay ............................................................ 186 Control > Ctl XFade ........................................................... 186 Control > Par Ctl Shaper .................................................... 186 Convert > dB2AF ...............................................................187 Convert > dP2FF ...............................................................187 Convert > logT2sec ............................................................187 Convert > ms2Hz ...............................................................187 Convert > ms2sec ............................................................. 188 Convert > P2F .................................................................. 188 Convert > sec2Hz ............................................................. 188 Delay > 2 / 4 Tap Delay 4p ................................................. 188 Delay > Delay 1p / 2p / 4p ................................................. 188 Delay > Diff Delay 1p / 2p / 4p ............................................189 Envelope > ADSR ..............................................................189 Envelope > Env Follower .....................................................190 Envelope > Peak Detector ...................................................190 EQ > 6dB LP/HP EQ ...........................................................190 EQ > 6dB LowShelf EQ ......................................................191 EQ > 6dB HighShelf EQ ......................................................191 EQ > Peak EQ ...................................................................191

REAKTOR CORE VII

H.51. H.52. H.53. H.54. H.55. H.56. H.57. H.58. H.59. H.60. H.61. H.62. H.63. H.64. H.65. H.66. H.67. H.68. H.69. H.70. H.71. H.72. H.74. H.75. H.76. H.77. H.78. H.79. H.80. H.81. H.82. H.83. H.84. H.85. H.86. H.87. H.88. H.89. H.90. H.91.

EQ > Static Filter > 1-pole static HP ....................................191 EQ > Static Filter > 1-pole static HS ....................................192 EQ > Static Filter > 1-pole static LP .....................................192 EQ > Static Filter > 1-pole static LS .....................................192 EQ > Static Filter > 2-pole static AP ....................................192 EQ > Static Filter > 2-pole static BP ....................................192 EQ > Static Filter > 2-pole static BP1 ...................................193 EQ > Static Filter > 2-pole static HP ....................................193 EQ > Static Filter > 2-pole static HS ....................................193 EQ > Static Filter > 2-pole static LP.....................................193 EQ > Static Filter > 2-pole static LS .....................................194 EQ > Static Filter > 2-pole static N ......................................194 EQ > Static Filter > 2-pole static Pk .....................................194 EQ > Static Filter > Integrator .............................................194 Event Processing > Accumulator ..........................................195 Event Processing > Clk Div ..................................................195 Event Processing > Clk Gen .................................................195 Event Processing > Clk Rate ................................................195 Event Processing > Counter .................................................196 Event Processing > Ctl2Gate ...............................................196 Event Processing > Dup Flt / IDup Flt ...................................196 Event Processing > Impulse .................................................196 Event Processing > Separator / ISeparator .............................197 Event Processing > Thld Crossing .........................................197 Event Processing > Value / IValue .........................................197 LFO > MultiWave LFO .........................................................197 LFO > Par LFO ..................................................................198 LFO > Random LFO ............................................................198 LFO > Rect LFO ................................................................198 LFO > Saw(down) LFO ........................................................198 LFO > Saw(up) LFO ...........................................................199 LFO > Sine LFO .................................................................199 LFO > Tri LFO ...................................................................199 Logic > AND .....................................................................199 Logic > Flip Flop............................................................... 200 Logic > Gate2L ................................................................. 200 Logic > GT / IGT ............................................................... 200 Logic > EQ ....................................................................... 200 Logic > GE ....................................................................... 200 Logic > L2Clock ................................................................ 200

VIII REAKTOR CORE

H.92. Logic > L2Gate ..................................................................201 H.94. Logic > OR ........................................................................201 H.95. Logic > XOR ......................................................................201 H.97. Oscillators > 4-Wave Mst .................................................... 202 H.98. Oscillators > 4-Wave Slv .................................................... 202 H.99. Oscillators > Binary Noise .................................................. 202 H.100. Oscillators > Digital Noise ................................................ 203 H.101. Oscillators > FM Op ......................................................... 203 H.102. Oscillators > Formant Osc ................................................ 203 H.103. Oscillators > MultiWave Osc.............................................. 203 H.104. Oscillators > Par Osc ....................................................... 204 H.105. Oscillators > Quad Osc ..................................................... 204 H.106. Oscillators > Sin Osc ....................................................... 204 H.107. Oscillators > Sub Osc 4 .................................................... 204 H.108. VCF > 2 Pole SV ............................................................. 204 H.109. VCF > 2 Pole SV C .......................................................... 205 H.110. VCF > 2 Pole SV (x3) S .................................................... 205 H.111. VCF > 2 Pole SV T (S) ...................................................... 205 H.112. VCF > Diode Ladder ......................................................... 206 H.113. VCF > D/T Ladder ........................................................... 206 H.114. VCF > Ladder x3 ............................................................. 206 Annexe I. Core cell library ......................................................................208 I.1. Audio Shaper > 3-1-2 Shaper ................................................. 208 I.2. Audio Shaper > Broken Par Sat .............................................. 208 I.3. Audio Shaper > Hyperbol Sat................................................. 208 I.4. Audio Shaper > Parabol Sat................................................... 209 I.5. Audio Shaper > Sine Shaper 4/8 ............................................ 209 I.6. Control > ADSR ................................................................... 209 I.7. Control > Env Follower............................................................210 I.8. Control > Flip Flop ................................................................210 I.9. Control > MultiWave LFO ........................................................211 I.10. Control > Par Ctl Shaper.......................................................211 I.11. Control > Schmitt Trigger ......................................................211 I.12. Control > Sine LFO ..............................................................212 I.13. Delay > 2/4 Tap Delay 4p .....................................................212 I.14. Delay > Delay 4p .................................................................212 I.15. Delay > Diff Delay 4p ...........................................................212 I.16. EQ > 6dB LP/HP EQ ............................................................213 I.17. EQ > HighShelf EQ ...............................................................213 I.18. EQ > LowShelf EQ ...............................................................213

REAKTOR CORE IX

I.19. I.20. I.21. I.22. I.23. I.24. I.25. I.26. I.27. I.28. I.29. I.30. I.31. I.32. I.33. I.34. I.35. I.36. I.37. I.38. I.39. I.40. I.41. I.42. I.43. I.44. I.45. I.46. I.47.

EQ > Peak EQ .....................................................................213 EQ > Static Filter > 1-pole static HP .....................................214 EQ > Static Filter > 1-pole static HS ......................................214 EQ > Static Filter > 1-pole static LP ......................................214 EQ > Static Filter > 1-pole static LS ......................................214 EQ > Static Filter > 2-pole static AP ......................................215 EQ > Static Filter > 2-pole static BP......................................215 EQ > Static Filter > 2-pole static BP1 ....................................215 EQ > Static Filter > 2-pole static HP ......................................215 EQ > Static Filter > 2-pole static HS .....................................216 EQ > Static Filter > 2-pole static LP ......................................216 EQ > Static Filter > 2-pole static LS ......................................216 EQ > Static Filter > 2-pole static N........................................216 EQ > Static Filter > 2-pole static Pk ......................................217 Oscillator > 4-Wave Mst .......................................................217 Oscillator > 4-Wave Slv ........................................................217 Oscillator > Digital Noise ......................................................218 Oscillator > FM Op ..............................................................218 Oscillator > Formant Osc ......................................................218 Oscillator > Impulse ............................................................219 Oscillator > MultiWave Osc ...................................................219 Oscillator > Quad Osc ..........................................................219 Oscillator > Sub Osc ........................................................... 220 VCF > 2 Pole SV C ............................................................. 220 VCF > 2 Pole SV T.............................................................. 220 VCF > 2 Pole SV x3 S ..........................................................221 VCF > Diode Ladder ............................................................221 VCF > D/T Ladder .............................................................. 222 VCF > Ladder x3................................................................. 222

Index ......................................................................................................223

X REAKTOR CORE

1. Premiers pas avec Reaktor Core


1.1. Quest-ce que Reaktor Core ?
Reaktor Core Reaktor Core est une nouvelle couche logicielle de fonctionnalits de Reaktor avec un nouvel ensemble de fonctions. Comme il y a dj un ancien niveau de fonctionnalits, partir de maintenant nous appellerons ces deux niveaux respectivement niveau core (noyau en anglais) et niveau primaire. De plus, lorsque nous parlerons de structure de niveau primaire, nous entendrons par l la structure interne dun instrument ou dune macro, mais pas celle dun ensemble. Les fonctions de Reaktor Core ne sont pas directement compatibles avec celles du niveau primaire de Reaktor, une interface est ncessaire entre les deux. Cette interface est constitue par les cellules core. Les cellules core se situent dans les structures du niveau primaire, ressemblant et se comportant de faon similaire aux autres modules du niveau primaire. Voici un exemple de structure, utilisant une cellule core HighShelf EQ, qui est diffrente de la version habituelle du niveau primaire dans sa faon de rpondre aux contrles de frquence et damplication:

lintrieur des cellules core se trouvent des structures Reaktor Core, qui constituent un moyen efcace dimplmenter des fonctionnalits personnalises de traitement du signal (ou DSP) de bas niveau, et permettent aussi de construire des structures de traitement du signal plus grande chelle partir de ces mmes fonctionnalits. Ces structures seront tudies plus loin dans le texte. Bien que lune des principales caractristiques de Reaktor Core soit de pouvoir construire ces structures de DSP de bas niveau, elles ne se limitent pas cela. Si vous ntes pas un expert en traitement du signal, nous vous avons facilit le travail en crant une librairie de modules que vous pouvez connecter dans les structures core de la mme faon quau niveau primaire, et une librairie

REAKTOR CORE 11

de cellules core que vous pouvez immdiatement utiliser dans les structures du niveau primaire. dire vrai, chez Native Instruments, nous navons plus vraiment envie de crer des milliers de nouveaux modules de niveau primaire pour les nouvelles versions de Reaktor. Nous prfrons les construire en utilisant notre nouvelle technologie Reaktor Core et les livrer sous forme de cellules core. Vous trouverez dj un ensemble de nouveaux ltres, enveloppes, effets, etc., dans la librairie de cellules core.

1.2. Utilisation des cellules core


La librairie de cellules core est accessible depuis les structures du niveau primaire via un clic droit sur le fond de lcran, puis en choisissant le sousmenu Core Cell:

Comme vous pouvez le voir, diffrents types de cellules core peuvent tre utiliss comme des modules classiques de niveau primaire. Une limitation importante des cellules core est que vous ne pouvez pas les utiliser lintrieur des boucles dvnements. Toute boucle dvnement traversant une cellule core sera boque par Reaktor. Vous avez aussi la possibilit dinsrer des cellules core qui ne sont pas dans la librairie. Pour ce faire, utilisez la commande Load du mme menu Core Cell:

12 REAKTOR CORE

Avant de pouvoir charger des chiers de cellules core, il vous sauvegarder ces cellules core. Voici comment faire: effectuez un clic droit sur une cellule core et slectionnez Save Core Cell As:

Vous pouvez galement placer vos propres cellules core dans le menu pour viter dutiliser la commande Load. Pour ce faire, placez-les dans le sousdossier Core Cells de votre dossier utilisateur. Encore mieux: mettez-les non pas directement dans le dossier Core Cells mais dans des sous-dossiers de votre cr. Voici un exemple de ce type dorganisation:

REAKTOR CORE 13

Dans cet exemple, My Documents\Reaktor 5 est le dossier utilisateur. Sur votre ordinateur, il peut porter un autre nom, en fonction du choix que vous avez effectu lors de linstallation ou dans les prfrences de Reaktor. Le dossier Core Cells se trouve dans ce dossier. Sil nexiste pas, crez-le manuellement. Dans ce dossier, nous en observons trois autres: Effects, Filters et Oscillators. lintrieur de ces dossiers se trouvent les chiers des cellules core qui seront afches dans la partie utilisateur du menu Core Cell:

14 REAKTOR CORE

Le contenu du menu est scann lors du dmarrage de Reaktor. Si vous ajoutez de nouveaux chiers dans ces dossiers, vous devez redmarrer Reaktor pour quil les prenne en compte. Les dossiers vides ne sont pas afchs dans le menu, ils doivent contenir des chiers pour tre afchs. Vous ne devez en aucun cas placer vos propres chiers dans la librairie systme. Le dossier de la librairie systme peut tre modi voire compltement effac lors des mises jour, et vos chiers seraient alors perdus! La librairie utilisateur (en anglais user library) est lendroit indiqu pour placer tout chier non inclus dans lapplication elle-mme.

1.3. Utilisation des cellules core dans un exemple rel


Nous allons prendre ici un instrument Reaktor construit uniquement avec des modules de niveau primaire et nous allons le modier en y plaant quelques cellules core. Dans le dossier Core Tutorial Examples du dossier dinstallation de Reaktor, trouvez lensemble One Osc.ens et ouvrez-le. Cet ensemble est constitu dun seul instrument ayant la structure interne suivante:

Comme vous pouvez le constater, il sagit dun synthtiseur soustractif trs simple dot dun oscillateur, dun ltre et dune enveloppe. Nous allons remplacer loscillateur par un autre, plus puissant. Faites un clic droit sur le fond et slectionnez Core Cell > Oscillator > MultiWave Osc:

REAKTOR CORE 15

La caractristique la plus importante de cet oscillateur est quil fournit simultanment plusieurs formes dondes analogues cales en phase. Nous souhaitons utiliser leur mlange en lieu et place dun simple oscillateur en dents de scie. Fort heureusement, il existe dj un mixeur accessible via Insert Macro > Classic Modular > 02 Mixer Amp > Mixer Simple Mono:

Connectons maintenant ensemble le mixeur et loscillateur et remplaons loscillateur en dents de scie par leur combinaison:

Passez en vue panel. Vous pouvez maintenant utiliser les quatre potentiomtres du mixeur pour modier le mlange des formes donde. Modions encore linstrument: ajoutons-lui un effet de chorus bas sur Reaktor Core. Nous crivons bas sur Reaktor Core parce que, mme si le chorus lui-mme est construit en tant que cellule core, la partie contenant les contrles du panneau de ce chorus est encore construite avec les fonctions du niveau primaire. Ceci est d au fait que les structures Reaktor Core ne peuvent pas dnir leurs propres panneaux de contrles: ces panneaux doivent tre construits au niveau primaire. 16 REAKTOR CORE

Slectionnez Insert Macro > RX Based > Chorus > SE IV S et insrez-le aprs le module Voice Combiner:

Si vous jetez un il lintrieur du chorus, vous verrez la cellule core du chorus et les contrles du panneau:

1.4. dition basique des cellules core


Penchons-nous maintenant sur ldition des cellules core. Nous allons commencer avec quelque chose de simple, comme la modication dune cellule core existante pour ladapter vos besoins. Tout dabord, double-cliquez sur le MultiWave Osc pour pntrer lintrieur:

Entres

Normal

Sorties

REAKTOR CORE 17

Ce que vous voyez maintenant est une structure Reaktor Core. Les trois zones spares par des lignes verticales dlimitent trois types de modules: les modules dentre ( gauche), les modules de sortie ( droite) et les modules normaux (au centre). Les entres et les sorties peuvent tre dplaces uniquement verticalement, et leur ordre correspond lordre dans lequel elles apparaissent lextrieur de la structure. Les modules normaux (au centre donc) peuvent tre dplacs dans nimporte quelle direction. Par exemple, placez lentre FM sous lentre PW:

Vous pouvez maintenant double-cliquer sur le fond pour remonter la structure extrieure du niveau primaire et observer la modication de lordre des ports dentre.

Revenons au niveau core et noublions pas de remettre les ports dentre dans lordre originel:

Comme vous lavez probablement dj remarqu, si vous dplacez les modules, les trois parties de la structure core peuvent sagrandir an de toujours englober tous les modules. Cependant, elles ne se rduisent pas automatiquement, ce qui peut les conduire devenir beaucoup, beaucoup trop larges:

18 REAKTOR CORE

Vous pouvez les rduire via un clic droit sur le fond et en slectionnant la commande Compact Board:

Maintenant que nous savons dplacer les composants dune cellule core, et mme rarranger lordre de ses ports dentre et de sortie, essayons-nous quelques autres manipulations. Pour une cellule core qui dispose de sorties audio, il est possible de commuter le type de ses entres entre audio et vnement (vous trouverez une explication dtaille de leur diffrence plus loin dans le texte). Dans lexemple ci-dessus, nous avons utilis un module MulitWave Osc qui dispose dentres et de sorties audio. Mais dans notre cas, nous navons pas vraiment besoin dentres audio, puisque le seul lment connect loscillateur est le potentiomtre de pitch (hauteur tonale). Ne serait-il pas plus conomique (en ressources REAKTOR CORE 19

processeur) dutiliser au moins partiellement des vnements ? La rponse est videmment Oui !, aussi allons-nous le faire de ce pas. Nous vous suggrons de changer au moins les entres P et PM pour les passer en mode vnement. Cela devrait permettre la plus grande conomie en puissance processeur. Double-cliquez sur le module dentre P pour ouvrir sa fentre de proprits: Double-cliquez ici

Ouvrez la page de fonction de la fentre de proprits (si ncessaire en cliquant sur le bouton ). Vous devriez maintenant voir safcher la proprit de mode de signal (Signal Mode):

Rglez-la sur event (vnement en anglais). Remarquez comment le gros point gauche du module dentre passe du noir au rouge pour indiquer que lentre est dsormais en mode vnement (cest plus visible lorsque le module nest pas slectionn, cliquez quelque part ailleurs pour le dslectionner): Le bouton devient rouge Cliquez maintenant sur lentre PM et passez-la aussi en mode vnement. Si vous le souhaitez, vous pouvez aussi passer les deux entres restantes en mode vnement. Aprs avoir ni, double-cliquez sur le fond de la structure 20 REAKTOR CORE

pour revenir au niveau primaire et observez la nouvelle couleur rouge des ports et lutilisation diminue du processeur.

Il est parfois absurde de commuter un port dun type lautre. Par exemple, une entre recevant vritablement un signal audio (contenant un vrai son, pas simplement un signal de contrle tel quune enveloppe cale sur le son) ne doit pas tre commute en mode vnement. Non seulement cest absurde, mais de plus cela risque de ruiner le fonctionnement du module. Un autre cas absurde: lorsque vous avez une entre de type vnement vraiment sensible aux vnements, p.ex. une entre de contrle sur une enveloppe (comme les entres Gate des enveloppes du niveau primaire de Reaktor). Si vous essayez de les passer en mode audio, elles ne fonctionneront plus correctement. Paralllement aux cas o il est vident que la commutation du type de port est absurde, il peut y avoir des cas dans lesquels elle est autorise mais les modules refusent alors de fonctionner. Cependant, ces cas sont normalement trs rares, ou bien cest quune une erreur sest glisse dans limplmentation du module. Gnralement, la commutation du type de port fonctionne. Nous vous proposons la rgle de commutation suivante: Dans une cellule core bien conue, une entre de contrle audio peut tre commute en vnement sans aucun problme. Une entre de type vnement peut tre commute en audio seulement si elle na pas de fonction de commande. Pour conomiser du processeur, vous pouvez aussi dconnecter les sorties audio dont vous navez pas besoin, dsactivant ainsi les parties inutilises de la structure Reaktor Core. Vous devez effectuer cette opration depuis lintrieur de la structure lextrieur, les connexions nont pas deffet sur la dsactivation des lments de la structure core. Dans notre exemple, dcidons que nous navons pas besoin des quatre sorties mais seulement de la dent de scie et du train dimpulsions. Nous pouvons aller dans dans le MultiWace Osc et dconnecter les sorties inutiles. La dconnexion est une opration trs simple: il suft de cliquer sur le port dentre REAKTOR CORE 21

de la connexion, de dplacer la souris nimporte o sauf sur un port de sortie et de relcher le bouton. Commenons avec la sortie Tri (pour triangle). Cliquez sur le port de la sortie Tri et dplacez la souris sur un endroit vide du fond de lcran.

Il y a un autre moyen de supprimer une connexion. Cliquez sur la connexion entre la sortie sine du MultiWave Osc et la sortie Sin de la cellule core, de faon la slectionner (elle change de couleur):

Vous pouvez maintenant appuyer sur la touche Suppr de votre clavier pour supprimer la connexion:

Aprs avoir supprim les deux cbles, lindicateur dutilisation du processeur devrait descendre encore un peu. Et si vous changez davis et dcidez de les reconnecter ? Cest tout aussi simple: cliquez sur lentre ou la sortie que vous souhaitez reconnecter, dplacez la souris sur le port oppos de la connexion et relchez le bouton. Par exemple, cliquez sur la sortie tri du MultiWave Osc et dplacez la souris jusquau module de sortie Tri. La connexion est rtablie:

22 REAKTOR CORE

Bien sr, les possiblits de modication des cellules core sont bien plus tendues que ce que nous venons de dcrire. Vous en apprendrez beaucoup plus en continuant votre lecture.

2. Pntrer dans lenvironnement Reaktor Core


2.1. Cellules core vnement et audio
Les cellules core existent en deux parfums: vnement et Audio (en anglais Event et Audio). Les cellules core vnements ne peuvent recevoir en entre que des signaux vnements du niveau primaire, et ne produisent en sortie que des signaux vnements du niveau primaire, en rponse aux premiers. Les cellules core audio peuvent recevoir en entre des signaux vnements et audio, mais ne produisent en sortie que des signaux audio: Parfum vnement Audio Entres Sorties Sources dHorloge Dsactives Actives

vnements vnements vnements/ Audio Audio

Ainsi, les cellules audio permettent dimplmenter oscillateurs, ltres, enveloppes et autres effets, tandis que les cellules vnements ne servent quaux tches de traitement des vnements. Les modules HighShelf EQ et MultiWave Osc que nous avons dj vus sont des exemples de cellules core audio (elles ont des sorties audio).

REAKTOR CORE 23

Et voici un exemple de cellule core vnement:

Ce module est un modeleur parabolique (en anglais parabolic shaper) pour les signaux de contrle; il peut par exemple tre utilis pour le modelage de courbes de vlocit ou de signaux de LFO. Nous avons crit ci-dessus que les cellules core vnements ne servent quaux tches de traitement des vnements. Les sources dhorloge de ces cellules tant dsactives dans ces cellules (cf. tableau ci-dessus), elles ne peuvent gnrer leurs propres vnements et ne peuvent donc servir implmenter des modules comme des enveloppes ou des LFOs cals sur des vnements. Si vous souhaitez implmenter de tels modules, nous vous suggrons de prendre une cellule audio et de convertir sa sortie en vnements grce lun des convertisseurs audio-vnement du niveau primaire:

La structure ci-dessus utilise dabord une cellule core audio implmentant une enveloppe ADSR, puis convertit sa sortie sous forme dvnements pour moduler un oscillateur.

24 REAKTOR CORE

2.2. Cration de votre premire cellule core


Pour crer une nouvelle cellule core, faites un clic droit sur le fond de lcran dans la structure du niveau primaire et slectionnez Core Cell > New Audio ou (pour les cellules vnements) Core Cell > New Event:

Nous allons construire une nouvelle cellule core partir du modle inclus dans le module One Osc.ens que vous avez dj manipul. Nous utiliserons la nouvelle version de cet ensemble (avec le nouvel oscillateur et le chorus) que nous avons construite prcdemment, mais si vous ne lavez pas sauvegarde, ne vous en faites pas, vous pouvez faire la mme chose partir du One Osc.ens original. Comme vous pouvez le constater dans cet ensemble, nous modulons lentre P du ltre, qui naccepte que des signaux vnements. Nous nutilisons pas la version FM du mme ltre car dune part elle se comporte moins bien aux frquences de coupure leves, et dautre part lchelle de modulation de lentre FM est linaire, ce qui donne gnralement de moins bons rsultats musicaux pour une modulation par enveloppe (ce que lon appelle habituellement mais incorrectement les enveloppes lentes):

REAKTOR CORE 25

Comme nous voulons moduler une entre vnement, nous avons besoin de convertir lenveloppe en signal vnement, ce qui est accompli par le convertisseur A/E. La vitesse de contrle en rsultant est relativement basse. Bien entendu, nous aurions pu utiliser un convertisseur fonctionnant une vitesse plus leve (et consommant plus de puissance processeur), mais au lieu de cela nous allons remplacer ce ltre par un autre que nous construirons sous forme de cellule core. Nous aurions pu aussi en prendre un directement dans la librairie existante de cellules core, mais nous naurions pas le bonheur de fabriquer notre premire structure Reaktor Core. Empruntons donc un chemin plus ardu. Commenons par crer une nouvelle cellule core audio en slectionnant Core Cell > New Audio. Une cellule core audio vide apparat:

Double-cliquez dessus pour faire apparatre sa structure Reaktor Core interne, qui est vide. Vous vous en rappelez srement, les trois zones sont (de gauche droite) les entres, les modules normaux et les sorties:

Attention, nous allons maintenant insrer notre premier module dans une structure core! Effectuez un clic droit dans la zone normale (au centre donc) pour appeler le menu de cration de modules: 26 REAKTOR CORE

Le premier sous-menu est nomm Built In Module et permet daccder aux modules dusine inclus dans Reaktor Core, qui sont gnralement conus pour effectuer des tches de trs bas niveau, et dont nous discuterons plus loin. Le second sous-menu, appel Expert Macro, contient les macros prvues pour tre utilises avec les modules de base pour les oprations de bas niveau. Donc oublions-les aussi pour linstant. Le troisime sous-menu sappelle Standard Macro et semble tre celui quil nous faut:

REAKTOR CORE 27

La section VCF pourrait bien tre la bonne, jetons-y un il:

Peut-tre pourrions-nous utiliser le module Diode Ladder (chelle de diodes) ? Allons-y:

En fait, ce nest peut-tre pas la meilleure ide, car le son du Diode Ladder doit tre vraiment diffrent de celui du module ltre de niveau primaire que nous voulons remplacer. Lchelle de diodes est un ltre avec au minimum 4 ples (24 dB/octave) et celui que nous voulons remplacer a seulement 2 ples (12 dB/octave). Supprimons donc ce Diode Ladder. Pour ce faire, vous avez deux options. La premire est de faire un clic droit sur le module puis de choisir Delete Module:

28 REAKTOR CORE

La seconde est de le slectionner en cliquant dessus, puis dappuyer simplement sur la touche Suppr. Aprs avoir supprim le Diode Ladder, insrons la place un ltre 2 Pole SV C depuis le mme menu:

Celui-ci est bien un ltre 2 ples variables dtat, semblable celui que nous voulons remplacer (avec quelques diffrences tout de mme, mais assez subtiles). Limportant est que nous puissions moduler celui-ci avec de laudio. Nous aurons bien sr aussi besoin dentres et de sorties pour notre cellule core. Pour tre exact, nous aurons probablement besoin dune seule sortie: le signal LP (passe-bas). Pour crer cette sortie, effectuez un clic droit dans la zone de sortie ( droite):

REAKTOR CORE 29

Dans cette zone, vous ne pouvez crer quun type de module, donc slectionnez-le. La structure ressemble maintenant ceci:

Double-cliquez sur le module de sortie pour ouvrir la fentre de proprits (si elle nest pas dj ouverte). Saisissez LP dans le champ de nom (Label sur lcran):

Connectez maintenant la sortie LP du ltre au module de sortie:

Passons aux entres. La premire entre sera le signal audio dentre. Faites un clic droit sur le fond de lcran dans la zone dentre et slectionnez New > In: 30 REAKTOR CORE

Lentre est automatiquement cre avec le bon mode comme vous lindique le gros point noir, il sagit dune entre audio. Vous pouvez la renommer In de la mme faon que pour le module LP, puis la connecter la premire entre du module ltre:

Pour la deuxime entre du module ltre Reaktor Core, les choses se corsent. Comme vous pouvez le voir, cette entre est nomme F, pour frquence. Si vous maintenez le bouton de la souris enfonc sur cette entre (assurezvous que le bouton est activ), vous voyez apparatre le texte dinfo Cutoff frequency (Hz) (Frquence de coupure (Hz)):

Nous savons que la frquence de coupure de notre module ltre du niveau primaire est contrle par une entre appele P et utilise une chelle de demi-tons, comme vous pouvez lobserver dans le texte dinfo de lentre.

Visiblement, nous avons besoin de convertir les demi-tons en Hertz. Nous pouvons le faire au niveau primaire (avec le module Expon. (F)) ou bien lintrieur de notre structure Reaktor Core. Comme nous sommes en train dapprendre construire une structure Reaktor Core, choisissons la deuxime option. Effectuez un clic droit sur le fond de la zone normale (au cent) et slectionnez Standard Macro > Convert > P2F: REAKTOR CORE 31

Comme son nom lindique (et comme le texte dinfo le conrme), ce module convertit une chelle P en chelle F exactement ce dont nous avons besoin! Crons donc une deuxime entre nomme P et connectons-la via le module P2F:

Tout cela devrait tre sufsant. Mais, dans notre instrument, il reste le potentiomtre P Cutoff, dnissant la frquence de coupure de base du ltre qui est ajoute au signal de modulation venant de lenveloppe. Ce signal est converti en signal vnement au niveau primaire pour pouvoir alimenter lentre P du ltre. Cette conversion nest videmment plus ncessaire, nous pouvons retirer le module A/E et brancher directement le signal audio dans lentre audio P de notre nouveau ltre. Cette mthode est loin de nous dplaire, mais nous vous en suggrons une autre pour la beaut du geste. Nous allons partir dune entre P en mode vnement et une entre de modulation en mode audio. Si vous vous rappelez de notre discussion propos des enveloppes lentes, vous comprendrez pourquoi nous suggrons dappeler cet autre module dentre PM, et non FM, et dutiliser une modulation en demi-tons (le P vient de Pitch, hauteur tonale en anglais). Cest exactement ce qui se passe dans linstrument original: nous additionnions le signal denveloppe avec le signal P Cutoff et branchions la somme dans lentre P. Passons donc notre entre P en mode nvement (nous avons dj dcrit plus haut comment faire) et ajoutons une entre PM en mode audio:

Comme un utilisateur du niveau primaire de Reaktor pourrait sy attendre, nous devrions pouvoir additonner les deux signaux tout de suite. Mais dans 32 REAKTOR CORE

Reaktor Core, le module Add est considr comme un module de bas niveau et suppose quelque connaissance des principes fondamentaux de fonctionnement du bas niveau de Reaktor Core. Ils ne sont pas si compliqus que cela, et nous les dcrirons. Mais ce stade, ils ne feraient que vous encombrer lesprit. Utilisez plutt un mixeur de signaux de contrle, par exemple Standard Macro > Control > Ctl Mix:

La dernire entre dont nous avons besoin est la rsonance. Sa forme audio ne nous est daucune utilit, utilisons donc un vnement:

Il nous reste donner un nom notre cellule core. Pour accder ses proprits, cliquez sur le fond si la fentre Properties est dj ouverte, sinon faites un clic droit sur le fond et choisissez la commande Owner Properties:

REAKTOR CORE 33

Vous pouvez alors saisir un texte dans le champ de nom (Label):

Double-cliquez sur le fond pour voir le rsultat:

Le module a re allure! On pourrait objecter que lentre du signal audio est en haut de la cellule core, alors quelle tait en bas du module ltre du niveau primaire. Honntement, ce nest pas un gros problme; si vous tenez absolument arranger cela, ce nest pas trs compliqu, vous savez dj comment faire. Mais faisons-le ensemble, nous en proterons pour vous montrer en chemin une nouvelle fonction. Retournons donc lintrieur de la structure core et commenons par dplacer lentre du signal audio tout en bas:

Cela suft, si ce nest que maintenant un cble diagonal traverse toute la structure, ce qui nest pas trs seyant. Voil comment nous allons rsoudre ce problme. 34 REAKTOR CORE

Effectuez un clic droit sur la sortie du module dentre In et slectionnez la commande Connect to New QuickBus:

Vous devriez maintenant voir ceci:

La fentre Properties devrait galement afcher les proprits du QuickBus que vous venez de crer. La proprit la plus utile du QuickBus est bien sr de pouvoir le renommer (les autres proprits sont assez avances, laissonsles tranquilles pour linstant). Vous pourrez rouvrir la fentre Properties plus tard en double-cliquant sur le QuickBus. Bien que vous puissiez renommer ce QuickBus, nous pensons que son nom actuel est parfaitement appropri, puisquil correspond au nom de lentre qui lui est connecte. Les QuickBus sont internes la structure en question, il ny a donc pas de risque de collisions de noms si des QuickBus des structures voisines ou parentes portent le mme nom. tape suivante: effectuer un clic droit sur lentre du haut du module ltre 2 Pole SV C et de slectionner Connect to QuickBus > In:

REAKTOR CORE 35

Dans le menu ci-dessus, In nest rien dautre que le nom du QuickBus auquel vous vous connectez. Ici, vous ne souhaitez pas crer de nouveau QuickBus, mais connecter lentre en question au QuickBus dj existant. Voil quoi votre structure doit ressembler:

la place du cble diagonal hideux, nous avons maintenant deux jolies rfrences indiquant quelles sont connectes via un QuickBus nomm In. Revenons au niveau primaire et modions notre structure pour utiliser le ltre que nous venons de construire. Vous pouvez vous dbarrasser des modules Add et A/E. Et voil le rsultat:

Notre nouvelle structure utilise un peu plus de puissance processeur, nest-ce pas ? Noubliez pas que ce ltre est modul par un signal audio en chelle de demi-tons. Sil ne vous plat pas, vous pouvez revenir lancienne structure ou utiliser le module ltre Multi 2 pole FM du niveau primaire (les enveloppes lentes, vous vous rappelez ?), mais nous esprons quil vous plat. Dans le cas contraire, il y a plein dautres ltres avec de nouvelles fonctions qui vous plairont peut-tre plus. Et si vous naimez pas les nouveaux ltres Reaktor Core, il y a une foule dautres modules Reaktor Core que vous pouvez essayer.

36 REAKTOR CORE

2.3. Les signaux audio et les signaux de contrle


Avant de poursuivre, nous devons regarder dun peu plus prs une convention particulire utilise dans les Standard Macros de la librairie Reaktor Core. Les modules qui sy trouvent peuvent tre catgoriss selon le type de signaux quils traitent: audio, de contrle, vnement et logique. Nous expliquerons les signaux vnements et logiques un peu plus tard, concentrons nous dabord sur les deux premiers types de signaux. Les signaux audio sont les signaux transportant de linformation audio (sic). Ils comprennent les signaux sortant des oscillateurs, ltres, amplicateurs, delays, etc. Ainsi, les modules comme les ltres, amplicateurs, saturations et autres delays doivent normalement recevoir en entre un signal audio traiter. Les signaux de contrle ne transportent pas daudio, ils servent juste contrler certains modules. Par exemple, les sorties des enveloppes, des LFOs, les signaux de pitch (hauteur tonale) et de vlocit des notes du clavier ne transportent aucun son mais peuvent servir contrler la frquence de coupure ou la rsonance dun ltre, la dure dun dlai ou quoi que ce soit dautre. Ainsi, les ports dentre de frquence de coupure ou de rsonance dun ltre ou de dure de dlai sont supposs recevoir des signaux de contrle. Voil un exemple de module ltre Reaktor Core que vous connaissez dj:

Lentre suprieure du ltre est prvue pour recevoir le signal audio ltrer et attend donc un signal de type audio. Les entres F et Res sont visiblement de type contrle. Les sorties du ltre produisent diffrentes sortes de signaux audio ltrs, elles sont donc toutes de type audio. Un module oscillateur sinusodal, quant lui, dispose dune unique entre de contrle (pour la frquence) et dune unique sortie audio:

Si nous observons le module Rect LFO, il dispose de deux entres de contrle (pour la frquence et la largeur de limpulsion, la troisime entre tant de type

REAKTOR CORE 37

vnement) ainsi que dune sortie de contrle (car le module sert contrler dautres paramtres comme la frquence de coupure dun ltre, des niveaux damplication, etc.):

Certains types de traitements (et mixages) sont utiliss la fois pour les signaux audio et pour les signaux de contrle. Dans ce cas, vous trouverez pour ces macros une version ddie aux signaux audio et une version ddie aux signaux de contrle. Cest le cas par exemple des mixeurs audio ou de contrle, des amplicateurs audio ou de contrle, etc. Gnralement, il est dconseill dutiliser un module avec un signal pour lequel il nest pas prvu, moins que vous ne sachiez prcisment ce que vous faites. Ceci dit, il faut remarquer quil est assez souvent possible de rutiliser des signaux audio comme signaux de contrle. Lexemple le plus typique est la modulation de la frquence dun oscillateur ou de la frquence de coupure dun ltre par un signal audio. Ceci fonctionne sans problme, partir du moment o vous utilisez intentionnellement ce signal audio comme un signal de contrle. Nous osons croire que le cas contraire, ie lutilisation volontaire dun signal de contrle en tant que signal audio, est plutt rare... Cette sparation entre les signaux audio, de contrle, vnement et logique ne doit pas tre confondue avec la sparation audio/vnement du niveau primaire de Reaktor. La classication audio/vnement du niveau primaire spcie une sorte de vitesse de traitement des signaux: les signaux audio sont traits bien plus vite (et ncessitent plus de puissance processeur). De plus, comme vous le savez probablement, les signaux vnements du niveau primaire ont des rgles de propagation diffrentes de celles des signaux audio. Dans la terminologie de Reaktor Core, la diffrence entre les signaux audio, de contrle, vnements et logiques est purement smantique: elle dnit lutilisation du signal et non le type de traitement quil subit. La relation entre les catgories vnement/audio du niveau primaire et les catgories audio/contrle/vnement/logique de Reaktor Core nest pas biunivoque (bijective diraient les 38 REAKTOR CORE

purs et durs), mais nous pouvons quand mme tenter de la dtailler: un signal audio du niveau primaire correspond normalement dans Reaktor Core soit un signal audio (p.ex. la sortie dun oscillateur ou dun ltre), soit un signal de contrle (p.ex. la sortie dune enveloppe). un signal vnement du niveau primaire est gnralement un signal de contrle dans Reaktor Core. Comme exemple, on peut citer la sortie dun LFO, dun potentiomtre, dune source MIDI de pitch ou de vlocit. parfois, un signal vnement du niveau primaire correspond un signal vnement dans Reaktor Core. Lexemple le plus typique est un MIDI Gate (les signaux vnements de Reaktor Core seront dcrits plus loin, comme promis). parfois, un signal vnement du niveau primaire ressemble un signal logique de Reaktor Core, bien quils ne soient pas entirement compatibles et quune conversion explicite entre les deux soit ncessaire (nous traiterons aussi de ce sujet plus loin). On peut prendre comme exemple les signaux traits par Logic AND ou dautres modules similaires du niveau primaire.

Il est important de comprendre que, lorsque vous slectionnez un type de signal pour un port dentre dune cellule core, vous choisissez en fait entre un signal vnement et un signal audio du niveau primaire et non du niveau Reaktor Core! Les ports de la cellule core sont la jonction des deux mondes, cest la raison pour laquelle ils utilisent dans certains cas la terminologie du niveau primaire. Nous allons en apprendre un peu plus sur ces distinctions en essayant de construire une mulation deffet dcho bande. Nous commencerons par construire un simple cho numrique, puis nous lamliorerons pour imiter certaines caractristiques dun cho bande. Crons dabord une cellule core vide. Pntrez-y et renommez-la Echo. Le premier module que nous allons placer dans la structure est un module de dlai. Prenons un dlai interpolation 4-points, car il est de meilleure qualit quun 2-points, et car un dlai sans interpolation ne conviendrait pas notre mulation de bande. Slectionnons donc Standard Macro > Delay > Delay 4p:

REAKTOR CORE 39

Nous avons videmment besoin dune entre et dune sortie audio pour notre cellule core de dlai. Nous allons utiliser une connexion QuickBus pour lentre et une connexion normale pour la sortie:

Il nous faut galement une entre vnement pour contrler la dure du dlai. Il faut ici prendre en compte le fait que la dure de dlai au niveau primaire est gnralement exprime en millisecondes, alors quau niveau Reaktor Core elle est exprime en secondes. Pas de problme, un petit convertisseur est disponible, Standard Macro > Convert > ms2sec:

ce point, nous navons quun cho simple, et il serait agrable de pouvoir entendre le signal original et pas uniquement le signal avec cho. Nous devons donc mixer le signal original avec le signal retard. Comme nous voulons mixer des signaux audio, nous avons besoin dun mixeur audio (si vous vous en rappelez, nous avons utilis un mixeur de contrle pour mixer des signaux de contrle lorsque nous avons construit la cellule core de ltre). Encore mieux, nous pouvons utiliser un mixeur audio spcialement conu pour mlanger deux signaux (bref un crossfader): Standard Macro > Audio Mix-Amp > XFade (par):

40 REAKTOR CORE

Le qualicatif (par) signie parabolique pour donner une transition plus naturelle que la transition linaire. Nous allons connecter lentre de contrle (x) du crossfader une nouvelle entre vnement qui contrle la balance entre les signaux original et retard. Lorsque le signal de contrle est gal 0, nous nentendons que le signal original, tandis que sil est gal 1 nous nentendons que le signal retard:

Cest bien mieux maintenant, puisque nous pouvons entendre le signal original et son cho. Mais ce nest toujours quun cho. Pour avoir plusieurs chos, nous devons rinjecter une partie du signal retard dans lentre du dlai. Nous devons donc dabord attnuer le signal retard. Daprs les mmes considrations un amplicateur audio pour un signal audio, prenons Standard Macro > Audio Mix Amp > Amount:

Nous utilisons lampli Amount car nous voulons contrler la quantit de signal rinjecte. Cet amplicateur nous permet aussi dinverser le signal en utilisant des rglages ngatifs. En revanche, un ampli comme Amp (dB), qui conviendrait mieux pour contrler un volume sonore, ne serait pas trs intressant dans notre cas, car il ne permet pas dinverser le signal. Connectons lentre de contrle damplitude de lamplicateur une entre vnement que nous crons pour contrler la quantit de rinjection:

REAKTOR CORE 41

Les quantits raisonnables de rinjection se situent dans lintervalle [-0.9..0.9]. Si vous souhaitez tester ce dlai ds ltape suivante, faites attention la quantit de rinjection, car vous pouvez facilement atteindre des niveaux trop levs (il ny a pas encore de saturation dans notre circuit). Nous aurions pu quiper notre cellule core dun limiteur de rinjection de scurit, mais comme nous voulons ensuite y adjoindre une saturation, nous navons pas jug cela ncessaire. En revanche, vous pourriez faire des essais avec des rinjections hautes et entendre la saturation du dlai. Nous devons maintenant mixer le signal de rinjection avec le signal original. Un mixeur audio (Standard Macro > Audio Mix Amp > Audio Mix) semble un choix naturel:

: Vous vous demandez peut-tre ce qui est arriv lentre suprieure du module Amount ci-dessus, celle qui afche maintenant un gros Z orange:

En fait, selon la version du logiciel et les circonstances, ce Z peut apparatre dautres entres de la structure, mais cela ne doit pas vous inquiter plus que cela. Ce symbole indique quun dlai numrique est apparu dans la structure cet endroit. Il est utile la conception de structures volues, pour lesquelles cette information peut tre importante pour le concepteur. Pour les structures simples comme celle qui nous occupe, nous pouvons oublier ce symbole. Sa prsence montre juste quil existe un dlai d1 chantillon (environ 0,02 ms 44,1 kHz, encore moins aux taux dchantillonnage plus levs) en ce point. Nous osons prtendre que vous ne remarquerez rien si le dlai est dcal de 0,02 ms par rapport la valeur que vous avez spcie... Revenons notre structure. Elle peut maintenant produire une srie dchos 42 REAKTOR CORE

dcroissants. Elle devrait tre sufsante pour un cho numrique, mais nous voulons vous montrer une autre caractristique de la librairie, une astuce qui vous permettra de rduire la taille de votre structure. Parmi les amplicateurs audio, certains sont appels Chain. Ces amplicateurs sont capables damplier un signal donn et de le mlanger un autre signal enchan. Lun de ces amplis, Audio Mix Amp > Chain(amount), fonctionne comme Amount si ce nest cette caractristique denchanement:

Le signal arrivant la deuxime entre de ce module est attnu selon le facteur donn par lentre A puis mlang au signal arrivant dans lentre de chane (>>). Le signal arrivant dans cette entre de chane nest pas attnu. Ce type damplicateur peut servir construire des chanes de mixage, dans lesquelles les connexions des ports >> constituent une sorte de bus de mixage:

Dans le cas qui nous concerne, nous navons pas besoin de bus de mixage, mais nous pouvons utiliser ce module la place de lensemble Audio Mix et Amount. Le signal rinject sera attnu de la quantit spcie par lentre Fbk et mix avec le signal dentre exactement comme auparavant:

Flicitations! Vous avez construit un effet dcho numrique simple. La prochaine tape sera dy ajouter un effet de simulation de bande.

REAKTOR CORE 43

2.4. Cration de vos premires macros Reaktor Core

Pour leffet dcho que nous venons de construire, nous avons utilis une macro Delay 4p de la librairie qui nous offre un dlai numrique de bonne qualit. Mais bonne qualit ou pas, il sonne toujours trop numrique. Nous pourrions lui donner un son plus chaud en lui ajoutant quelques caractristiques typiques dun cho bande, comme la saturation et leffet de pompage. Cest ce que nous allons raliser maintenant. Commenons par supprimer la macro de dlai de la structure, et crons une macro vide la place via un clic droit sur le fond de lcran et en slectionnant Built In Module > Macro:

Double-cliquez sur cette macro pour pntrer lintrieur. Vous voyez apparatre une structure vide similaire celle de la cellule core prcdente:

Elle fonctionne aussi de faon semblable, avec toutefois quelques diffrences importantes. Nous avions alors la structure dune cellule Reaktor Core alors que nous avons maintenant la structure interne dune macro Reaktor Core. En ralit, ces diffrences concernent lensemble des modules dentre et de sortie disponibles:

44 REAKTOR CORE

Les ports de type Latch et Bool C seront expliqus bien plus loin dans ce manuel; ils servent pour les oprations avances. Pour linstant, nous nous intresserons uniquement la sortie intitule Out (ou In pour les entres). Cest un type gnral de port, qui peut accepter des signaux audio, logiques, de contrle et vnements. En fait, le port na cure du type de signal quil reoit: cette diffrenciation nest utile que pour vous, en tant quutilisateur, parce quelle dnit ce quoi doit servir le signal. Pour Reaktor Core, tous les signaux sont identiques. La diffrence entre entres/sorties audio et vnement de la structure prcdente nexiste plus, car il ny a plus de niveau primaire lextrieur (contrairement ce qui se passe pour une cellule core): nous sommes maintenant entirement dans Reaktor Core. La premire chose que nous allons faire est de nommer la macro, de la mme faon que pour la cellule core, via un clic droit sur le fond et en slectionnant Owner Properties, o vous pouvez saisir le nom:

Les autres proprits de la macro contrlent divers aspects de lapparence et du traitement du signal pour cette macro. Mme si vous tes libre dexprimenter diffrents rglages pour ces autres proprits, nous vous conseillons fermement de laisser le paramtre Solid activ et de modier le paramtre FP Precision avec modration. La signication de ces paramtres sera explique dans les sections avances de ce manuel. Crons ensuite un ensemble dentres/sorties pour notre macro Tape Delay:

REAKTOR CORE 45

Lentre suprieure recevra le signal audio, lentre infrieure le paramtre temporel. Vous avez peut-tre remarqu la prsence de ports supplmentaires sur la gauche des modules dentre, nous les expliquerons plus loin. Au centre de notre macro, nous allons utiliser comme point de dpart le mme module Delay 4p:

Une simulation simple de leffet de saturation peut tre ralise facilement, il suft de connecter un module saturateur avant le dlai. Le saturateur est une sorte de modeleur de signal et il travaille sur de laudio, nous allons donc le chercher parmi les modeleurs audio (en anglais audio shapers). Slectionnons Standard Macro > Audio Shaper > Parabol Sat:

Le signal dentre est maintenant satur sur un intervalle de 1 +1. En fait, cet intervalle est contrl par lentre L du module saturateur; si celle-ci est dconnecte, la valeur est gale 1 par dfaut. Ceci peut vous paratre surprenant, puisque dhabitude une entre dconnecte est considre comme ne recevant aucun signal, autrement dit un signal nul. Ce nest pas exactement le cas dans les structures Reaktor Core, les modules ont la possibilit de spcier un traitement spcial pour leurs entres dconnectes, comme pour ce saturateur dans lequel lentre L doit avoir 1 comme valeur par dfaut. Nous allons maintenant apprendre comment effectuer ce rglage, pour la valeur par dfaut de lentre T. Mettons que, si notre entre T est dconnecte, nous voulions quelle soit traite comme si la valeur dentre tait de 0,25 46 REAKTOR CORE

secondes. Rien de plus simple: faites un clic droit sur ce nouveau port sur la gauche du module dentre T, et slectionnez Connect to New QuickConst. Voil ce que vous devriez voir:

De plus, la fentre de proprits devrait afcher les proprits de cette constante (si la fentre afche une page diffrente, appuyez sur le bouton ):

Dans le champ de valeur (Value), saisissez la nouvelle valeur 0.25:

Voil ce que vous devriez voir maintenant:

Expliquons ce que nous venons de faire. Le port sur la gauche des modules dentre spcie un signal par dfaut, cest--dire un signal utilis si lentre nest pas connecte ( lextrieur de la macro). Dans notre cas, si lentre T de la macro Tape Delay nest pas connecte lextrieur, elle se comportera comme si vous lui aviez connect une constante de valeur 0,25. REAKTOR CORE 47

Une connexion une QuickConst nest videmment pas la seule possibilit pour un signal par dfaut. Vous pouvez lui connecter nimporte quel autre module de la structure, y compris un autre module dentre. Maintenant que nous avons une saturation et une valeur par dfaut pour lentre T, simulons leffet de pompage de la bande. Une faon simple de le faire est de moduler la dure de dlai par un LFO (pour Low Frequency Oscillator, Oscillateur Basse Frquence en anglais). Nous pourrions essayer diffrentes formes de LFOs pour obtenir un meilleur effet de pompage. Nous proposons pour linstant den prendre un seul dans la librairie: Standard Macro > LFO > Par LFO:

Cest un LFO parabolique produisant un signal qui ressemble par sa forme une sinusode, mais qui ncessite moins de puissance processeur. Son entre F doit recevoir le signal spciant sa vitesse doscillation (sa frquence). Nous pouvons nouveau utiliser une constante QuickConst. Une frquence de 4 Hz semble raisonnable:

Lentre Rst sert redmarrer le LFO (Rst pour Reset, Redmarrer en anglais), nous ne nous en servirons pas pour linstant. Nous devons maintenant spcier une quantit de modulation en redimensionnant la sortie du LFO, car il gnre pour linstant un signal compris entre 1 et 1, ce qui est beaucoup trop. Ne perdant pas de vue que nous avons ici affaire des signaux de contrle, nous allons utiliser un module damplication de contrle, similaire lamplicateur Amount que nous avons utilis pour laudio, Standard Macro > Control > Ctl Amount:

Une amplitude de modulation de 0,0002 devrait faire laffaire, rduisons donc le signal de ce facteur:

48 REAKTOR CORE

Enn, nous pouvons mixer les deux signaux de contrles (celui de lentre T et celui du module Ctl Amount) et les envoyer dans lentre Tdu module de dlai. Le module Ctl Mix dj familier peut tre nouveau utilis:

En fait, nous retrouvons la structure de mixeur en chane que nous avions pour les signaux audio. Nous pouvons donc remplacer les modules Ctl Amount et Ctl Mix comme nous lavons fait pour le chemin du signal audio, avec cette fois-ci le module Standard Macro > Control > Ctl Chain:

Nous pouvons apporter la touche nale notre macro: changer la taille du tampon pour notre dlai, qui dnit la dure de dlai maximale. Si vous maintenez le curseur sur la macro Delay 4p (et pour peu que le bouton soit activ), vous pouvez lire dans le texte dinfo que la taille de tampon (en anglais buffer) par dfaut correspond 1 seconde 44,1 kHz:

REAKTOR CORE 49

Passons-le 5 secondes, soit 44100*5 = 220500 (au fait, puisque chaque chantillon occupe 4 octets, ceci fait en tout 220500*4 = 882000 octets, soit presque 1 Mo). Double-cliquez sur la macro Delay 4p:

Le module sur la gauche est le module du tampon du dlai. Double-cliquez dessus (ou faites un clic droit et slectionnez Show Properties) pour modier ses proprits. Slectionnez la page , dans laquelle vous devriez voir safcher la proprit Size (Taille en anglais...). Rglez-la sur 220500 chantillons:

Comme nous lavons vu, un tampon de 5 secondes daudio prend environ 1 Mo de mmoire, donc soyez prudent lorsque vous modiez les tampons de dlai, tout particulirement si les dlais sont utiliss dans 50 REAKTOR CORE

des parties polyphoniques de la structure, dans lesquelles la taille du tampon sera multiplie par le nombre de voix ! Nous pouvons resortir de la macro Delay 4p puis de la macro Tape Delay que nous venons de crer (double-cliquez sur le fond), pour nous occuper des connexions externes:

Si vous ne lavez pas encore fait, nous vous suggrons dessayer le module dcho que nous avons construit. Voici une structure de test du niveau primaire de Reaktor, aussi simple que possible (veuillez noter que le module dcho est rgl sur mono):

Vous pouvez lamliorez de multiples faons, par exemple en insrant des potentiomtres contrlant les diffrents paramtres de lcho, en utilisant un vritable synthtiseur comme signal source, etc.

2.5. Utiliser laudio comme signal de contrle


Nous avons mentionn plus haut quil tait possible dutiliser un signal audio en tant que signal de contrle. Nous avons pens quil serait utile den donner un exemple. Nous allons crer une cellule core implmentant une paire doscillateurs, lun des deux tant modul par lautre. Prenons deux oscillateurs multi-ondes (en anglais multiwave):

REAKTOR CORE 51

Nous aurons besoin dun contrle de pitch (hauteur tonale) pour chacun des deux oscillateurs, et nous couterons la sortie du deuxime oscillateur. Crons les entres et sorties correspondantes:

Nous voulons maintenant prendre la sortie de loscillateur de gauche et lutiliser pour moduler la frquence du second oscillateur (celui de droite, donc):

Lentre Mod contrle la quantit de modulation. Veuillez noter que nous mixons le signal de modulation aprs le convertisseur P2F, an que la modulation ait lieu sur lchelle de frquences (il serait aussi possible deffectuer la modulation sur lchelle de pitch). En fait, il vaut mieux adapter la quantit de modulation en fonction de la frquence de loscillation de base:

Maintenant, si vous analysez la structure ci-dessus du point de vue des signaux audio et de contrle, vous remarquerez que tous les signaux de la structure, except les sorties des oscillateurs, sont des signaux de contrle. Les sorties des deux oscillateurs sont videmment des signaux audio. Cependant, nous utilisons de faon dtourne la sortie de loscillateur de gauche, la considrant comme un signal de contrle que nous envoyons dans le mixer Ctl Chain. 52 REAKTOR CORE

2.6. Les signaux vnements


Comme nous lavons dit prcdemment, il y a plusieurs signications lexpression signal vnement. Le concept des signaux vnements du niveau primaire de Reaktor devrait dj vous tre familier. Un signal vnement du niveau primaire peut avoir plusieurs utilisations. Une premire consiste lutiliser comme signal de contrle (p.ex. la sortie dun LFO, dun potentiomtre, etc.), simplement parce quil consomme moins de puissance processeur quun signal audio du niveau primaire. Dans ce cas, vous auriez pu utiliser un signal audio la place et obtenir sensiblement le mme effet. Une deuxime utilisation, dans laquelle le signal vnement ne peut tre remplac par de laudio, se prsente lorsque vous tes intress(e) non seulement par les valeurs transportes par le signal, mais aussi par les instants auxquels chaque nouvelle valeur est dlivre par le cble, autrement dit quand lvnement est envoy. Comme exemple, citons un signal gate denveloppe du niveau primaire: lenveloppe est lance linstant o un vnement arrive lentre de la porte (en anglais gate). Lorsque nous parlions de signaux audio, de contrle, vnements et logiques dans Reaktor Core, nous ne parlions pas vraiment de diffrences techniques entre ces signaux (techniquement, ils sont tous quivalents dans Reaktor Core), mais plutt des diffrentes faons dutiliser un signal. Comme nous le voyons maintenant, un signal vnement du niveau primaire de Reaktor peut tre utilis comme signal de contrle, vnement, voire logique (alors quun signal audio du niveau primaire de Reaktor peut tre utilis comme audio ou comme contrle, comme vous devriez vous en rappeler...). Nous avons dj appris envoyer des signaux vnements du niveau primaire dans Reaktor Core et les utiliser comme signaux de contrle. Les entres en mode vnement de la cellule core audio ralisant un ltre - que nous avons construite auparavant - en est un bon exemple. Il y a galement des cas dans lesquels vous utiliseriez plutt une cellule core vnement pour traiter certains signaux vnements du niveau primaire, qui sont en fait des signaux de contrle. Voici un exemple de cellule core vnement englobant une macro core de modeleur de type contrle (Ctl Shaper):

REAKTOR CORE 53

Ce modeleur de contrle reoit un signal de contrle issu dun signal vnement du niveau primaire (p.ex. un signal de vlocit MIDI, ou un signal de LFO du niveau primaire), il le tord en fonction du paramtre Shp et envoie le rsultat la sortie. Une restriction importante des cellules core vnements (mentionne plus haut) est que toutes leurs sources dhorloge sont dsactives. Ceci signie que non seulement les oscillateurs et les ltres, mais aussi les enveloppes et les LFOs ne peuvent pas fonctionner dans les cellules core vnements. Ces cellules sont vraiment conues pour recevoir des vnements du niveau primaire de Reaktor, les traiter et les renvoyer lextrieur, comme dans lexemple ci-dessus. Les signaux drivs de signaux vnements du niveau primaire peuvent aussi tre utiliss comme vritables signaux vnements dans les structures Reaktor Core. Nous allons maintenant regarder dun peu plus prs quelques cas simples dutilisation dvnements dans Reaktor Core. Le premier cas est lutilisation dune enveloppe dans une structure core. Comme nous venons de le voir, cause de la restriction concernant les cellules core vnements, nous pouvons uniquement utiliser une cellule core audio. Crons donc une nouvelle cellule core audio et utilisons Standard Macro > Envelope > ADSR:

Lentre suprieure de lenveloppe est une entre gate qui fonctionne sensiblement comme les entres gate des enveloppes du niveau primaire: cette entre allume ou teint lenveloppe en rponse des vnements. Pas de problme, crons une entre vnement dans notre cellule core:

54 REAKTOR CORE

Cette entre convertira les vnements gate du niveau primaire en vnements core. Intressons-nous maintenant aux entres A, D, S et R. Lentre S (niveau de maintien, en anglais sustain) fonctionne comme au niveau primaire, ie elle attend un signal dans lintervalle [0...1]:

Les entres A, D et R sont quant elles lgrement diffrentes en ce sens que, contrairement aux enveloppes du niveau primaire, elles attendent ici des temps spcis en secondes:

Ceci peut tre gr par Standard Macro > Convert > logT2sec, qui convertit les temps des enveloppes du niveau primaire en secondes:

Bien que toutes les entres de la structure ci-dessus soient en mode vnement, du point de vue smantique, la premire entre produit un signal vnement alors que les autres produisent des signaux de contrle. Notre enveloppe dispose de deux ports non encore connects. Le port GS rgle la sensibilit du seuil dactivation (gate). Rgl sur 0, lenveloppe ignore compltement le niveau de lentre gate et elle est toujours son amplitude maximale. Rgl sur 1, le niveau de seuil a son effet maximal, comme au niveau primaire de Reaktor. Nous pouvons contrler cette sensibilit depuis lextrieur via une nouvelle entre: REAKTOR CORE 55

Le port RM spcie le mode de redmarrage de lenveloppe:

Ce port a un aspect diffrent car il attend des valeurs entires en entre. Si nous considrons par exemple lentre pour le temps dattaque, elle peut accepter un temps dattaque d1 s, 1,5 s ou 0,2 s. Au contraire, le port pour le mode de redmarrage ne sattend pas une valeur de 1,2 ou de 3,1. Ceci est indiqu par laspect diffrent du port, mais cela nempche pas de connecter ce port un signal normal; utilisons donc une autre entre vnement:

56 REAKTOR CORE

Si les valeurs venant de lextrieur ne sont pas entires, elles sont arrondies la valeur entire la plus proche. Par exemple, 1,2 sera arrondi 1. Observons maintenant un autre exemple dutilisation dun signal vnement vritable:

La structure ci-dessus ralise une sorte de modulation de pitch (hauteur tonale). Leffet est produit par un dlai dont la dure varie dans lintervalle 250100 ms. La vitesse de cette variation est contrle par lentre Rate, qui contrle en fait la vitesse du LFO (la valeur est en Hertz). Il sagit donc dun pur signal de contrle. Lentre Rst est un signal vnement, il peut tre utilis pour redmarrer le LFO. La valeur en entre spcie la phase de redmarrage, pour laquelle 0 signie que le LFO redmarre au dbut du cycle, 0,5 au milieu du cycle et 1 la n. Vous pouvez faire des tests en connectant un bouton envoyant des valeurs spciques cette entre.

2.7. Les signaux logiques


Maintenant que nous en savons plus sur les signaux vnements et les signaux de contrle, il est temps den apprendre un peu plus sur une autre manire dutiliser les signaux dans Reaktor Core, via les signaux logiques. Voici un exemple dun module qui traite les signaux logiques:

Comme vous pouvez le remarquer, les ports de ce module ont un type entier, comme lentre RM de lenveloppe vue plus haut. Ceci est d au fait que les signaux arrivant ne transportent gnralement que des valeurs entires, et mme pire, ils ne transportent que des 0 et des 1. Pour le signal logique, la valeur 1 correspond ltat true (vrai en anglais), et la valeur 0 ltat false (faux en anglais). La signication des expressions true et false doit tre assigne par lutilisateur. Vous pouvez dcider quun signal logique dtermine si une porte (gate) particulire est ouverte ou non:

REAKTOR CORE 57

Ici, une macro Gate2L vrie le signal dentre et produit une sortie true (ou 1) si la porte est ouverte et false (ou 0) si elle est ferme. Vous pouvez utiliser les signaux logiques pour effectuer des traitements logiques. Par exemple, nous pourrions construire un processeur de porte logique qui appliquerait une porte logique MIDI une autre porte, rgulirement cadence, base sur une horloge

Les modules Gate2L, AND et L2Gate sont des modules logiques et se trouvent dans le menu Standard Macro > Logic. Le Gate LFO est une macro que nous avons construite pour ce processeur. Elle gnre un signal de porte, souvrant et se fermant intervalles rguliers. La porte en entre et la sortie du LFO sont connectes des convertisseurs Gate2L qui convertissent les signaux de portes en signaux logiques, transformant les portes ouvertes en true et les portes fermes en false. Le module AND sort la valeur true si et seulement si les deux portes sont ltat ouvert en mme temps. En dautres termes, la sortie du module AND est gale true si et seulement si lutilisateur maintient une touche enfonce et si en mme temps le LFO produit une porte ouverte. Ceci signie que, tant que lutilisateur maintient une touche enfonce, il y aura alternativement des valeurs true et false en sortie du module AND, la vitesse dalternance tant rgle par la frquence du LFO. La sortie du module AND est reconvertie en signal de porte, lamplitude du signal est prise du signal de porte en entre, pour que le niveau du signal de porte reste inchang. Voici la structure de notre macro Gate LFO:

58 REAKTOR CORE

Lentre F dnit la vitesse des rptitions douverture de la porte, et lentre W dnit la dure douverture des portes ( 0, elles restent ouvertes la moiti du cycle, 1 elles restent ouvertes 0 % du temps et 1, 100 % du temps). Lentre Rst redmarre le LFO en rponse aux vnements entrants (le LFO est donc redmarr chaque fois quun vnement arrive lentre G principale). Le module connect lentre Rst du Rect LFO est appel Value et se trouve dans Standard Macro > Event Processing. Il assure que le LFO est redmarr avec une phase nulle en remplaant toutes les valeurs des vnements entrants par la valeur de lentre infrieure, qui est en loccurrence 0. La sortie du LFO est convertie en signal de porte via un convertisseur Ctl2Gate, que lon trouve aussi dans Standard Macro > Event Processing. Comme nous lavons vu, les LFOs ne fonctionnent pas dans les cellules core vnements, donc si vous voulez essayer cette structure, vous devez utiliser une cellule core audio.

REAKTOR CORE 59

3. Fondements de Reaktor Core: le modle du signal core


3.1. Les valeurs
La plupart des sorties des modules de Reaktor Core produisent des valeurs. Produire une valeur signie qu tout moment une valeur est associe la sortie en question. Cette valeur est disponible pour les modules dont les entres sont connectes cette sortie. Dans lexemple suivant, un module additionneur obtient les valeurs 2 et 3 de deux autres modules, dont les sorties sont connectes ses entres; ladditionneur produit la valeur 5 sa sortie

Si vous voulez faire une analogie avec le monde matriel, pensez les valeurs comme des niveaux de signaux (des tensions lectriques), en particulier si vous avez affaire des modules de grande chelle tels que les oscillateurs, les ltres, les enveloppes, etc. Cependant, les valeurs ne se limitent pas cela. Aprs tout, ce ne sont que des valeurs, et elles peuvent tre utilises pour raliser nimporte quel algorithme de traitement, pas seulement pour modeler un voltage.

3.2. Les vnements


Dans le monde numrique, le temps nest pas continu, il est discret, cest--dire quanti. Lun des exemples les plus connus est lenregistrement numrique, qui nenregistre pas linformation totale dun signal audio voluant continment dans le temps, mais seulement son niveau des instants prcis rgulirement espacs. Le nombre de ces instants dans chaque seconde dnit le fameux taux dchantillonnage.

60 REAKTOR CORE

Voici la reprsentation dun signal continu:

et sa reprsentation numrique (ou digitale):

Ceci implique que, puisque nous sommes dans le monde numrique, les sorties de nos modules ne peuvent faire voluer leurs valeurs de faon continue. Dun autre ct, nous navons pas besoin de forcer nos sorties changer leur valeur des instants prcis rgulirement espacs, autrement dit nous navons pas besoin de maintenir un taux dchantillonnage particulier tout au long de nos structures. En outre, dans certaines parties de nos structures, nous navons pas mme besoin de maintenir un quelconque taux dchantillonnage, autrement dit nos changements nont pas besoin de survenir des instants prcis rgulirement espacs. Par exemple, au temps zro, la sortie de notre additionneur a la valeur 5. Le premier changement pourrait survenir au temps 1 ms (une milliseconde). Le deuxime pourrait survenir 4 ms. Le troisime 6 ms:

REAKTOR CORE 61

Sur la gure ci-dessus, nous voyons les changements de la sortie de notre additionneur survenant entre 0 et 7 ms. linstant o la sortie change de valeur, elle gnre un vnement. Un vnement signie que la sortie rend compte dun changement de son tat, en loccurrence quelle change de valeur. Dans lexemple suivant, le module en haut gauche a modi sa valeur de 2 4, gnrant un vnement. En rponse, ladditionneur change aussi sa valeur de sortie et gnre galement un vnement sa sortie.

Le module suprieur gauche aurait aussi pu gnrer un nouvel vnement avec la mme valeur que lancienne. Ladditionneur aurait quand mme rpondu en gnrant aussi un nouvel vnement, bien sr sans changer non plus sa valeur de sortie.

La nouvelle valeur apparaissant la sortie ne doit pas forcment tre diffrente de lancienne. Cependant, la seule manire pour une sortie de changer sa valeur est de gnrer un vnement. Comme vous lavez vu dans les exemples prcdents, un vnement survenant la sortie dun module va tre peru par les modules connects en aval, qui produiront en rponse dautres vnements (comme ladditionneur qui produisait un vnement en rponse lvnement provenant du module en haut gauche). Ces nouveaux vnements vont leur tour tre perus par les modules connects aux sorties correspondantes et propags de proche en proche, jusqu ce que la propagation sarrte, pour une des raisons dont nous discuterons plus loin dans ce texte. 62 REAKTOR CORE

Dans Reaktor Core, les vnements sont diffrents des vnements du niveau primaire de Reaktor. Ils suivent des rgles diffrentes que nous dtaillerons plus loin.

3.3. vnements simultans

Considrons la situation suivante: les deux modules de gauche des exemples prcdents produisent simultanment un vnement.

Ceci est lune des caractristiques essentielles de Reaktor Core: les vnements peuvent survenir simultanment en plusieurs endroits. Dans cette situation, les vnements produits simultanment par les deux modules de gauche arrivent aussi simultanment aux entres de ladditionneur. En rponse, ladditionneur va produire exactement un vnement sa sortie. Ce comportement est diffrent de celui observ au niveau primaire de Reaktor, dans lequel les vnements ne peuvent pas survenir simultanment: dans une telle situation, ladditionneur (en mode vnement) produirait deux vnements en sortie. Bien sr, en ralit les vnements ne sont pas produits simultanment par les modules suprieur gauche et infrieur gauche, car les deux modules sont traits par le mme processeur, et un processeur ne peut jamais traiter quun seul module la fois. Mais limportant pour nous est que ces vnements sont logiquement simultans, cest--dire quils sont traits comme simultans par les modules qui les reoivent. Nous allons maintenant prendre un autre exemple dune propagation simul tane dvnements.

REAKTOR CORE 63

Dans la gure ci-dessus, le module lextrme gauche envoie un vnement, modiant sa valeur de 2 3. Lvnement est envoy simultanment la fois aux modules inverseur (-x) et multiplicateur (*). En rponse lvnement entrant, linverseur produit une nouvelle valeur de sortie, -3. Il est important de remarquer que, bien que lvnement en sortie de linverseur soit produit en rponse larrive de lvnement venant du module tout gauche, et donc quil doive survenir aprs ce dernier, les deux vnements restent logiquement simultans. Ceci signie quils arrivent simultanment aux entres du multiplicateur et que le multiplicateur, en rponse, ne produit quun seul vnement en sortie, avec une valeur de -9. Dans le niveau primaire, vous auriez eu ici deux vnements la sortie du module multiplicateur. Vous nauriez pu dterminer si lvnement produit la sortie du module de gauche avait dabord t envoy linverseur ou au multiplicateur (bien que cela soit sans importance pour cette structure particulire). En gnral, vous pouvez utiliser la rgle suivante pour dterminer si deux vnements particuliers sont simultans ou non: Tous les vnements issus dun (envoys en rponse un) mme vnement sont simultans. Tous les vnements issus dun nombre arbitraire dvnements simultans (survenant diffrentes sorties mais que lon sait simultans) sont aussi simultans. Le dernier exemple montre lutilisation de la simultanit dvnements. Dans ce cas, nous liminons le traitement redondant du second vnement par le multiplicateur, qui aurait ncessit plus de temps processeur. Dans des structures plus grandes, en labsence dun tel concept de simultanit, le nombre dvnements peut crotre de faon incontrle, moins que le concepteur de la structure nait apport un soin particulier maintenir le nombre dvnements doublons au plus bas. Au-del de lconomie en temps de processeur, ce concept mne des diffrences importantes dans lapproche de la construction des structures, en particulier pour les structures ralisant des algorithmes de traitement du signal (DSP) de bas niveau. Vous comprendrez et percevrez mieux ces diffrences lorsque vous commencerez construire vos propres structures.

64 REAKTOR CORE

3.4. Lordre de traitement


Comme nous lavons vu dans les exemples prcdents, lorsquun module envoie un vnement, les modules en aval y rpondent. On pourrait en conclure que, bien quils produisent des vnements logiquement simultans, les modules sont en fait traits de faon non simultane. On pourrait alors supposer que, pour une connexion, il soit raisonnable de traiter le module en amont avant le module en aval. Si quelquun arrive ces conclusions... il (ou elle) a absolument raison. La rgle gnrale de lordre de traitement des modules est la suivante: Si deux modules connects traitent des vnements simultans, alors le module en amont est trait en premier. Si les vnements ne sont pas simultans, lordre de traitement des modules correspond bien entendu lordre des vnements traits. Nous dduisons de la rgle ci-dessus quun chemin de connexion unidirectionnel (toujours vers lamont ou toujours vers laval) dun module au suivant induit un ordre de traitement dtermin de ces deux modules: le module en amont est trait en premier. Sil ny a pas de chemin unidirectionnel entre les deux modules, leur ordre de traitement est indni (pour des vnements simultans). Ceci signie que cet ordre est arbitraire et peut changer tout moment. Le concepteur de la structure doit donc veiller ce quune telle situation narrive que pour des modules dont lordre de traitement relatif est sans importance, ce qui est gnralement le cas tant quaucune connexion OBC (cf. plus bas) nentre en jeu.Here is an example, the digits showing the order of module processing: Voici un exemple, les nombres indiquant lordre de traitement:

Pour la structure ci-dessus, il existe un autre ordre de traitement possible:

REAKTOR CORE 65

Il ny a aucun moyen de dire lequel des deux sera choisi par lapplication. Heureusement, tant que vous nutilisez pas de connexions OBC (dtailles plus bas), lordre relatif de traitement des modules dans des cas comme celui-ci est tout--fait indiffrent. Ces rgles permettant de dterminer lordre de traitement ne peuvent tre appliques sil y a une rinjection dans les structures, car dans ce cas, pour nimporte quelle paire de modules dans la boucle de rinjection, nous ne pouvons plus dire lequel est en amont et lequel est en aval. Le problme de la manipulation des rinjections, y compris pour lordre de traitement, sera abord plus tard.

Pour la structure ci-dessus, il nest pas possible de dnir si le module B est en amont ou en aval du module D, et vice versa (!). Visiblement, il y a une connexion allant vers lamont de D vers B, mais il y en a galement une de B vers D (via E).

3.5. Retour aux cellules core vnements


Observons les cellules core vnements du point de vue du concept dvnement de Reaktor Core que nous venons de dcrire. Comme vous vous en rappelez certainement, les cellules core vnements ont des entres et des sorties vnements. Ces entres et sorties sont des points

66 REAKTOR CORE

dinterface entre les niveaux primaire et core de Reaktor. Ils font fonction de convertisseurs entre les vnements du niveau primaire et les vnements core, et vice versa. Les rgles de conversion sont les suivantes: Les entres vnements envoient des vnements core lintrieur de la structure en rponse aux vnements du niveau primaire venant de lextrieur. Comme les vnements du niveau primaire extrieur ne peuvent arriver simultanment aux diffrentes entres, les vnements produits lintrieur ne sont pas non plus simultans. Les sorties vnements envoient des vnements de niveau primaire lextrieur de la structure en rponse aux vnements core venant de lintrieur. Bien que des vnements core puissent tre simultans en diffrentes sorties, les vnements du niveau primaire ne peuvent tre envoys simultanment. Ainsi, pour des vnements core simultans, les vnements correspondants du niveau primaire sont envoys les uns la suite des autres, les sorties suprieures envoyant toujours leurs vnements avant les sorties infrieures. Nous allons maintenant tester ces rgles en pratique. Essayons de construire un module de traitement dvnements qui applique un modelage du signal selon la formule: y = 0.25*x*(4-|x|) La reprsentation graphique de cette fonction ressemble ceci:

Commenons par crer une nouvelle cellule core vnement avec une entre et une sortie, appeles respectivement x et y.

REAKTOR CORE 67

Crons ensuite la structure qui effectue la fonction. Nous devons crer les modules |x| (valeur absolue), - (soustraction) et deux * (multiplication) dans la zone des modules normaux (au centre). Ce ne sont pas des macros core mais bien des modules Reaktor Core prfabriqus. Pour les insrer dans les structures core, effectuez un clic droit sur le fond de la zone normale et slectionnez le sous-menu Built-In Module:

Vous trouverez tous les modules dont nous avons besoin dans le sous-menu Built In Module > Math:

68 REAKTOR CORE

Nous avons besoin de deux valeurs constantes, 0,25 et 4. Nous pourrions utiliser des QuickConsts, tout comme nous lavons fait dans les premiers chapitres, mais nous pouvons aussi insrer un module de constante relle via Built In Module > Const (comme avec QuickConst, la valeur peut tre prcise dans la fentre Properties):

Bien sr, dans notre cas, il ny a pas dintrt particulier utiliser des modules Const en lieu et place des QuickConsts, mais cela peut parfois se rvler utile (p.ex. si la mme constante doit tre connecte plusieurs entres, il peut tre judicieux dutiliser un module Const, parce qualors vous navez besoin que dun seul module, et vous avez en outre un point unique pour contrler la valeur de toutes les entres). Bref, la structure maintenant cre modle bien le signal de la manire voulue. Nous pouvons nommer notre module et revenir au niveau primaire:

Maintenant, testons-le. Fixez le nombre de voix de linstrument Reaktor 1, pour quil soit plus facile dutiliser un module Meter (Indicateur en anglais):

REAKTOR CORE 69

Crez un module Knob (Potentiomtre en anglais) et un module Meter, et connectez-les lentre et la sortie de votre module:

Rglez les proprits du potentiomtre et de lindicateur de niveau. Noubliez pas de rgler lindicateur pour quil afche sa valeur:

70 REAKTOR CORE

ni de cocher la case Always Active (Toujours actif en anglais):

Maintenant, tournez le potentiomtre et observez lvolution de la valeur.

REAKTOR CORE 71

La structure de modelage dvnements que nous venons de construire devrait fonctionner parfaitement pour le modelage de signaux de contrle, mais elle comporte encore un dfaut mineur dans sa faon de traiter les vnements. Nous reviendrons sur ce problme (et nous le rsoudrons !) un peu plus tard.

4. Les structures avec tat interne


4.1. Les signaux dhorloge
La manire dont une cellule Reaktor Core traite les vnements entrants est entirement fonction du module en question. Normalement, un module traite la valeur entrante dune certaine manire, mais il peut aussi tout--fait lignorer. Le cas le plus typique dun tel traitement est celui des entres dhorloge. Un exemple de module avec une entre dhorloge est le Latch (Loquet en anglais). Le Latch nest pas un module dusine, cest une macro, mais cest nanmoins un exemple parfait pour illustrer le principe dhorloge. Le Latch a deux entres: une pour la valeur et une pour lhorloge.

En rponse un vnement entrant, lentre de valeur (lentre suprieure) enregistre la valeur entrante dans la mmoire interne du loquet, rien nest envoy en sortie. Lentre dhorloge, en rponse un vnement entrant, envoie vers la sortie la dernire valeur enregistre (elle ouvre le loquet). moins que cela ne soit spci autrement, lentre dhorloge ignore compltement la valeur de lvnement arrivant, elle rpond uniquement larrive de lvnement. Comme nous discutons pour linstant des signaux dhorloge et non des loquets, les exemples dutilisation du module Latch seront dtaills plus loin.

72 REAKTOR CORE

De mme quil existe des modules avec des entres dhorloge, il parat clair que certains signaux de la structure ne transportent aucune valeur utilise par (ou utile pour) le module. Certains signaux peuvent mme tre produits dans le seul but dtre utiliss comme des sources dhorloge. Appelons-les signaux dhorloge. Un exemple de signal dhorloge est lhorloge du taux dchantillonnage. Elle produit un vnement pour chaque nouvel chantillon gnrer, donc 44,1 kHz elle bat 44100 fois par seconde. La valeur de ce signal na pas de sens, elle nest pas prvue pour servir en quoi que ce soit, et dailleurs (dans limplmentation actuelle) elle est gale zro.

4.2. Les Object Bus Connections (OBC)


Les Object Bus Connections (OBC, Connexions sur Bus Objet) sont un type spcial de connexion entre les modules. Une connexion OBC entre deux modules dclare quils partagent un mme objet (ou tat) interne. Le cas le plus typique est la paire de modules Read et Write, qui partagent une mmoire commune sils sont connects via OBC. La fonction du module Write est dcrire une valeur entrante dans la mmoire partage via OBC. La fonction du module Read est de lire la valeur dans la mmoire partage via OBC en rponse au signal dhorloge entrant (entre C). La valeur lue est envoye la sortie du module Read.

La structure ci-dessus effectue le traitement de la macro Latch (en fait cest la structure interne de la macro Latch). Les broches M et S des modules Read et Write sont des broches de type Latch OBC. La broche M est lentre matresse de la connexion et S la sortie esclave de la connexion. Lentre matresse du module Read est connecte la sortie esclave du module Write (les deux autres broches matresse et esclave ne sont pas utilises). Ainsi, dans cette structure, les modules Write et Read partagent la mme mmoire.

REAKTOR CORE 73

Dans la structure suivante, on trouve deux paires de modules Write et Read. Chaque paire dispose de sa propre mmoire. Notez que la connexion du milieu (de la sortie du Read lentre du Write) nest pas une connexion OBC.

On pourrait se demander quelle diffrence il peut bien y avoir entre tre matre(sse) et esclave. Du point de vue de la possession de lobjet partag (dans notre cas une mmoire), il ny a aucune diffrence. Cependant, comme nous lavons dj vu dans les sections prcdentes, une rgle nonce que les modules en amont sont traits avant les modules en aval en ce qui concerne le traitement des vnements simultans. De ce fait, dans les deux derniers exemples, les modules Write sont traits avant leurs Read esclaves. Lordre relatif de traitement des modules connects par OBC est dni par les mmes rgles que pour les autres modules: les modules en amont sont traits en premier. En effet, considrons les deux cas sur lexemple suivant. Dans les deux cas, ltat original de la mmoire est 2 et le mme vnement de valeur 5 est envoy aux modules Read et Write. Dans un cas, le module Write est le matre, dans lautre cest le module Read.

On a reprsent ci-dessus la structure du premier cas. Le module de gauche envoie un vnement de valeur 5 qui arrive dabord au module Write, ce qui entrane lcriture de la nouvelle valeur 5 dans la mmoire partage par la paire Write et Read. Maintenant, lvnement arrive au module Read, fonctionne comme un signal dhorloge et commande lopration de lecture, qui son tour lit la valeur de 5 rcemment enregistre et lenvoie sa sortie. Cest la fonction de la macro Latch de la librairie de macros de Reaktor Core. 74 REAKTOR CORE

Considrons maintenant la structure du second cas:

Nous avons ici la situation oppose. Dabord, lvnement dhorloge arrive au module Read, envoyant la valeur de 2 sa sortie. Cest seulement aprs cette lecture que lvnement arrive lentre du module Write, ce qui passe la valeur enregistre 5. Cette structure ralise en fait la fonction dun bloc Z-1 (retard dun chantillon), trs souvent utilis en thorie du traitement du signal numrique. En effet, la valeur de sortie est toujours en retard dun chantillon par rapport lentre. Comme nous lavons mentionn, la structure ci-dessus ralise la fonction Z-1. Mais avant de pouvoir rellement construire ou utiliser vous-mme de telles structures, vous devez prendre connaissance de certains points importants. Nous vous conseillons donc de poursuivre votre lecture. Si vous avez plus de deux modules connects par des cbles OBC, tous ces modules partagent le mme tat interne. Il devient alors trs important de savoir si un ordre particulier doprations de lecture et dcriture doit tre appliqu, et si oui, lequel. Par exemple, dans la structure suivante, lordre relatif de traitement des deux oprations de lecture est indni, mais elles arrivent toutes deux aprs lopration dcriture, il faut donc que cela vous convienne:

Dans la structure suivante, lordre relatif des oprations de premire criture et de seconde lecture est indni, donc cette structure est potentiellement dangereuse et doit tre gnralement vite:

REAKTOR CORE 75

Une manire plus satisfaisante de raliser la structure ci-dessus est la suivante:

Ou encore celle-l:

Mme si vous pensez qu un certain endroit, lordre relatif des oprations de lecture et dcriture nest pas important, imposer un certain ordre de traitement nest pas gnant et cest un peu plus sr. Lordre relatif des oprations dcriture est important. Lordre relatif des oprations de lecture importe peu, tant que leur ordre par rapport aux oprations dcriture est bien dni. Les connexions OBC ne sont pas compatibles avec les connexions normales. De plus, les connexions OBC correspondant des types dobjets diffrents ne sont pas compatibles entre elles. Les broches de types incompatibles ne peuvent pas tre connectes, p.ex. vous ne pouvez pas connecter une sortie de signal normal une entre OBC.

76 REAKTOR CORE

4.3. Initialisation
Comme nous commenons travailler avec des objets ayant un tat interne (dans le cas des Read et Write, la mmoire partage), il devient ncessaire de comprendre ce quest ltat initial de la structure que vous avez construite. Par exemple, si nous voulons lire la valeur dans une mmoire (au moyen dun module Read) avant que quoi que ce soit ny ait t crit, quelle sera la valeur lue ? Et si la valeur par dfaut ne nous convient pas, comment pouvons-nous la modier ? Ces questions sont rgles par le mchanisme dinitialisation de Reaktor Core. Linitialisation des structures core est effectue de la manire suivante: - dabord, tous les tats sont initialiss des valeurs par dfaut, gnralement des zros. En particulier, les mmoires partages et toutes les valeurs de sortie des modules sont rgles sur zro, moins que vous ne layez spci autrement ; - ensuite, un vnement dinitialisation est envoy simultanment par toutes les sources dinitialisation. Les sources dinitialisation comprennent la plupart des modules qui nont pas dentre: les modules Const (y compris les QuickConsts), les entres des cellules core, et certains autres. Les sources envoient gnralement leur valeur initiale comme vnement dinitialisation, p.ex. les constantes envoient leurs valeurs, et les entres des cellules core envoient les valeurs initiales reues du niveau primaire, lextrieur. Si le module est une source dvnement dinitialisation, vous en trouverez mention dans la section de rfrence des modules. Si le module nest pas une source dinitialisation, il traite les vnements dinitialisation exactement comme nimporte quel autre vnement. La plupart des sources dinitialisation sont les modules qui nont pas dentre(s) et seulement ceux-ci. Observons le fonctionnement de linitialisation avec lexemple suivant:

REAKTOR CORE 77

Ce nest quune partie de la structure, le module Read sur la gauche est connect une source dhorloge (en anglais clock), qui envoie aussi un vnement dinitialisation (comme toute source dhorloge qui se respecte). Initialement, tous les signaux de sortie ainsi que ltat interne de la chane Read-Write-Read sont xs zro.

Puis un vnement dinitialisation est envoy simultanment de la source dhorloge et de la constante 5.

Le module Read sur la gauche est trait avant le module Write et donc lvnement dhorloge y arrive avant que la nouvelle valeur ne soit crite dans la mmoire, donc la sortie de ce module Read est gale zro. Puis la nouvelle valeur est crite dans la mmoire par le module Write. Maintenant, le second module Read est lanc, gnrant une valeur de 5 sa sortie. Enn, le module additionneur est trait et gnre une somme de 5. Comme vous vous en souvenez, les entres dconnectes sont traites dans Reaktor Core comme des valeurs nulles ( moins quelles ne soient spcies autrement par un module particulier). Cela signie que ces entres reoivent aussi un vnement dinitialisation, exactement comme si un vritable module de constante nulle y tait connect.

78 REAKTOR CORE

Ci-dessus, un additionneur avec une entre dconnecte et une connecte une constante reoit deux vnements dinitialisation simultans, lun venant de la constante zro par dfaut et lautre de la vraie connexion une constante. Il peut aussi y avoir une signication spciale aux entres dconnectes qui ne sont pas des entres de signal (elles ne peuvent donc pas tre connectes une constante nulle). Par exemple, une entre matresse dconnecte dun module Write signie que la chane de la mmoire partage dmarre cet endroit et continue avec les modules connects la sortie esclave.

4.4. Construire un accumulateur dvnements


Le module accumulateur dvnements que nous voulons construire maintenant doit comporter deux entres, lune pour le valeurs dvnements accumuler, et lautre pour remettre laccumulateur zro. Il lui faut aussi une sortie qui envoie la somme totale des vnements accumuls. Nous allons construire ce module sous la forme dune macro core. Une telle macro sera facile utiliser lintrieur dune cellule core vnement:

Lintrieur de notre macro ressemble pour linstant ceci:

REAKTOR CORE 79

Le module accumulateur a besoin dun tat interne dans lequel il stockera la valeur somme des vnements accumuls. Nous allons utiliser les modules Read et Write pour construire la boucle de laccumulateur. Vous les trouverez dans le sous-menu Built In Module > Memory:

Le module que vous voyez gauche (avec une che sortant du rectangle) est le module Read, et le module droite (avec une che entrant dans le rectangle) est le module Write. En rponse aux vnements entrants, la boucle de laccumulateur doit prendre lancienne valeur et lui ajouter la nouvelle. Nous allons donc utiliser le module Read pour rcuprer lancien tat, utiliser un additionneur pour y ajouter la nouvelle valeur et utiliser le module Write pour stocker la valeur en rsultant.

Veuillez noter que lhorloge du module Read est pilote par lvnement entrant, et que le module Write (reli au Read par une connexion OBC) est bien sr situ en aval du premier, puisque nous voulons crire aprs avoir lu. La structure ci-dessus accumule les valeurs entrantes et envoie en sortie le rsultat de leur somme. Il ne manque plus que la fonction reset (le redmarrage) ainsi que la circuiterie pour dnir ltat initial.

80 REAKTOR CORE

Penchons-nous dabord sur la circuiterie de reset. Puisque nous sommes dans le monde de Reaktor Core, lentre In et la sortie Rst doivent envoyer un vnement simultanment. Si nous voulons que cette macro core soit utilisable dans des contextes divers et varis, nous devons en tenir compte. Supposons que les entres In et Rst produisent simultanment un vnement. Que voulons-nous quil arrive dans ce cas ? Le reset doit-il logiquement survenir avant que lvnement accumul soit trait, ou aprs ? Ceci est trs similaire la diffrence entre les fonctions Latch et Z-1, qui diffraient uniquement par lordre relatif de traitement de lentre du signal et de lentre de lhorloge. Nous suggrons lapproche du Latch, car ce module est trs largement utilis dans les structures Reaktor Core, et son comportement est donc plus intuitif. Dans un Latch, le signal dhorloge arrive logiquement aprs le signal de valeur. Dans notre cas, le signal de reset doit arriver logiquement aprs le signal accumul (obligeant ltat et la sortie prendre la valeur zro). Nous devons donc, dune faon ou dune autre, craser la sortie de laccumulateur avec une valeur initiale. Pour ce faire, il nous faudra utiliser un nouveau concept que nous allons dtailler maintenant.

4.5. Le mlange dvnements


Nous avons dj abord diffrentes manires de combiner deux signaux dans Reaktor Core, par exemple avec les oprations arithmtiques. Mais il nous manque toujours un moyen simple de mlanger deux signaux. Mlanger nest pas additionner. Mlanger signie prendre la dernire valeur de tous les signaux, et non les additionner. Pour mlanger les signaux, vous devez utiliser le module Merge (Mlanger en anglais...). Observons son fonctionnement. Imaginez un module Merge avec deux entres. La valeur initiale de sortie (avant lvnement dinitialisation) est bien sr zro, comme pour la plupart de modules:

Maintenant, un vnement de valeur 4 arrive la deuxime entre du module:

REAKTOR CORE 81

Lvnement traverse le module et apparat la sortie. Maintenant, la sortie du module mlangeur a pour valeur 4. Puis un autre vnement, de valeur 5, arrive la premire entre:

Lvnement traverse le module et apparat la sortie, qui passe donc la valeur 5. Maintenant, deux vnements avec les valeurs 2 et 8 arrivent simultanment aux deux entres:

L, nous devons appliquer au module Merge une rgle spciale: Des vnements simultans arrivant aux entres dun module Merge sont traits dans lordre de numrotation des entres. Il ny a toujours quun seul vnement gnr en sortie, car une sortie Reaktor Core ne peut produire plusieurs vnements simultans. Dans le cas ci-dessus, lvnement arrivant la seconde entre est trait aprs celui arrivant la premire, crasant la valeur 2 par la valeur 8, qui est transmise (seule) la sortie.

82 REAKTOR CORE

4.6. Laccumulateur dvnements avec reset et initialisation


Pour raliser la fonction reset, nous devons donc craser la sortie de laccumulateur par une certaine valeur initiale. Pour ce faire, nous pouvons utiliser le module Merge, que lon trouve dans le sous-menu Built In Module > Flow. Un moyen simple est de connecter la seconde entre du module mlangeur lentre Rst.

Lvnement de reset est dsormais directement envoy au module Merge, crasant la sortie de ladditionneur mme si un vnement accumul arrive au mme moment. De l, lvnement est envoy en sortie ainsi que dans ltat interne de laccumulateur. Dans la structure ci-dessus, la valeur arrivant lentre Rst est utilise comme nouvelle valeur par laccumulateur. Ce nest peut-tre pas une mauvaise ide, mais en tout cas il ne sagit pas vraiment dune fonction reset mais plutt dune fonction set, implmente dans le module accumulateur standard de Reaktor. Si nous voulons une vritable fonction reset, nous devons crire expressment un zro dans ltat interne, quelle que soit la valeur apparaissant lentre Rst. Nous devons donc envoyer une valeur zro au module Write chaque fois quun vnement arrive lentre Rst. Envoyer un vnement avec une valeur particulire en rponse un vnement entrant est une tche assez commune dans Reaktor Core, et nous suggrons dutiliser cette n une macro Latch, situe dans Expert Macro > Memory > Latch:

Comme nous lavons dcrit plus haut, le module Latch dispose dune entre de valeur (en haut) et dune entre dhorloge (en bas). Nous souhaitons connecter lentre Rst lentre dhorloge du Latch et une constante nulle son entre

REAKTOR CORE 83

de valeur, car nous voulons envoyer uniquement des vnements de valeur zro. Nous pouvons aussi nous rappeler que les entres dconnectes sont considres comme tant des constantes nulles (si rien dautre nest spci) et laisser lentre de valeur du Latch dconnecte:

La fonction reset devrait maintenant fonctionner correctement. La dernire chose que nous devons effectuer est de nous assurer que linitialisation est correcte. Dnissons tout dabord ce quest une initialisation correcte. Regardons dun peu plus prs comment la structure ci-dessus va tre initialise. Supposons que lvnement dinitialisation soit envoy simultanment depuis les entres In et Rst de la structure suprieure de la celllule core, ainsi que depuis la constante nulle implicite de lentre de valeur (dconnecte) du module Latch. Ce dernier, command par lentre Rst, va envoyer une valeur nulle la seconde entre du module Merge, crasant toute valeur arrivant la premire entre de celui-ci. Ainsi, un zro est inscrit dans ltat interne et envoy la sortie: cest parfait ! Cependant, cela pose un petit problme. Il est possible que lvnement dinitialisation narrive pas lun des deux ports, voire aux deux. Ceci peut survenir si par exemple aucun vnement dinitialisation narrive lentre correspondante de la cellule core, ou si cette macro est utilise dans une structure Reaktor Core plus complexe qui ne reoit pas non plus dvnements dinitialisation toutes ses entres (nous verrons plus tard comment arranger cela). Nous devons donc apporter une dernire et ultime modication notre structure, pour quelle soit plus universelle. Rendez-vous dans les proprits du module Merge et xez le nombre dentres 3:

84 REAKTOR CORE

Dsormais, mme si aucun vnement dinitialisation narrive lentre Rst, la constante nulle implicite la troisime entre (dconnecte) du Merge enverra tout de mme un vnement dinitialisation, gnrant ainsi la sortie et ltat interne initial corrects. Observons donc son fonctionnement. Nous vous suggrons de construire la structure primaire suivante utilisant le module cr Event Accum:

Le nombre de voix de linstrument doit tre rgl sur 1 et lindicateur doit tre rgl pour afcher une valeur et tre toujours actif, comme dans lexemple prcdent. Le bouton doit tre plac en mode Trigger (lancement).

REAKTOR CORE 85

Passez en mode Panel et observez les valeurs augmentant par pas de 1, toutes les secondes, et redmarrant chaque pression du bouton.

Protons de cette occasion pour vous prsenter le mode de dboguage de Reaktor Core. Comme vous lavez probablement dj remarqu, contrairement au niveau primaire de Reaktor, les valeurs la sortie des modules ne safchent plus lorsque vous laisser le curseur dessus. Cest un effet secondaire malheureux de loptimisation interne de Reaktor Core, qui a pour effet que les valeurs lintrieur des structures Reaktor Core ne sont pas accessibles depuis lextrieur. Comme nous vous entendons dj gmir, nous avons opt pour un compromis. Vous pouvez dsactiver loptimisation pour une structure core particulire, ce qui vous permet de voir les valeurs de sortie. Essayons avec la structure que nous venons de construire. Faites un clic droit sur le fond et slectionnez Debug Mode:

86 REAKTOR CORE

Vous pouvez galement activer ce mode via le bout doutils.

dans la barre

Maintenant, si vous maintenez votre curseur au-dessus dune sortie particulire, vous verrez safcher la valeur de cette sortie (ou un intervalle de valeurs):

Vous pouvez dsactiver le mode de dboguage en slectionnant nouveau la mme commande (ou en appuyant sur le mme bouton):

Le mode de dboguage est aussi automatiquement dsactiv si vous sortez de la structure, vous devrez donc lactiver nouveau pour toute autre structure. Aprs avoir dbogu notre macro, il nous faut penser lenregistrer dans un chier pour un usage ultrieur. Pour ce faire, effectuez un clic droit sur la macro et slectionnez Save As...:

REAKTOR CORE 87

Comme avec les cellules core, vous avez la possibilit dinsrer vos propres macros dans le menu. Les macros doivent tre places dans le sous-dossier Core Macros du dossier utilisateur de Reaktor:

Si des chiers se trouvent dans ce dossier Core Macros ou ses sous-dossiers, un nouveau sous-menu apparat dans le menu contextuel (menu du bouton droit):

88 REAKTOR CORE

Encore une fois, les mmes restrictions que pour le dossier Core Cells sappliquent au dossier Core Macros: - les dossiers vides napparaissent pas dans le menu, - ne placez jamais vos propres chiers dans la librairie systme, mais dans la librairie utilisateur.

4.7. Rparons le modeleur dvnements


Nous pouvons maintenant tudier plus en dtail ce qui nallait pas dans le modeleur dvnements que nous avons construit auparavant:

Le problme vient de lvnement dinitialisation. Si vous observez comment linitialisation se propage dans la structure ci-dessus, vous remarquerez les choses suivantes: - lentre x envoie ou nenvoie pas dvnement dinitialisation, selon quelle en reoit un ou non de la structure primaire lextrieur de la structure (cest la rgle gnrale pour les vnements dinitialisation des entres vnements des cellules core) ; - les constantes 4 et 0,25 envoient toujours des vnements dinitialisation. REAKTOR CORE 89

De ce fait, si, pour une raison quelconque, lvnement dinitialisation ne narrive pas lentre du modeleur, sa sortie continuera recevoir lvnement issu du dernier multiplicateur et transfrera cet vnement la structure du niveau primaire, lextrieur. Mme si ceci nest pas trop grave pour le traitement du signal (si lvnement dinitialisation en entre fait dfaut, lentre est considre comme nulle et lvnement dinitialisation de sortie est tout de mme envoy), ce nest pas exactement ce que lon attend intuitivement dun module de traitement dvnements. Nous prfrerions plutt que le module envoie un vnement en sortie uniquement en rponse un vnement entrant. Nous sommes donc confronts au problme suivant: nos modules de constantes peuvent envoyer des vnements des moments indus (ie quand il ny a pas dvnement en entre). Comme solution, nous suggrons de remplacer les modules de soustraction et de multiplication, qui ont des constantes en entre, par leurs homologues Modulation. Les macros Modulation sont situes dans la librairie de Reaktor Core dans Expert Module > Modulation:

Lappellation Modulation, mme si elle nest pas correcte 100 %, rete pourtant leur fonction, qui est dutiliser un signal pour en moduler un autre (nous le verrons clairement plus tard, lorsque nous utiliserons des signaux de contrle pour moduler des signaux audio dans des structures de bas niveau). La plupart de ces macros combinent deux signaux, un porteur et un modulateur (un peu comme dans la transmission radio). Contrairement aux 90 REAKTOR CORE

modules core arithmtiques dusine, les macros modulation gnrent un vnement de sortie uniquement en rponse un vnement lentre du signal porteur. Les vnements lentre modulateur ne relancent pas le processus de calcul. Limplmentation interne des macros modulation est trs simple: elles retiennent juste le signal modulateur via un Latch, celui-ci tant rgul par le signal porteur. Voici lexemple de la structure interne du multiplicateur modulation (lentre appele a est le modulateur):

Nous remplaons donc le module de soustraction par la macro modulation a - x ainsi que le dernier module multiplicateur par la macro modulation x mul a. Voici quoi ressemble notre structure aprs ces modications (nous avons galement remplac les modules Const par des QuickConst, mais cest sans importance):

Gnralement, dans les macros modulation, vous pouvez reconnatre lentre du modulateur grce licne de la macro (le petit dessin sur le module): la che de licne indique la position de lentre du modulateur. Dans le cas du module de soustraction, la che est en haut, donc lentre de modulation aussi. Pour le module de multiplication, cest linverse. Notez galement que la sortie de ces modules est situe en face de lentre du porteur, ce qui est un autre indice. Enn, vous pouvez placer votre curseur sur les modules et leurs entres et lire les informations qui safchent. Dans la structure ci-dessus, aucun vnement ne sera envoy, moins quun vnement narrive lentre de la cellule core: le module |x| est directement command par lvnement dentre de la cellule core ; REAKTOR CORE 91

le module de soustraction conscutif est uniquement command par la sortie du module |x|, qui envoie un vnement uniquement en rponse un vnement dentre, la constante QuickConst nayant pas deffet de commande ; - le premier multiplicateur est command soit par la sortie du module de soustraction, soit par lvnement dentre de la cellule core, mais nous avons dj vu que les deux ne peuvent survenir que simultanment ; - le second multiplicateur est command uniquement par lvnement entrant et non par la constante QuickConst. Notre structure se comporte dsormais de faon un peu plus intuitive.

5. Le traitement de laudio en dtail


5.1. Les signaux audio
Dans Reaktor Core, les signaux audio ne sont pas dun type particulier: laudio est aussi un vnement, qui ne diffre en rien des autres vnements du point de vue de la structure. La seule diffrence est que, pour les signaux audio, les vnements sont produits des instants prcis rgulirement espacs correspondant au taux dchantillonnage. Pour produire des vnements rgulirement espacs (ou tout autre suite dvnements dailleurs), nous avons besoin dune source dvnements. Comme pour les cellules core vnements, les entres des cellules core audio sont aussi des sources dvnements. Mais nous avons maintenant un type dentre supplmentaire: Le Entres Audio envoient rgulirement des vnements core lintrieur de la structure, un rythme dtermin par le taux dchantillonnage utilis lextrieur, dans la structure du niveau primaire. Les vnements sont envoys simultanment depuis toutes les entres audio de la cellule core. Les entres audio envoient galement lvnement dinitialisation dans la structure de la cellule core. Cet vnement est envoy, quoi quil arrive dans la structure de niveau primaire. Mais la valeur envoye par ces entres pendant linitialisation dpend, elle, du processus dinitialisation extrieur (dans la structure primaire).

92 REAKTOR CORE

Il existe aussi un nouveau type de sortie, utilis la place des sorties vnements: Les Sorties Audio envoient dans la structure extrieure de niveau primaire la dernire valeur reue de la structure core intrieure. Comme les sorties audio du niveau primaire nenvoient pas dvnements, aucun vnement nest envoy vers lextrieur. Nous allons maintenant essayer de reconstruire le mme modeleur que prcdemment, mais en mode audio au lieu du mode vnement. Globalement, nous pouvons utiliser exactement la mme structure, en remplaant simplement les entres et sorties vnements par leurs quivalentes audio:

Vous pourriez vous demander pourquoi nous navons pas utilis ici les macros modulation. La raison en est que nous manipulons maintenant des signaux audio. Ceux-ci envoient toujours un vnement dinitialisation, nous sommes donc srs de sa prsence aux entres. Mais vous tes libre dutiliser des macros modulation si vous prfrez. Nous aurions aussi pu essayer dinsrer la structure ci-dessus dans une macro pour pouvoir la rutiliser dans dautres structures Reaktor Core, pour le traitement des vnements comme pour celui de laudio. Dans ce cas, il est conseill dutiliser ces fameuses macros modulation, car il nest plus possible de savoir lavance quel type de signal sera trait par le module:

Et voici la structure interne de la cellule core audio pour ce cas prcis:

REAKTOR CORE 93

Pour la tester, nous allons la connecter un oscillateur en dents de scie ainsi qu un oscilloscope. Vous trouverez un oscilloscope dans Insert Macro > Classic Modular > 00 Classic Modular Display > Simple Scope (dans la structure primaire). Noubliez pas de vous assurer que le nombre de voix est bien rgl sur 1.

Nous utilisons le contrle externe de loscilloscope pour une meilleure synchronisation aux taux levs de distorsion (le bouton Ext du panneau de loscilloscope doit tre activ). Modiez lintervalle du potentiomtre Ampl environ [0.. 5] pour pouvoir observer le modelage.

5.2. Le bus dhorloge du taux dchantillonnage


Nous devons encore aborder au moins deux points pour pouvoir construire des structures audio. Le premier est la cration des cellules core audio sans entres audio. Bien sr, nous pouvons les crer, mais comment faire pour obtenir une source dvnements audio ? Le second point est que de nombreux algorithmes de traitement numrique du signal (DSP) ncessitent la connaissance du taux dchantillonnage actuel. Nous allons ici traiter de ces deux sujets. Chaque structure Reaktor Core possde une connexion spciale, appele sampling rate clock bus (bus dhorloge du taux dchantillonnage). Ce 94 REAKTOR CORE

bus (ou canal de transmission) transporte deux signaux: ceux de lhorloge et du taux dchantillonnage (en anglais clock et rate). Clock est une source de signal dans laquelle des vnements sont rgulirement envoys au taux dchantillonnage audio. Comme avec tous les signaux audio standard, cette source envoie un vnement dinitialisation. Les vnements du signal dhorloge ont toujours une valeur nulle, mais les structures utilisant ce signal doivent ignorer ses valeurs car elles pourront tre amenes voluer dans le futur. Rate est une source de signal dont les valeurs sont toujours gales au taux dchantillonnage actuel, en Hertz. Les vnements sont envoys depuis cette source lors de linitialisation ou lors des modications du taux dchantillonnage. Vous accdez au bus du taux dchantillonnage via un clic droit sur nimporte quelle entre de signal et en slectionnant Connect to SR.C pour le signal dhorloge, ou Connect to SR.R pour le signal de taux dchantillonnage.

La connexion safche ct de lentre:

Le bus dhorloge du taux dchantillonnage ne fonctionne pas lintrieur des cellules core vnements.

5.3. Rinjection dune connexion


Comme nous lavons dj vu, les rgles concernant lordre de traitement ne peuvent sappliquer si la structure contient une ou plusieurs rinjections. Cest pourquoi nous avons besoin de rgles supplmentaires qui dnissent le traitement des rinjections.

REAKTOR CORE 95

La regle principale est: lLes structures Reaktor Core ne savent pas manipuler la rinjection. Non, pas tout fait comme a. Vous pouvez effectuer des connexions de rinjection dans Reaktor Core. Mais comme le moteur de Reaktor Core ne sait pas manipuler les structures avec rinjection, il va les rsoudre. Rsoudre une rinjection signie que votre structure est modie (en interne, vous ne verrez rien lcran) de faon supprimer la rinjection. Si jamais vous ne le saviez pas, la rinjection sans dlai nest pas pensable dans le monde numrique. Il doit y avoir un dlai dau moins un chantillon dans le chemin de rinjection. Et cest justement ce que Reaktor Core va faire pendant la rsolution de la rinjection: le moteur va introduire un module de dlai dune dure gale un chantillon (Z^-1) dans le chemin de rinjection. Comme vous le savez dj, les ports o les dlais implicites ont t insrs par Reaktor Core sont indiqus par un grand Z orange:

Nous avons dj vu une structure base sur un module Read et un module Write ralisant cette fonctionnalit Z^-1. Essayons de placer une telle construction de Read et Write dans notre structure. Nous allons la placer sur le cble de la rinjection:

Dabord on crit, puis on lit (notez que le module Read est pilot par lhorloge 96 REAKTOR CORE

SR.C pour sassurer que la lecture est effectue une fois par cadence audio). Ainsi, la valeur lue a toujours un chantillon de dcalage avec la valeur crite. Et il ny a pas de rinjection dans la structure. Vous nen tes pas sr(e) ? Daccord, dplaons un peu les modules (sans toucher aux connexions):

Vous tes daccord maintenant ? videmment ! En insrant un module Z^-1, on supprime formellement la rinjection de la structure, tout en la conservant, logiquement parlant (avec un dlai dun chantillon audio). En fait, la structure interne dune macro Z^-1 est un peu plus complique quune simple paire de Read et Write. Nous verrons ceci plus en dtail dans la section suivante. Vous navez aucune inuence sur lendroit o la rsolution automatique de rinjection va tre insre. Elle est insre sur nimporte quel cble de la boucle de rinjection. Il nest mme pas garanti que cette rsolution soit toujours place sur le mme cble: elle peut changer dans la prochaine version du logiciel, ou en rponse une autre modication quelque part dans la structure, elle peut mme tre diffrente la prochaine fois que vous chargerez cette structure depuis le disque dur. Cette rsolution automatique de la rinjection est conue pour les structures pour lesquelles lendroit exact de la rsolution na pas dimportance. En particulier, ceci est bien pratique pour les utilisateurs pas vraiment cals en traitement numrique de signal et ayant du mal envisager de telles problmatiques. La rsolution automatique de rinjection leur permet dobtenir des rsultats satisfaisants. Si vous avez besoin dun contrle prcis sur les points de rsolution de rinjection, vous pouvez insrer explicitement des modules Z^-1 dans vos structures. Ces modules limineront formellement les rinjections et aucune rsolution interne ne sera ncessaire. Voici une version de la structure ci-dessus, avec une macro Z^-1 insre (elle REAKTOR CORE 97

se trouve dans le sous-menu Expert Macro > Memory):

Comme vous pouvez le voir, le gros Z orange a disparu, et vous pouvez galement constater que le point de dlai dun chantillon nest plus au mme endroit que celui qui avait t automatiquement insr: ce dernier tait sur le cble allant de la sortie de ladditionneur lentre du multiplicateur, alors quil est maintenant sur le cble entre la sortie du multiplicateur et lentre de ladditionneur. La raison dtre de la seconde entre du module Z^-1 sera explique plus loin. Vous la laisserez gnralement dconnecte. La rinjection sur les connexions OBC et sur tous les autres types de connexions non-signal (introduites plus loin) na pas de sens, cest pourquoi elle nest pas permise. Si une boucle de rinjection sans cble de signal apparat, une des connexions est indique comme invalide et considre comme absente. La marque invalide est symbolise par une croix rouge sur le port:

En revanche, les boucles de rinjection contenant des types mixes de connexions, ie avec des cbles transportant du signal et dautres types de cbles, sont tout--fait acceptes et sont rsolues de la manire habituelle, la rsolution tant insre sur lun des cbles normaux (ie transportant du signal):

98 REAKTOR CORE

En fait, cela signie que les connexions non-signal ne sont pas affectes par la rsolution de rinjection, moins de faire une boucle de rinjection entirement sans signal, ce qui nest pas palpitant.

5.4. Rinjection et macros


De manire gnrale, en ce qui concerne la rsolution des rinjections, les macros sont traites comme les modules dusine. Considrons une macro qui transfre juste le signal dentre en sortie. Voici sa structure interne:

Supposons maintenant que nous construisons une structure avec rinjection en utilisant cette macro:

La boucle de rinjection passe par deux cbles dans la structure ci-dessus, ainsi que par un cble lintrieur de la macro. O la rsolution va-t-elle se produire ? (daccord, on peut voir sur la gure ci-dessus quelle se produit lentre de ladditionneur dans ce cas particulier, mais nous savons quelle aurait pu se produire ailleurs). Imaginez un instant que Thru ne soit pas une macro mais un module dusine. Dans ce cas, il est vident que la rsolution de la rinjection ne peut pas apparatre dans ce module, mais uniquement lextrieur. Nous nous efforons de rendre les macros aussi semblables aux modules dusine que possible. Pour cette raison, par dfaut, la rsolution dune telle boucle de rinjection aura lieu lextrieur de la macro. Lendroit exact nest pas spci, mais on sait que ce sera lextrieur de la macro Thru. La rgle gnrale est la suivante: la rsolution de la rinjection apparat dans le niveau de structure le plus lev de la boucle de rinjection.

REAKTOR CORE 99

Vous pouvez cependant modier ce comportement par dfaut, cest--dire autoriser la rsolution de rinjection lintrieur des macros. En fait, vous auriez dj pu vous demander, si les macros sont vraiment traites comme les modules dusine, comment une macro Z^-1 peut-elle rsoudre une rinjection. En effet, considrons la structure suivante:

Si les macros et les modules dusine taient quivalents, rien ne devrait changer lorsque lon remplace le multiplicateur par une macro Z^-1:

Mais cette structure est diffrente, car la rinjection implicite a disparu. Cette macro Z^-1 doit bien avoir quelque chose de spcial... et en effet, elle a quelque chose de spcial. Si nous regardons lintrieur de cette macro, nous y voyons presque la mme structure que celle de notre propre implmentation de la fonction Z^-1 (cf. plus haut):

100 REAKTOR CORE

Comme vous pouvez le constater, lentre dhorloge de la macro est connecte au module Read interne. La connexion par dfaut pour cette entre nest pas une constante nulle mais lhorloge audio, car cest ce dont vous avez besoin dans la plupart des cas. Le module connect entre lentre suprieure et le module Write sera expliqu plus loin. Nous pouvons lignorer pour linstant. Jusque l, rien de spcial dans cette structure, si ce nest quelle semble raliser la fonction Z^-1 dont nous avons dj parl. Pourtant, comment le moteur de Reaktor Core sait-il que cette structure sert rsoudre les boucles de rinjection ? Bien sr, le moteur sait que cette structure peut rsoudre les boucles de rinjection, mais quant savoir si elle est prvue pour ? Ceci est gr par les proprits de la macro, et plus particulirement par le rglage Solid de la macro:

Cette proprit dit au moteur de Reaktor Core si la macro doit tre considre comme un module dusine solide pour la rsolution de rinjection, ou si elle doit tre considre comme transparente. Dans 99 % des cas, vous conserverez cette proprit active. En effet, vous ne souhaiterez gnralement pas que la rsolution de rinjection apparaisse lintrieur de vos macros.

REAKTOR CORE 101

Une bonne raison cela est que la rsolution se produisant lintrieur dune macro passe inaperue, moins douvrir la structure interne de cette macro, do le risque que certains dlais implicites de rinjection chappent votre attention. Par exemple, si nous prenons notre structure avec la macro Thru, et si nous dsactivons le rglage Solid (assurez-vous de modier ce rglage pour la bonne macro, vous pouvez le vrier via le texte Thru apparaissant dans le champ de nom des proprits):

Assurez-vous de modier la bonne macro

Dsactivez le rglage Solid

Votre structure externe est probablement toujours la mme (nous disons probablement, car on ne sait jamais o se trouve la rsolution de rinjection):

Mais si vous modiez votre structure en connectant la sortie un autre module, elle pourrait bien ressembler ceci:

102 REAKTOR CORE

Notre dlai de rsolution de rinjection semble avoir disparu. Dans une structure plus grande et plus complexe, nous pourrions facilement oublier quil y a un dlai implicite. O est pass le dlai ? Bien sr, il est maintenant dans la macro, le seul endroit que nous ne pouvons voir de lextrieur:

Une deuxime bonne raison pour conserver la proprit Solid active est que, dans certains cas, si vous la dsactivez, la fonction de la macro peut tre modie une fois la macro place dans la boucle de rinjection. Bref, facilitez-vous la vie et ne dsactivez cette proprit que si vous construisez des macros spciquement conues pour rsoudre les rinjections ce qui ne devrait pas arriver tous les quatre matins ! Revenons notre module Z^-1. Comme la proprit Solid est dsactive pour cette macro, les limites de cette macro sont compltement transparentes pour la rsolution de la rinjection. Ainsi, la macro Z^-1 nest pas vraiment traite comme un module dusine et elle peut rsoudre la rinjection de la manire dcrite plus haut dans ce texte.

5.5. Les valeurs dnormales


Dans les structures que nous avons construites jusqu prsent, lintrieur de lordinateur, les valeurs des signaux sont reprsentes par des donnes binaires dun type particulier, appeles les nombres virgule ottante, en bref les ottants. Ce type de donnes permet une reprsentation efcace dun grand ventail de valeurs. Le terme nombres virgule ottante nindique pas exactement comment les nombres sont reprsents. Cette appellation dcrit simplement lapproche utilise pour les reprsenter, laissant une grande marge de manuvre quant leur implmentation.

REAKTOR CORE 103

Les processeurs quipant les ordinateurs personnels daujourdhui utilisent la norme standard de virgule ottante de lIEEE (Institute of Electrical and Electronics Engineers). Ce standard dnit exactement comment les nombres virgule ottante doivent tre reprsents et ce que doivent tre les rsultats des oprations entre eux (p.ex. comment manipuler les limitations de prcision, etc.). En particulier, ce standard dit que, pour un groupe de valeurs virgule ottante particulirement petites qui, pour des raisons de prcision limite, ne peuvent tre reprsentes correctement de la faon normale, un autre type de reprsentation doit tre utilise. Cette autre reprsentation est appele dnormale (traduction directe de langlais denormal, terme utilis uniquement dans cette acception et ce contexte NdT). Pour une virgule ottante en 32-bit, lintervalle des valeurs dnormales est approximativement de 10-38 10-45 et de -10-38 -10-45. Les valeurs plus petites que 10 -45 en valeur absolue ne peuvent tre reprsentes et sont considres comme nulles. Comme ces nombres ont une reprsentation quelque peu diffrente de celle des nombres normaux, certains processeurs ont des difcults les manipuler. En particulier, les oprations sur ces nombres peuvent tre parfois effectues beaucoup, beaucoup plus lentement (dix fois, voire pire...) que les oprations sur les nombres normaux. Une situation classique dans laquelle les nombres dnormaux apparaissent pour des dures prolonges est celle des valeurs exponentiellement dcroissantes, comme dans les ltres, certaines enveloppes et autres structures de rinjection. Dans de telles structures, aprs que le signal dentre est revenu zro, les signaux dcroissent asymptotiquement vers zro. Asymptotiquement signie que ces signaux se rapprochent indniment du zro, sans jamais latteindre. Dans cette situation, les nombres dnormaux peuvent apparatre et rester dans la structure pendant un certain temps, entranant une augmentation signicative de lutilisation du processeur. Les nombres dnormaux peuvent galement apparatre lorsque vous modiez la prcision dun ottant dune valeur leve (64-bit) une valeur plus faible (32-bit). En effet, une valeur de 10-41 nest pas dnormale lorsquelle a une prcision de 64 bits, mais le devient avec 32 bits (le changement de prcision des ottants sera discute plus loin).

104 REAKTOR CORE

Considrons la modlisation dun ltre passe-bas analogique 1 ple avec une frquence de coupure xe 20 Hz. Nos valeurs de signal numrique correspondent aux tensions analogiques en volts. Imaginons que le niveau du signal dentre est gal 1 V (volt) sur une dure assez longue. La tension la sortie du ltre est aussi gale 1 V. Maintenant, nous passons brusquement la tension dentre zro. La tension de sortie va dcrotre selon la loi:

Vout V0e 2 f ct
o f c est la frquence de coupure du ltre (en Hertz), t est le temps (en secondes) et la tension initiale. La tension de sortie va voluer comme suit: aprs aprs aprs aprs 0,5 sec 0,6 sec 0,7 sec 0,8 sec Vout 10 -29 volt Vout 10 -33 volt Vout 10 -38 volt Vout 10 -44 volt

Oups... les nombres entre 10 -38 et 10 -45 sont dans lintervalle des valeurs dnormales. Donc, entre 0,7 et 0,8 secondes peu prs, notre tension est reprsente par une valeur dnormale. Et ce pas seulement dans le ltre: la sortie du ltre est probablement traite plus loin par la structure en aval, ce qui oblige aussi les modules suivants traiter ces valeurs dnormales. Au taux dchantillonnage de 44,1 kHz, lintervalle de temps de 0,1 seconde correspond 4410 chantillons. En supposant que la taille de tampon ASIO classique est de quelques centaines dchantillons, nous devons produire de nombreux tampons rclamant une grosse utilisation du processeur (puisque tous ces tampons sont remplis de valeurs dnormales). Si le traitement de ces tampons ncessite une utilisation processeur de prs de 100 % (ou plus), des clics audio apparaissent. De ces considrations, vous devez tirer lenseignement suivant: les valeurs dnormales sont trs mauvaises pour laudio en temps rel... Les modules du niveau primaire de Reaktor sont programms pour surveiller les valeurs dnormales susceptibles de survenir en leur sein. Pour ce faire, les algorithmes de DSP (traitement numrique du signal) ont t modis an quils produisent le moins de valeurs dnormales possible. Si vous concevez vos propres structures de bas niveau dans Reaktor Core, vous devez aussi REAKTOR CORE 105

tenir compte de ces valeurs dnormales. Pour vous aider dans cette tche, nous avons conu le module Denormal Cancel, disponible dans le sous-menu Built In Module > Math:

Le module Denormal Cancel dispose dune entre et dune sortie. Il essaie de modier lgrement la valeurs entrante pour viter quune valeur dnormale narrive la sortie: La manire dont ce module modie le signal nest pas xe, elle peut varier dune version de lapplication lautre, voire dun endroit lautre dans une structure. Actuellement, cette opration est effectue en additionnant une toute petite constante la valeur dentre. cause de la limitation en prcision, cette addition ne modie pas les valeurs sufsamment grandes (les valeurs plus grandes que 10 -10 ne sont pas modies du tout). cause de cette mme limitation en prcision, il est aussi trs improbable que le rsultat de laddition soit une valeur dnormale (dans la plupart des cas, cest mme impossible). Si, pour quelque raison que ce soit, le module Denormal Cancel ne fonctionne pas pour votre structure, vous tes videmment libre dutiliser vos propres techniques dlimination des valeurs dnormales. Mais une technique fonctionnant sur une plateforme peut ne pas fonctionner sur une autre. Notre algorithme DN Cancel sadapte chaque plateforme gre. Il est donc conseill dutiliser le module DN Cancel autant que faire se peut. Nous allons mme rchir la construction dalgorithmes alternatifs dans ce module vos contributions sur notre forum sont les bienvenues ! 106 REAKTOR CORE

Certains processeurs proposent loption de contourner le standard IEEE en dsactivant la production de nombres dnormaux, forant le rsultat valoir zro. Cette option est parfois disponible, parfois non. Comme les structures Reaktor Core sont censes tre indpendantes de la plateforme, il est fortement recommand de vous occuper vous-mme de llimination des valeurs dnormales dans vos structures, mme si votre systme particulier sen occupe dj. Comme les situations les plus classiques dapparition de nombres dnormaux sont les boucles de rinjection exponentiellement dcroissantes, et comme en traitement du son la plupart des boucles de rinjection dcroissent exponentiellement (p.ex. les ltres et les structures rinjection avec retards), nous avons dcid dinsrer llimination des valeurs dnormales dans la macro standard Z^-1. Comme vous vous en souvenez, lintrieur de cette macro ressemble ceci:

Vous pouvez maintenant expliquer quoi sert le module Denormal Cancel (DNC). Comme vous allez souvent utiliser la macro Z^-1 dans des structures rinjection, il y a une forte probabilit que des valeurs dnormales y apparaissent. Cest pourquoi nous avons dcid de mettre ce module DNC directement dans la structure de la macro Z^-1. Il existe une autre version de cette macro, nomme Z^-1 ndc, qui neffectue pas cette limination des valeurs dnormales (ndc pour no denormal cancel). Vous pouvez lutiliser dans les structures pour lesquelles vous tes certain(e) quelles ne produisent pas de valeurs dnormales (par exemple les ltres FIR Rponse Impulsionnelle Finie):

REAKTOR CORE 107

5.6. Les autres mauvais nombres


Les nombres dnormaux ne sont pas les seuls nombres mchants qui peuvent sinltrer dans vos structures tat interne, en particulier les boucles de rinjection. Il existe dautres types de mauvais nombres: les INF, les NaN et les QnaN. Nous nallons pas dtailler chacun deux, une somme consquente dinformations les concernant est dj disponible, notamment sur Internet. Limportant pour nous est dviter que ces nombres napparaissent dans nos structures. Gnralement, de telles valeurs sont le rsultat doprations invalides. Une division par zro est le cas le plus vident. Dautres cas entranent lapparition de nombres trop grands pour tre reprsents par des virgules ottantes (ceux au-dessus de 10 -38 en valeur absolue), ou allant au-del de lintervalle raisonnable pour une opration particulire. De tels nombres ont tendance se rpandre dans les structures, plus encore que les nombres dnormaux. Par exemple, ds que vous ajoutez une valeur normale une valeur dnormale, le rsultat sera non-dnormal (bref normal), moins que la deuxime valeur soit presque dnormale. En revanche, si vous ajoutez une valeur normale INF, le rsultat sera toujours INF. En plus de cette tendance se rpandre pour toujours dans les structures (... jusquau prochain reset de la structure), ces nombres ont la fcheuse habitude dutiliser beaucoup plus de temps de calcul sur certains processeurs. Cest pourquoi il nous faut tout faire pour tenter de prvenir leur apparition. Tout faire signie par exemple de vrier, chaque fois que vous divisez un nombre par un autre, quaucune division par zro ne puisse survenir. La phase dinitialisation requiert une attention toute particulire. Considrons par exemple llment de structure suivant:

Si, pour une raison quelconque, lvnement dinitialisation narrive pas lentre infrieure du module diviseur, il en rsulte une division par zro lors du processus dinitialisation. Dans ce cas, il peut tre utile dutiliser la place une macro modulation, ou carrment de trouver une autre solution, selon vos besoins.

108 REAKTOR CORE

5.7. Construction dun ltre passe-bas 1 ple


Un ltre passe-bas simple 1 ple peut tre construit en utilisant lquation: y=b*x+(1-b)*y-1 o x est lchantillon dentre, y est le nouvel chantillon de sortie, y-1 est lchantillon de sortie prcdent et b est le coefcient dnissant la frquence de coupure du ltre. La valeur du coefcient b peut tre prise gale la frquence de coupure cyclique normalise, qui peut tre calcule partir de la formule: Fc = 2**fc / fSR o fc est la frquence de coupure dsire (en Hertz), fSR est le taux dchantillonnage (en Hertz), est 3,14159 Fc est la frquence de coupure cyclique normalise (en radians pour les curieux). En fait, le coefcient b est gal seulement approximativement la frquence de coupure normalise, lerreur augmentant avec les hautes frquences de coupure. Mais, pour nos besoins, cela devrait faire laffaire, en particulier si nous navons pas besoin dun rglage prcis de la frquence de coupure de notre ltre. Commenons par crer une cellule core audio avec deux entres: lune pour lentre audio et lautre pour la frquence de coupure. Dans cette version du module, nous allons utiliser une entre vnement pour la frquence de coupure.

Prenons la bonne habitude de construire nos structures Reaktor Core en tant que macros core, pour pouvoir les rutiliser plus facilement. Nous allons aussi crer notre ltre en tant que macro. Crons donc une macro lintrieur de la cellule et crons les mmes entres pour la macro:

REAKTOR CORE 109

Construisons maintenant la circuiterie pour convertir la frquence de coupure en coupure cyclique normalise:

6.28319 est le 2*, qui est ensuite divis par le taux dchantillonnage pour former la valeur multiplier avec la frquence de coupure. Nous navons pas besoin dun multiplicateur modulation, car F est logiquement une entre de signal de contrle, nous effectuerons donc la multiplication initiale mme sil ny a pas dvnement dinitialisation lentre F. Nous effectuons la division avant la multiplication car la division est une opration relativement lourde, et le taux dchantillonnage ne change pas si souvent que cela. Si seule la frquence de coupure change, aucun vnement nest envoy au module diviseur et ainsi la division ne doit pas tre nouveau effectue. Ceci est un exemple doptimisation standard pouvant tre ralise par le concepteur de la structure core. Construisons la circuiterie ralisant lquation du ltre:

Au cas o des vnements asynchrones arriveraient lhorloge audio standard, lentre audio est contrle par un Latch. Ceci ne serait pas ncessaire dans une structure de cellule core pour laquelle nous savons que lentre audio envoie les vnements aux instants corrects. Mais, de faon gnrale, cette pratique reste toujours une bonne ide.

110 REAKTOR CORE

On utilise deux multiplicateurs modulation pour empcher que lentre F (qui peut, dans labsolu, changer de valeur tout instant) ne lance le calcul dans la boucle de rinjection. Lappellation macros modulation devrait maintenant tre plus claire: ici, le signal issu de la frquence de coupure sert moduler les gains de la boucle de rinjection. Lutilisation du Latch est une technique standard de Reaktor Core pour sassurer que les vnements entrants ne relancent pas le calcul de faon intempestive. Elle est galement largement employe par les macros modulation et dans dautres situations semblables. Le module Z^-1 sert enregistrer la valeur de la sortie prcdente et envoie automatiquement un vnement avec cette valeur chaque battement de la cadence audio. Le module prvient aussi lapparition ventuelle de valeurs dnormales. Les utilisateurs habitus au traitement numrique du signal devraient remarquer que la structure ressemble beaucoup aux diagrammes de ltres DSP standard. Le module Merge (Mlangeur) situ la sortie de ladditionneur garantit que ltat du ltre est toujours zro aprs linitialisation, mme si le signal dentre a une valeur non nulle cet instant. Noubliez pas de placer le convertisseur pitch-vers-frquence dans la structure de la cellule core, et vous tes prt(e) pour le test:

Nous suggrons dutiliser la structure de test suivante (noubliez pas de rgler la polyphonie de linstrument sur 1 voix):

Le potentiomtre Cutoff (Frquence de coupure en anglais) doit tre rgl dans lintervalle [0.. 100]. Faites attention aux frquences de coupure trop leves: en raison de lerreur croissante sur le coefcient du ltre, le ltre devient instable aux hautes frquences. REAKTOR CORE 111

Un meilleur design du ltre limiterait au moins les valeurs de la frquence de coupure lintervalle pour lequel le ltre est stable. Dans notre cas, il faudrait limiter le coefcient b lintervalle [0.. 0,99] ou quelque chose comme a. Les techniques de limitation des valeurs seront dcrites plus loin dans ce texte. Voici ce que vous devriez dsormais voir en mode Panel:

Dplacez le potentiomtre de la frquence de coupure (Cutoff) et observez lvolution de la forme du signal.

6. Le traitement conditionnel
6.1. Le routage des vnements
Dans Reaktor Core, les vnements ne doivent pas systmatiquement voyager par les mmes chemins. Il est possible de modier dynamiquement ces chemins. Pour ce faire, vous pouvez utiliser le module Router (Built In Module > Flow > Router):

Le module Router reoit des vnements son entre signal (celle du bas) et les envoie soit vers sa sortie 1 (suprieure), soit vers sa sortie 0 (infrieure). La sortie vers laquelle les vnements sont envoys dpend de ltat courant du routeur, contrl par lentre Ctl (lentre du haut).

112 REAKTOR CORE

Lentre Ctl reoit une connexion dun nouveau type, compatible ni avec les signaux normaux, ni avec les signaux OBC. Il sagit dun signal de type BoolCtl (boolean control, contrle binaire en anglais). Le signal BoolCtl ne peut tre que dans ltat true ou ltat false (vrai ou faux, on ou off, 1 ou 0...). Si le signal de contrle est dans ltat true, les vnements sont envoys la sortie 1. Si le signal de contrle est dans ltat false, les vnements sont envoys la sortie 0. Dans Reaktor Core, les signaux de contrle ont une diffrence notable avec les signaux normaux: ils ne transmettent pas dvnements et de peuvent donc piloter seuls aucun traitement. Pour contrler un routeur, vous avez bien sr besoin dune source de signal de contrle. La source la plus commune est sans doute le module Comparison, disponible dans Built In Module > Flow > Compare:

Ce module compare les deux signaux dentre et transmet le rsultat sous la forme dun signal BoolCtl. Lentre suprieure est suppose tre gauche du signe de comparaison et celle du bas droite du signe. Le module afchant > produit donc un signal de contrle true si la valeur lentre suprieure est plus grande que celle lentre infrieure, et un signal false dans le cas contraire. Vous pouvez changer le critre de comparaison dans les proprits du module:

REAKTOR CORE 113

Les critres disponibles sont: = gal != diffrent () <= infrieur ou gal () < strictement infrieur >= suprieur ou gal () > strictement suprieur Il est bien sr possible de connecter plusieurs routeurs au mme module de comparaison. Ils changeront dtat simultanment. Le module Router spare le chemin dvnements en deux branches. Assez souvent, ces branches se rejoignent en aval:

En fonction du rsultat de la comparaison, la structure ci-dessus va soit inverser le signal dentre, soit le laisser inchang. Une implmentation alternative de cette structure est possible:

Dans cette version, la sortie 0 du Router est dconnecte, le routeur fonctionne donc comme un interrupteur (ou un gate), laissant passer les vnements seulement sil est dans ltat true. La valeur inverse arrive alors la deuxime entre du module Merge (mlangeur), crasant la valeur non inverse qui arrive toujours la premire entre. Si le routeur est dans ltat false, linverseur ne reoit pas dvnement et nenvoie rien la seconde entre du Merge, qui transmet donc le signal non modi sa sortie. Les branches sont le plus souvent mlanges avec un module Merge. Mais, thoriquement, vous pourriez utiliser la place nimporte quel autre module (p.ex. un module arithmtique comme ladditionneur, le multiplicateur, etc.). 114 REAKTOR CORE

Les routeurs traitent lvnement dinitialisation exactement comme les autres vnements. Ainsi, en utilisant des routeurs, on peut ltrer lvnement dinitialisation pour lempcher dapparatre dans certaines parties de la structure.

6.2. Construction dun limiteur de signal


Construisons la structure dune macro Reaktor Core qui limitant le signal audio un niveau spci):

Si le signal dentre est infrieur au seuil, il est envoy la sortie 0 du routeur puis, via le module Merge, la sortie de la structure. Sinon, le signal est envoy la sortie 1 o il contrle le loquet (Latch), envoyant au module Merge la valeur seuil la place du signal. La mme chose se produit lors de linitialisation. Veuillez remarquer que la sortie de cette structure ne change pas automatiquement quand le seuil change. Le nouveau seuil sera simplement utilis pour tous les vnements ultrieurs de lentre de signal. Ceci est assez similaire au comportement des macros modulation, pour lesquelles les changements du modulateur ne produisaient pas dvnements de sortie. Voici une structure permettant de tester le module limiteur que nous venons de construire (une cellule core audio est utilise):

Et voil ce que vous voyez sur le panneau:

REAKTOR CORE 115

En fait, vous trouverez un grand nombre de macros de limiteurs modulation de ce genre dans le menu Expert Macro > Clipping.

6.3. Construction dun oscillateur en dents de scie simple


Construisons maintenant un simple oscillateur en dents de scie qui gnre une forme donde en dents de scie damplitude 1 une frquence spcie. Nous allons utiliser lalgorithme suivant: Augmente le niveau de sortie une vitesse constante et, ds quil dpasse 1, rabaisse-le de 2. On pourrait galement proposer de rinitialiser le niveau 1 au lieu de le rabaisser de 2, mais cest gnralement une mauvaise ide car nous pourrions difcilement maintenir la frquence doscillation demande. La vitesse de croissance du signal dnit la frquence de loscillateur selon lquation suivante: d = 2f / fSR o d est laugmentation du niveau pour un chantillon audio, f la frquence de loscillateur et fSR le taux dchantillonnage. Nous allons dabord construire la circuiterie qui traitera cette vitesse de croissance:

Nous avons maintenant besoin de la boucle dincrmentation. Il est plus que temps dutiliser les modules Read et Write exactement comme nous lavons fait prcdemment avec laccumulateur: 116 REAKTOR CORE

Le module Read lance lincrmentation du niveau chaque vnement audio. La somme de lancien niveau et de lincrment est ensuite compare 1 et envoye soit directement lcriture du rsultat, soit la circuiterie de bouclage. La troisime entre du module Merge assure linitialisation correcte de loscillateur zro. Thoriquement, le module qui soustrait 2 au niveau du signal devrait tre une macro modulation, mais cela nous importe peu ici, puisque le Merge crase de toute faon le rsultat de linitialisation. Voici la structure de test que nous vous suggrons (noubliez pas le convertisseur P2F lintrieur de la cellule core):

Et voil la vue en mode Panel:

REAKTOR CORE 117

7. Les autres types de signaux


7.1. Les signaux ottants
Le type de signal le plus couramment utilis en DSP (traitement numrique du signal) sur les ordinateurs personnels modernes est la virgule ottante (ou ottant pour faire court). Les valeurs ottantes peuvent reprsenter une large gamme de valeurs, jusqu 1038 (en mode 32-bit) voire mme 10308 (en mode 64-bit). Aussi utiles soient-elles, les virgules ottantes ont un inconvnient: elles sont dune prcision limite. La prcision est plus leve en mode 64bit, mais elle reste limite. La prcision des valeurs en virgules ottantes est limite pour des raisons techniques: si elles ntaient pas limites, ces valeurs ncessiteraient une quantit innie de mmoire pour les stocker. Cest pour la mme raison que vous ne pouvez pas crire la reprsentation dcimale complte dun nombre transcendental (comme ) sur une feuille de papier nie, aussi grande soit-elle. Mme si vous connaissiez tous les chiffres aprs la virgule (mais comment le pourriez-vous, puisquil y en a un nombre inni, mais mme si vous le pouviez), essayez juste de les crire tous: 3, 1, 4, 1, 5, 9, etc. Il arrivera un moment o vous manquerez de papier. Le traitement de tels nombres aurait galement demand un processeur inniment rapide. Les signaux et lespace mmoire que vous avez utiliss jusquici sont reprsents par des nombres en virgules ottantes en 32-bit. Reaktor Core vous offre la possibilit dutiliser des ottants en 64-bit au cas o vous auriez besoin dune prcision suprieure (ou dun intervalle de valeurs plus grand, bien quil soit difcile dimaginer que lintervalle allant de 10-38 1038 puisse tre insufsant). Par dfaut, tous les traitements de Reaktor Core sont effectus en ottants de prcision 32-bit. Ceci ne signie pas forcment que les signaux sont traits comme des ottants en 32-bit, mais que le traitement utilisera au minimum des ottants en 32-bit (bien que des ottants en 64-bit puissent occasionnellement tre utiliss comme rsultats intermdiaires). Vous pouvez modier la prcision des ottants pour les modules individuels ou pour les macros compltes. Pour les modules individuels, vous effectuez

118 REAKTOR CORE

ce rglage via la proprit FP Precision (oating point precision, prcision de la virgule ottante en anglais) de ces modules:

default 32 bit 64 bit

utilise la prcision par dfaut pour la structure en question utilise une prcision dau moins 32 bits utilise une prcision dau moins 64 bits

Changer la prcision pour un module signie que, dans ce module, le traitement sera effectu en utilisant la prcision spcie, et que la valeur de sortie sera aussi gnre en utilisant cette prcision. Vous pouvez galement changer la prcision par dfaut pour des structures entires si vous faites un clic droit sur le fond et slectionnez Owner Properties pour ouvrir les proprits du module en question:

La prcision par dfaut sera effective pour tous les modules lintrieur de la structure en question, y compris les macros, tant quils ou elles ne dnisREAKTOR CORE 119

sent pas leur tour leur propre prcision (ou bien, pour les macros, un autre prcision par dfaut pour les lments quelles contiennent). Les signaux en virgule ottante normaux, dune prcision de 32 ou 64 bits, sont parfaitement compatibles entre eux et peuvent tre librement interconnects. Les signaux OBC de prcisions diffrentes ne sont pas compatibles entre eux (car vous ne pouvez pas avoir de stockage qui soit la fois en 32 et en 64 bits). Ainsi, pour les signaux OBC, les rglages default, 32 bit et 64 bit sont considrs comme tant diffrents et incompatibles entre eux, car leur prcision effective par dfaut peut tre modie en changeant les proprits de lune des macros en question. Les modules dentre et de sortie des structures du niveau suprieur des cellules core envoient et reoivent toujours des ottants de 32 bits, car cest le type de signal utilis dans les connexions audio et vnements du niveau primaire de Reaktor.

7.2. Les signaux entiers


Voici un autre type de donnes couramment gres par les processeurs modernes. Ce type de donnes est en fait plus important encore que les virgules ottantes. Il sagit des entiers. Les nombres entiers sont reprsents et traits avec une prcision innie. Bien que la prcision des entiers soit innie, lintervalle des valeurs entires reprsentables est limit. Pour les entiers reprsents sur 32 bits, les valeurs peuvent aller jusqu plus de 109 (un milliard). La prcision innie des entiers, tant pour le stockage que pour le traitement, est possible uniquement parce quils nont aucun chiffre aprs la virgule. On peut donc les crire avec un nombre ni de chiffres. crivons le nombre de secondes quil y a dans une heure: 3, 6, 0, 0, et cest tout. Cest aussi simple que a! Encore une fois, si vous essayez dcrire la valeur de , vous naurez jamais ni: 3, 1, 4, 1, 5... avec les entiers, point de tout cela. Alors que la virgule ottante est une reprsentation naturelle pour les valeurs changeant continment (comme les signaux audio), les entiers sont une reprsentation plus approprie pour les valeurs changeant de manire discrte (p.ex. les compteurs).

120 REAKTOR CORE

De nombreux modules de Reaktor peuvent tre commuts en mode entier, dans lequel ils attendent des valeurs entires en entre, les traitent comme telles (ie avec une prcision innie) et produisent des valeurs entires en sortie. Comme exemples, on peut citer ladditionneur, le multiplicateur ou le soustracteur. Certains modules ne fonctionnent mme quen mode entier. Dans Reaktor Core, les valeurs entires ont une longueur minimale de 32 bits garantie. La commutation entre les types entier et ottant (si le module en est capable) est effectue via la proprit Signal Type du module:

Un module rgl sur le mode entier traite les valeurs dentre comme des entiers et produit des valeurs entires en sortie. Vous pouvez dterminer si un module est en mode entier grce lapparence diffrente de ses entres et sorties:

Ce rglage nexiste pas pour les macros, car normalement vous ne construisez pas les structures exactement de la mme faon selon que vous leur rservez des entiers ou des ottants (sauf peut-tre pour les structures trs trs simples). Les signaux entiers peuvent tre tout fait connects des ottants, mais les cbles reliant des signaux de types diffrents effectuent automatiquement la conversion, ce qui peut ncessiter une certaine quantit de ressources processeur. lheure o nous crivons ces lignes, cette quantit est dcelable sur les PCs REAKTOR CORE 121

et assez signicative sur les Macs. Les connexions OBC de types entier et ottant sont bien sr incompatibles entre elles. Une telle conversion peut entraner une perte dinformations. En particulier, les grands entiers ne peuvent pas tre prcisment reprsents par des ottants, et le contraire est encore plus vrai. Les grands ottants (plus grands que le plus grand entier reprsentable) ne peuvent pas tre reprsents par des entiers du tout, auquel cas la conversion est indnie. Durant la conversion ottant vers entier, les valeurs sont arrondies lentier approximativement le plus proche. Le terme approximativement signie, par exemple, que la valeur 0,5 sera arrondie soit 0, soit 1, mme si vous pouvez tre peu prs sr que la valeur 0,49 sera arrondie 0 et 0,51 1. Il est important de comprendre que la commutation dun traitement complet en mode entier nest pas la mme chose que la simple conversion de sa sortie en entier. Prenons lexemple suivant: nous additionnons les deux nombres 2,4 et 4,3 en tant que ottants. Le rsultat est 6,7, ce qui, une fois converti en entier, donne 7. La sortie de la structure suivante est donc 8:

Si nous passons maintenant le premier additionneur en mode entier, au lieu dadditionner 2,4 et 4,3, nous allons additionner leurs valeurs arrondies, soit respectivement 2 et 4, ce qui donne 6. Le rsultat nal sera donc 7:

Les entres dhorloge ignorent compltement leurs valeurs entrantes, cest pourquoi elles sont toujours en virgule ottantes. La conversion du type de signal ne sera donc pas effectue pour les signaux utiliss uniquement comme horloges:

122 REAKTOR CORE

Ici, lentre dhorloge du module Read reste ottante, bien que le module ait t pass en mode entier (les ports OBC ont la mme apparence, quils soient en mode entier ou ottant). La rinjection entire est rsolue de la mme manire que la rinjection ottante en insrant un module Z^-1 en mode entier (bien sr, il ny a plus besoin du systme dlimination des valeurs dnormales).

7.3. Construction dun compteur dvnements


Construisons un module compteur dvnements. La fonction de cette macro est similaire celle de laccumulateur dvnements construit plus haut, mais au lieu de sommer les valeurs des vnements, ce module va simplement les compter. Le type entier semble le choix logique pour compter:

Tous les modules prfabriqus ainsi que la sortie ont t rgls en mode entier. La macro ILatch est utilise ici la place du Latch pour redmarrer le circuit. Les deux macros font exactement la mme chose (et se trouvent dans le mme menu), mais la premire travaille sur les signaux de type entier. Une macro modulation pour les entiers est aussi utilise (vous la trouvez dans le menu Expert Macro > Modulation > Integer). Les deux entres nont pas besoin dtre rgles en mode entier, car elles fournissent uniquement des signaux dhorloge. Jetons un il sur la structure de la cellule core vnement contenant la macro:

REAKTOR CORE 123

Nous voyons que la sortie de ce module nest pas rgle sur le mode entier (dailleurs cest impossible). Ceci est d au fait que la cellule core doit, en tant que module du niveau primaire de Reaktor, sortir un vnement normal du niveau primaire, qui est forcment en virgule ottante. Voici une structure de test pour ce compteur:

... et lallure du panneau correspondant:

7.4. Building a rising edge counter macro


Nous allons maintenant discuter de la technique de comparaison de signe, qui pourra vous tre utile dans la construction de structures Reaktor Core. La comparaison de signe sattache au signe des nombres (plus ou moins) sans prter attention leur valeur. Bien sr, plus est plus grand que moins. Ainsi, par exemple: 3,1 est de signe plus grand que 1,4 2,1 de mme signe que 5,0 -4,5 est de mme signe que 2,9 Vous pourriez implmenter la comparaison de signe via plusieurs modules de comparaison et plusieurs routeurs, mais il existe une technique plus efcace. Dans Reaktor Core, la comparaison de signe peut tre effectue via le module Compare Sign (Built In Module > Flow > Compare Sign):

124 REAKTOR CORE

Vous pourriez implmenter la comparaison de signe via plusieurs modules de comparaison et plusieurs routeurs, mais il existe une technique plus efcace. Dans Reaktor Core, la comparaison de signe peut tre effectue via le module Compare Sign (Built In Module > Flow > Compare Sign):

Le module produit en sortie un signal BootCtl que vous pouvez connecter un routeur. Lune des utilisations possibles de ce module est la dtection de fronts montants dans le signal entrant. Nous entendons par front montant une partie croissante du signal. Nous allons construire ci-dessous un compteur de fronts montants sous forme de macro Reaktor Core:

Remarquez que la sortie est en mode entier, puisque le dcompte est, nen pas douter, une valeur entire. La premire chose dont nous avons besoin est une macro de dtection de front qui convertira le front dtect en vnement:

Voici comment la macro de dtection peut tre implmente:

La chane OBC en bas de la structure conserve la valeur prcdente du signal dentre. Comme nous le voyons, la nouvelle valeur est enregistre aprs que REAKTOR CORE 125

lancienne a t lue. Le dernier module Write de la chane soccupe de la tche dinitialisation pour lemplacement mmoire de la valeur prcdente. Nous initialisons cet emplacement la valeur 1, an que la premire valeur positive soit compte comme front montant. Nous avions dj vu comment utiliser le module Merge pour initialiser lemplacement mmoire. Le module Write la n de la chane OBC est une autre technique dinitialisation de la mmoire interne. Il doit tre le dernier module Write dans la chane, pour pouvoir craser les rsultats dj enregistrs par les modules Write en amont. Le module Router, contrl par le module Sign Comparison, va slectionner les vnements, ne laissant passer que ceux pour lesquels le signe passe de ngatif positif (bref les fronts montants). Il nest pas clair quun tel module envoie un vnement pendant linitialisation, en particulier parce que lemplacement mmoire est encore zro lors du traitement des vnements dinitialisation, et le signe de zro est indni. Nous pouvons modier cette structure de manire viter quun vnement ne soit envoy lors de linitialisation:

Le module ES Ctl est un contrle sensible aux vnements. Le signal de contrle quil produit est dans ltat true seulement si un vnement arrive lentre du module. Puisque lentre est dconnecte dans la structure cidessus, autrement dit connecte une constante nulle, la seule fois o le signal de contrle est gal true est lors de linitialisation. Le second routeur va donc bloquer tout vnement survenant pendant linitialisation et laisser passer tous les autres. Remarquez que nous avons ici un exemple dun module qui nenvoie pas dvnement sa sortie pendant linitialisation.

126 REAKTOR CORE

Maintenant que nous avons un module dtecteur, nous pouvons le connecter la circuiterie de comptage que nous avons dj:

La fonction de la structure ci-dessus doit tre claire. Le module Detect envoie un vnement chaque fois quil dtecte un front montant, et ces vnements sont compts par le module Evt Cnt. Pour construire un circuit de test, plaons cette macro dans une cellule core audio et comptons les fronts montants dune forme donde en dents de scie. La structure interne de la cellule core ressemble celle-ci:

... et la structure du niveau primaire ceci:

(noubliez pas de rgler les proprits du Meter comme indiqu dans les exemples prcdents). Voici ce que vous devriez voir dans le panneau:

REAKTOR CORE 127

La vitesse de changement du nombre doit correspondre la frquence de loscillateur, dnie par le potentiomtre Pitch. Avec un Pitch valant zro, la frquence de loscillateur est denviron 8 Hz, donc le nombre devrait tre incrment environ 8 fois par seconde.

8. Les tableaux
8.1. Introduction aux tableaux
Imaginez que vous vouliez construire un module slecteur de signal audio qui, en fonction de la valeur dun signal de contrle en entre, prenne le signal de lune des quatre entres audio:

Pour implmenter ce module, une premire approche serait dutiliser des modules Router. Mais il y a une autre possibilit. Nous pouvons utiliser une autre fonctionnalit de Reaktor Core: les tableaux. Un tableau unidimensionnel est une srie ordonne de donnes du mme type qui peuvent tre rfrences par leur rang dans la collection, ie leur index. Par exemple, prenons un groupe de 5 nombres en virgule ottante: 5.2 16.1 -24.0 11.9 -0.5

Dans Reaktor Core, les indices des lments dun tableau dmarrent zro: le premier lment a pour index 0. Ici, llment dindex 0 est 5,2, celui dindex 1 est 16,1, celui dindex 2 est 24,0 et ainsi de suite. Voici une reprsentation de ce tableau: Index Valuer 0 5.2 1 16.1 2 -24.0 3 11.9 4 0.5

128 REAKTOR CORE

Dans Reaktor Core, les tableaux sont crs grce au module Array (ce qui signie... Tableau en anglais) que lon trouve dans le sous-menu Built In Module > Memory > Array:

Un module Array a une seule sortie, de type Array OBC. La taille du tableau (le nombre dlments) et le type de donnes contenues sont spcis dans les proprits du tableau:

Par exemple, pour le tableau ci-dessus, nous devons spcier le type de donnes oat (virgule ottante) et une taille (size) de 5. Veuillez noter que, comme les indices des tableaux partent de zro, lintervalle dindices pour un tableau de taille 5 serait de 0 4 (vous pouvez aussi le voir dans le tableau ci-dessus). Les signaux de type Array OBC correspondant aux diffrents types de donnes ne sont pas compatibles entre eux. Pour faire rfrence un lment dun tableau, vous devez spcier son index. Pour ce faire, vous pouvez utiliser le module Index situ dans Built In Module > Memory > Index:

Lentre OBC matresse (en bas) du module Index doit tre connecte la sortie esclave dun module tableau. Le type de connexion de lentre matresse doit correspondre au type du tableau, vous devez le spcier dans les proprits du module Index: REAKTOR CORE 129

Et maintenant la connexion:

Lentre suprieure du module Index est toujours de type entier et reoit la valeur dindex. Ici, nous faisons une rfrence llment dindex 1 dans le tableau:

Notez que le module Const a aussi t rgl sur le mode entier (indiqu par le symbole de sa sortie). Ceci nest pas ncessaire, puisquune conversion automatique est effectue sinon, mais cest plus joli. Nous aurions aussi pu utiliser une QuickConst:

La sortie du module Index est de type Latch OBC. Ceci signie que vous pouvez y connecter un module Read ou Write (ou plusieurs dentre eux). Bien entendu, vous devez veiller ce que les modules Read et Write soient rgls sur le mme type de donnes que les modules Array et Index. Ici, llment dindex 1 du tableau est initialis 16,1:

130 REAKTOR CORE

Si un index hors de lintervalle est envoy au module Index, le rsultat de laccs au tableau donne une valeur indnie. La structure ne plante pas, mais il est impossible de savoir quel lment sera lu, ou mme si un lment sera effectivement lu. Ceci signie que si vous ntes pas certain(e) de la taille du tableau, vous devriez la limiter via des modules Router ou des macros de la librairie

8.2. Construction dun dtecteur de signal audio


Revenons la construction de notre module slecteur de signal audio:

Voici une structure interne vide pour construire ce module:

Nous allons utiliser un tableau de 4 lments en virgule ottante pour stocker nos signaux audio:

Voici les proprits du module tableau:

REAKTOR CORE 131

Pour crire les valeurs dentre dans le tableau, nous utilisons une macro standard Write [] disponible dans Expert Macro > Memory > Write []:

Cette macro dispose en interne dun module Index et dun module Write, effectuant lcriture dans llment du tableau avec lindex spci:

Lentre suprieure reoit bien sr la valeur crire. Lentre [] reoit lindex auquel lcriture doit avoir lieu. Lentre M reoit la connexion OBC un tableau de ottants la prcision par dfaut, et la sortie S est une connexion thru (ie qui prolonge simplement la chane OBC), semblable celle dautres modules OBC comme Read et Write. Lentre M et la sortie S sont des ports de macro dun type diffrent de celui que nous avons utilis jusqu prsent. De tels ports peuvent tre insrs en slectionnant lentre Latch du menu dinsertion de ports (le troisime type de port est le BoolCtl):

132 REAKTOR CORE

Les ports de type Latch peuvent servir aux connexions OBC Latch (entre les Reads et les Writes) ou pour les connexions OBC Array. Ces rglages sont effectuer dans les proprits du port:

Rgler le type de connexion sur Latch ou Array dnit le type de connexion OBC. Pour les ports de la macro Write [], ce rglage est visiblement sur Array. Le module avec deux lignes horizontales parallles est le module R/W Order, que lon trouve dans Built In Module > Memory > R/W Order:

Il ne fait rien dautre que transmettre la connexion de son entre maresse (en bas) sa sortie esclave. Lentre suprieure na absolument aucun effet, si ce nest celui daffecter lordre de traitement des modules. Tout ce qui est REAKTOR CORE 133

connect la sortie S de la macro sera trait aprs le module Write, ce qui ne serait pas forcment le cas si ce module R/W Order tait absent de la structure. En labsence du module R/W Order, la fonctionnalit de la macro Write [] naurait t ni assure ni intuitive, car lutilisateur se serait alors attendu ce que tout ce qui est connect en aval de la macro Write [] soit trait aprs elle. En gnral, de tels problmes surviennent uniquement avec les connexions OBC; vous devez donc veiller placer des modules R/W Order aux endroits ncessaires dans les macros que vous concevez. Le module R/W Order, tout comme les ports OBC, dispose dune proprit Connection Type. Pour ce module, cette proprit ne contrle que le type des ports M et S, lautre entre tant systmatiquement en mode Latch. Pour plus de dtails, veuillez vous rfrer la description du module R/W Order dans la section de rfrence. Construisons le circuit permettant dcrire les signaux dentre dans le tableau:

134 REAKTOR CORE

Les quatre modules Write [] se chargent denregistrer les valeurs audio entrantes dans le tableau. Nous avons maintenant besoin de lire lune des quatre valeurs. Nous suggrons dutiliser la macro Read [] (Expert Macro > Memory > Read []):

Cette macro effectue la lecture dans un lment dun tableau, dont lindex est prcis par lentre entire au milieu. Lentre du haut est lentre de lhorloge pour les oprations de lecture la macro envoie la valeur lue la sortie du haut, en rponse un vnement entrant cette entre du haut. Les ports en bas sont bien sr les connexions de tableau matresse et esclave. Maintenant, quoi connectons-nous son entre matresse ? Bien sr, nous ne pouvons la connecter directement au module tableau, parce que nous voulons que lopration de lecture soit effectue aprs toutes les oprations dcriture (il pourrait sinon y avoir un dlai effectif dun chantillon, ou pas, bref rien de trs able). Nous ne pouvons pas non plus la connecter lun des modules Write []. Cela ne rsoud pas notre problme. Nous suggrons plutt de connecter les modules Write [] en ribambelle derrire le module tableau, autrement dit de les connecter en srie, puis de connecter le module Read [] la sortie du dernier module Write []. Le module Read [] est alors effectivement le dernier.

REAKTOR CORE 135

Maintenant, que connectons-nous lentre index du module Read [] ? Si nous voulons que notre valeur de slection soit entre 1 et 4, nous devons soustraire 1 la valeur dentre Sel. Notez que nous effectuons une soustraction entire (puisque Sel est juste une entre de contrle, nous navons pas vraiment besoin dune macro modulation ici):

La dernire chose faire est de cadencer le module de lecture via lhorloge du taux dchantillonnage (puisquil sagit dun slecteur audio):

De faon gnrale, nous aurions d prendre soin de limiter la valeur dentre Sel lintervalle correct, mais pour nous simplier la tche nous nallons pas le faire maintenant. Voici la structure de test que nous suggrons (nous avons plac la macro dans une cellule core audio):

136 REAKTOR CORE

Le potentiomtre Sel est rgl pour commuter entre les quatre valeurs allant de 1 4. Afchez la vue du panneau et observez les diffrentes formes donde en fonction du rglage du potentiomtre:

REAKTOR CORE 137

8.3. Construction dun dlai


Maintenant que nous possdons une certaine exprience avec les tableaux, construisons une macro simple de dlai audio. Le module doit ressembler quelque chose comme a:

... ou encore mieux, quelque chose comme a (pour ce faire nous devons rgler la proprit Port Alignment de la macro sur top):

Lentre T reoit le temps de dlai, en secondes. Si vous jetez un il sur un appareil de dlai analogique bande, vous verrez une boucle de bande combine des ttes de lecture et denregistrement. Pour tre prcis, il y a aussi une tte deffacement, mais pour faire simple nous pouvons imaginer que la tte denregistrement effectue la fois la tche dcriture et celle deffacement.

Si nous voulons simuler cet appareil sous forme numrique, il nous faut une sorte de boucle de bande digitale. De par la nature discrte du monde numrique, la boucle de bande digitale contiendra un nombre ni dchantillons audio. Ces chantillons seront enregistrs et lus au taux dchantillonnage audio:

138 REAKTOR CORE

Un choix naturel pour cette boucle de bande digitale est un tableau dont la taille est gale au nombre dchantillons enregistrs dans la boucle. Dans un dlai analogique bande, le temps de dlai dpend de la distance entre les ttes de lecture et denregistrement - qui est xe - et de la vitesse de dlement de la bande - qui est variable - et ce pour des raisons techniques videntes: il est bien plus facile de faire varier la vitesse de la bande que lcartement des ttes... Dans le monde digital, il se trouve que cest le contraire: faire varier la vitesse de la bande revient effectuer une conversion du taux dchantillonnage entre la bande digitale et la sortie, alors que faire varier la distance entre les ttes est relativement simple. Cest donc ce que nous allons faire de ce pas:

Il y a une autre diffrence notable avec le monde analogique. Dans le monde analogique, la bande se dplace. Si nous voulions dplacer notre bande digitale, nous serions obligs de copier tous les lments du tableau dans llment voisin pour chaque battement de lhorloge audio, ce qui coterait cher en ressources processeur. la place, nous allons plutt dplacer les ttes. De tout ceci, nous pouvons conclure que nous avons besoin des lments suivants:

REAKTOR CORE 139

Tableau Index dcriture Index de lecture

notre simulation de boucle de bande digitale notre tte denregistrement notre tte de lecture

Les index de lecture et denregistrement se dplacent donc travers le tableau, chantillon par chantillon. Au moment o lun deux atteint la n du tableau, il doit tre renvoy au dbut du tableau (ce qui correspond scotcher la n de la bande avec son dbut). La diffrence entre la position de lecture et celle dcriture correspond au temps de dlai mesur en chantillons. Cette technique est en fait assez classique en programmation, on lappelle la technique du tampon circulaire (circular buffer), ou tampon en anneau (ring buffer). Commenons par programmer la tte denregistrement. Cette fonction est trs similaire loscillateur en dents de scie que nous avons dj programm, si ce nest que les calculs sont effectus en mode entier. Le pas dincrmentation vaut 1 (pour chaque tic-tac audio), lintervalle des valeurs de sortie va de 0 N-1, o N est la taille du tableau. Plaons cette circuiterie dans une macro RecordPos:

Lentre N doit recevoir le nombre dlments du tableau, et la sortie Pos doit gnrer la position courante denregistrement (lindex). Voici comment implmenter cette macro (comparez avec limplmentation de loscillateur en dents de scie vu plus haut):

Notez que le module de comparaison est rgl sur >=. Le signe = tait sans importance pour loscillateur en dents de scie, mais pour les calculs sur les entiers, la diffrence se rvle gnralement dcisive. La condition >= garantit que la tte denregistrement natteindra jamais la valeur N. Au niveau suprieur, nous crons un module tableau et le connectons ce RecordPos via le module Size [] (disponible dans Built In Module > Memory > Size []), qui renvoie la taille du tableau: 140 REAKTOR CORE

La taille du tableau peut aller jusqu 44100 emplacements. Ceci nous autorise jusqu 1 seconde de dlai (une seconde moins un chantillon, pour tre prcis) au taux dchantillonnage de 44,1 kHz:

Il nous faut maintenant calculer les vritables index. Pour ce faire, nous allons construire deux macros. La premire macro va convertir le temps de dlai demand en distance, exprime en chantillons:

Ceci peut tre effectu en multipliant le temps (en secondes) par le taux dchantillonnage (en Hertz). Nous devons aussi penser limiter le rsultat, la macro Expert Macro > Clipping >IClipMinMax devrait faire laffaire:

REAKTOR CORE 141

Nous nous limitons N-1 car cest effectivement la plus grande distance possible entre deux lments du tableau. Notez que la conversion en entiers est effectue aprs la multiplication. Nous aurions aussi pu limiter directement la valeur dentre ( une valeur diffrente, bien sr), ce qui est gnralement plus appropri, puisque les valeurs ottantes au-del des limites de reprsentation des entiers peuvent produire des valeurs entires arbitraires, rendant alors la limitation sans objet. Nous utilisons ensuite une autre macro pour calculer lindex de lecture partir de RecordPos et Distance:

La position de lecture doit tre situe Distance chantillons derrire la position denregistrement, cest pourquoi nous effectuons leur soustraction:

La valeur de la distance passe par un loquet car elle est produite par une entre de contrle qui peut potentiellement recevoir des vnements nimporte quel moment, et nous ne voulons pas que la soustraction survienne dautres moments que les vnements de lhorloge audio. Si nous nous contentons de soustraire, la diffrence risque dtre souvent ngative. Ceci est d au fait que notre tableau nest pas une boucle, ses extrmits ne sont pas connectes entre elles. Nous devons donc cycliser le rsultat: -1 doit devenir N-1, -2 doit devenir N-2, -3 doit devenir N-3, etc. 142 REAKTOR CORE

Plaons donc une autre macro pour la cyclisation:

Comme RecordPos et Distance sont tous deux entre 0 et N-1, nous savons que leur diffrence ne peut pas tre infrieure que N+1. La cyclisation peut donc tre ralise par une simple addition de N:

Revenons notre structure du niveau suprieur. Nous avons maintenant les indices de lecture et denregistrement, il nous reste effectuer ces mmes lectures et enregistrements:

Notez que la lecture se a lieu aprs lcriture et quelle est cadence par lhorloge du taux dchantillonnage. Voici la structure de test que nous proposons. Noubliez pas de placer un convertisseur ms2sec dans la cellule core Delay, ni de rgler celle-ci en mode monophonique:

REAKTOR CORE 143

En fait, il est conseill de passer le dlai en mode monophonique ds que possible, car pour chaque voix il consomme environ 200 Ko de mmoire. En effet, 44100 chantillons, utilisant 4 octets (32 bits) chacun, font en tout: 44100*4 = 176400 octets = un peu plus de 172 Ko (un kilooctet contient 1024 octet) Pour tester la structure ci-dessus, jouez des notes sur votre clavier MIDI et coutez-les retardes de la dure spcie par le potentiomtre Time.

8.4. Les tables


Il existe un autre module similaire Array. Il sappelle Table et se trouve dans le sous-menu Built In Module > Memory > Table:

Les tables sont en fait des tableaux un peu particulier, en ceci que vous ne pouvez que lire dans les tables, lcriture y tant interdite. Les valeurs dune table sont prinitialises via les proprits du module. Pour accder la liste des valeurs, appuyez sur le bouton dans la fentre de proprits:

Cliquez ici pour modier les valeurs Une nouvelle bote de dialogue doit apparatre:

144 REAKTOR CORE

Vous voyez une table vide. Elle contient un seul lment, de valeur zro. Vous pouvez maintenant commencer saisir les nouvelles valeurs manuellement ou les importer depuis un chier. Si vous choisissez loption manuelle, cliquez sur le bouton . La bote de dialogue suivante apparat:

Vous devez slectionner le type de valeurs stockes dans la table, sa taille (le nombre dlments quelle contient) et une valeur pour initialiser tous les lments de la table. Vous pouvez galement importer la table depuis un chier. Le chier peut tre aux formats WAV/AIFF, texte (TXT/ASC) ou Native Table (NTF). Pour importer depuis un chier, appuyez sur le bouton Une bote de dialogue apparat et vous permet de slectionner un chier. Puis une autre bote de dialogue vous demande de slectionner le type de donnes pour les valeurs de la table. REAKTOR CORE 145

Essayons dutiliser une table. Nous allons construire une macro doscillateur sinusodal via lapproche lecture de table:

Dans cette macro, commenons par crer un module table:

Nous linitialisons via le chier sinetable.txt que nous vous avons prpar dans le dossier Core Turorial Examples, dans le dossier dinstallation de Reaktor. Il sagit dun chier texte contenant les valeurs dune fonction sinus, sur une priode entire plus un sample. Importez-les en tant que valeurs ottantes Float32:

Vous pouvez aussi visualiser les valeurs charges sous laspect dune forme donde. Les boutons et commutent entre les deux afchages liste et forme donde. Appuyez sur OK pour fermer la bote de dialogue et transfrer les valeurs la table. Il existe galement une proprit FP Precision, que vous trouverez dans la fentre de proprits de la table. Elle ne contrle pas vraiment la prcision 146 REAKTOR CORE

des valeurs dans la table (celle-ci aurait d tre slectionne lors de limportation des valeurs depuis un chier ou lors de leur saisie manuelle). Elle dnit plutt la prcision formelle de la sortie du module Table. De faon gnrale, laissez cette proprit sur Default:

Prcision formelle de la sortie Maintenant que nous avons la table, continuons construire loscillateur. Il sera bas sur un oscillateur de phase qui gnrera un signal en dents de scie montantes, de 0 jusqu la taille de la table moins un:

Limplmentation de loscillateur de phase est assez semblable celle dun oscillateur en dents de scie ou celle de la position denregistrement dans le dlai prcdent:

Un module Read [], connect loscillateur de phase et cadenc par lhorloge du taux dchantillonnage, accde llment correspondant dans la table et extrait sa valeur.

REAKTOR CORE 147

La structure de test que nous suggrons est la suivante (noubliez pas le convertisseur P2F dans la cellule core):

... dont voici le panneau:

Bien entendu, le sinus produit ne sonne pas trs bien car nous navons pas effectu dinterpolation. Nous vous laissons le plaisir de construire une version avec interpolation si vous le souhaitez.

148 REAKTOR CORE

9. Construction de structures optimises


La rgle dit: aucun outil nest parfait. La technologie Reaktor Core ne fait pas exception. Cela ne signie pas quelle soit mauvaise, bien au contraire, nous pensons que cette technologie est tout simplement gniale . Pas parfait signie rel. Cela implique que vous deviez avoir quelques connaissances sur comment tirer le meilleur parti de cette technologie. Appelez cela Trucs et astuces ou quoi que ce soit dautre. Nous allons ici discuter de ces questions doptimisation.

9.1. Les Latches et les macros modulation


Utilisez les Latches (loquets) et/ou les macros modulation tous les endroits ncessaires, pour tre sr(e) de retarder les vnements jusqu ce quils doivent effectivement tre traits. Voici une structure qui utilise une macro modulation pour la multiplication dans la boucle ditration audio. Lutilisation de la macro modulation vite que le traitement soit lanc par les vnements de lentre a:

Nous pourrions tout aussi bien utiliser un loquet explicite dans la structure:

Nous avons dj mentionn de nombreux exemples de cette technique plus haut dans ce manuel. Lutilisation des loquets intresse la fois loptimisation des performances et lexactitude de vos structures. Certaines erreurs typiques de la programmation de structures sont lies lenvoi dvnements certains modules aux mauvais moments.

REAKTOR CORE 149

Ne craignez pas que les loquets diminuent les performances de vos structures. Les loquets ne consomment pas beaucoup, voire pas du tout de ressources processeur. Les loquets sont gnralement prfrs aux routeurs pour le ltrage des vnements, car ils consomment moins de puissance processeur. Autant que faire se peut, utilisez les routeurs uniquement lorsque la logique du traitement impose leur emploi.

9.2. Routage et mlange


Le routage peut tre plus ou moins coteux en termes de puissance de calcul, selon la situation et votre plateforme. Si vous pouvez viter le routage sans ajouter doprations coteuses votre structure, faites-le ! Le routage ES Ctl peut tre parfois remplac par des Latches. Si possible, ayez recours ce remplacement. Si vous sparez le chemin dvnements en deux branches via un routeur, il est souhaitable de mlanger ces branches aprs leur traitement diffrentiel:

Il est aussi conseill de mlanger au routeur les vnements entrants (non spars):

Le mlange ne doit pas forcment tre effectu via un module Merge. Nimporte quel module arithmtique ou similaire fait laffaire:

150 REAKTOR CORE

Le mlange peut aussi se faire dans une macro (en fonction de sa structure interne):

Il peut tre ncessaire ou raisonnable de mlanger les branches gnres par diffrents routeurs, mais veillez alors la consommation de puissance processeur.

9.3. Les oprations numriques


Pour les nombres en virgule ottante, laddition, la soustraction, la valeur absolue et loppos sont gnralement les oprations les plus conomiques. Pour les entiers, ce sont laddition, la soustraction et loppos. La valeur absolue dun entier est aussi relativement conomique. Llimination des valeurs dnormales du module DN Cancel est, comme vous vous en rappelez, une simple addition. En revanche, la division de ottants, la multiplication et la division dentiers consomment en moyenne plus de puissance. Il est conseill de regrouper vos oprations dune manire telle que les plus coteuses soient effectues le plus rarement possible. Par exemple, si vous devez calculer une frquence normalise en divisant la frquence en Hertz par le taux dchantillonnage, il est judicieux de calculer dabord linverse du taux dchantillonnage puis de multiplier le rsultat par la frquence:

REAKTOR CORE 151

Dans la structure ci-dessus, la division est effectue seulement lors des changements de taux dchantillonnage, qui devraient tre plutt rares. Les changements de la frquence ne relancent que la multiplication. Comparez avec limplmentation directe de la mme formule:

dans laquelle la division est effectue en rponse chaque changement de la frquence.

9.4. Conversions entre ottants et entiers


De manire gnrale, vitez toute conversion inutile entre ottants et entiers. Selon la plateforme, ces conversions peuvent utiliser une part non ngligeable de la puissance processeur. Les conversions ncessaires doivent tre maintenues, bien sr... Bien que la structure suivante fonctionne comme prvu, elle comprend en fait deux conversions inutiles entre entiers et ottants:

La premire conversion a lieu lentre du module additionneur, au milieu. Ce module est rgl pour travailler avec des ottants, mais il reoit un signal entier en entre. Il convertit donc les entiers en ottants. La seconde conversion a lieu lentre du module de valeur absolue, qui est rgl en mode entier alors quil reoit les ottants issus de la sortie de ladditionneur. Il convertit donc les ottants en entiers.

152 REAKTOR CORE

Voici une bien meilleure faon de procder:

Tous les modules sont rgls en mode entier, il ny donc aucune conversion faire. Les signaux dhorloge doivent gnralement tre de type ottant, mais si un signal entier est utilis, ce nest pas un problme:

Mme si lentre dhorloge du Latch est ottante, elle est cadence par un signal entier. Comme la valeur de lhorloge est sans importance, aucune conversion nest effectue.

REAKTOR CORE 153

Annexe A. Interface utilisateur de Reaktor Core


A.1. Les cellules core
Une cellule core peut tre cre dans la structure du niveau primaire de Reaktor (sauf dans la structure de lensemble) via un clic droit sur le fond et en slectionnant Core Cell > New Audio ou Core Cell > New Event. Les cellules core des librairies (utilisateur comme systme) se trouvent dans le mme menu Core Cell. Vous pouvez galement charger les cellules core via la commande Core Cell > Load. Pour supprimer une cellule core, slectionnez-la et appuyez sur la touche Suppr, ou bien faites un clic droit sur la cellule core et slectionnez la commande Delete. Il est aussi possible de supprimer une slection multiple. Pour enregistrer une cellule core dans un chier, faites un clic droit sur la cellule core et slectionnez la commande Save Core Cell As. Pour modier la structure interne de la cellule core, double-cliquez dessus. Pour resortir de sa structure, double-cliquez sur le fond. Pour modier les proprits externes de la cellule core, faites un clic droit sur la cellule et slectionnez Properties. Si la fentre de proprits est dj ouverte, il vous suft de cliquer sur la cellule. Pour modier ses proprits internes, vous devez vous rendre dans sa structure interne, faire un clic droit sur le fond de lcran et slectionner Owner Properties. Si la fentre de proprits est dj ouverte, il vous suft de cliquer sur le fond.

A.2. Les macros et modules core


Pour crer un module ou une macro core normal(e), faites un clic droit dans la partie centrale (la plus grande) de la structure core et slectionnez lun(e) des modules/macros dans les menus Built In Module, Expert Macro, Standard Macro, ou User Macro. Vous pouvez aussi charger un(e) module/macro par un clic droit sur le fond et en slectionnant la commande Load Module. Une macro vide peut tre cre depuis le menu Built In Module.

154 REAKTOR CORE

Pour enregistrer un(e) module/macro core dans un chier, faites un clic droit dessus et slectionnez la commande Save As. Pour supprimer un(e) module/macro core, slectionnez-le(la) et appuyez sur la touche Suppr, ou bien faites un clic droit dessus et slectionnez la commande Delete. Il est aussi possible de supprimer une slection multiple. Pour modier la structure interne du module / de la macro core, double-cliquez dessus. Pour resortir de sa structure, double-cliquez sur le fond. Pour modier les proprits du module / de la macro core, vous devez vous rendre dans sa structure interne, faire un clic droit sur le fond de lcran et slectionner Owner Properties. Si la fentre de proprits est dj ouverte, il vous suft de cliquer sur le fond. Vous pouvez galement accder aux proprits du module / de la macro core depuis lextrieur, via un clic droit dessus et en slectionnant Properties. Si la fentre de proprits est dj ouverte, il vous suft de cliquer sur le module / la macro.

A.3. Les ports core


Pour crer un port core, effectuez un clic droit dans la zone de gauche (entres) ou de droite (sorties) de la structure core et slectionnez lun des types de ports disponibles dans le sous-menu New. Pour supprimer un port core, slectionnez-le et appuyez sur la touche Suppr, ou bien faites un clic droit dessus et slectionnez la commande Delete. Il est aussi possible de supprimer une slection multiple (y compris une slection mixte de modules/ports).

A.4. Modication de la structure core


Pour dplacez un module core, cliquez dessus et dplacez-le vers lendroit souhait. Les ports peuvent tre dplac uniquement verticalement, leur ordre vertical dnissant leur ordre dapparition lextrieur. Pour crer une connexion entre une entre dun module et une sortie dun autre, cliquez sur lun des ports et dplacez le curseur sur lautre port. Pour supprimer une connexion, cliquez sur le cble de connexion pour le slectionner, puis appuyez sur la touche Suppr. Vous pouvez aussi cliquer sur REAKTOR CORE 155

lentre et dplacer le curseur nimporte o sur le fond de lcran. Pour crer une QuickConst, effectuez un clic droit sur lentre dun module et slectionnez Connect to New QuickConst. Pour accder aux proprits de la QuickConst, cliquez simplement sur celle-ci. Pour crer un QuickBus, effectuez un clic droit sur une entre ou une sortie dun module et slectionnez Connect to New QuickBus. Pour connecter une entre ou une sortie de module un QuickBus existant, cliquez sur cette entre ou cette sortie, et slectionnez lun des bus disponibles dans le menu Connect to QuickBus.

Annexe B. Le concept de Reaktor Core


B.1. Les signaux et les vnements
Les signaux peuvent tre de type ottant ou entier. Les ports ottants ressemblent ceci: , et les ports entiers cela: Les signaux se propagent sous la forme dvnements travers les connexions depuis les sorties jusquaux entres connectes. Un vnement est une action basique qui se produit une sortie particulire, changeant la valeur de cette sortie (dans certains cas, la valeur est change en elle-mme). Tous les vnements provenant de la mme source dvnements sont considrs comme simultans. Ceci signie que si deux vnements arrivent diffrentes entres dun mme module, ils arrivent simultanment. La mme source signie la mme sortie: dans certaines circonstance, plusieurs sorties peuvent tre considres comme une mme source dvnements. Par exemple, toutes les entres audio et connexions dhorloge du taux dchantillonnage standard sont considres comme une mme source dvnements. Dans ce contexte, la mme source ne signie pas forcment la mme valeur mais plutt leur simultanit. moins quun module donn soit une source dvnements, la seule chose pouvant commander le traitement de ses valeurs entrantes est un ou plusieurs vnements arrivant ses entres. Sil sagit dvnements multiples, un seul vnement est produit en sortie, puisque les vnements en entre arrivent simultanment.

156 REAKTOR CORE

B.2. Linitialisation
Linitialisation des structures seffectue de la faon suivante. Dabord, toutes les valeurs sont remises zro. Puis lvnement dinitialisation est envoy simultanment depuis toutes les sources dinitialisation. Gnralement, il sagit des constantes, des entres des cellules core (mais pas toujours) et des horloges. Cest tout.

B.3. Les connexions OBC


Les OBC (Object Bus Connections) sont des connexions entre modules qui nenvoient aucun signal mais dclarent juste que les modules partagent un mme tat commun (mmoire). La connexion de ce type la plus courante est celle entre des modules Read et Write accdant une mme valeur enregistre.

B.4. Le routage
Vous pouvez utiliser les modules Router pour diriger le ux dvnements entre deux chemins possibles. Si le Router choisit lun des chemins de sortie pour les vnements entrants, lautre sortie ne reoit pas dvnement (cela signie en particulier que la valeur de cette autre sortie ne peut pas tre modie). Le Router est contrl par une connexion dentre de type BoolCtl. lautre extrmit de cette connexion, vous avez gnralement un module Compare (parfois, dautres modules intermdiaires comme des ports de macro BoolCtl peuvent se trouver entre le Compare et le Router). En utilisant les Routers, vous pouvez dynamiquement activer ou dsactiver les calculs dans certaines parties de vos structures. En gnral, aprs avoir spar le chemin du signal en deux via un Router, vous voudrez remlanger les deux branches via un module Merge ou un autre module. Souvent, vous voudrez mlanger une des branches au signal original non spar. De manire gnrale, vous tes libre de faire ici ce quil vous plaira (mais faites tout de mme attention la consommation de ressources processeur).

B.5. Le latching
Le latching (utilisation des Latches, ou loquets) est probablement la technique la plus courante dans Reaktor Core. Elle consiste utiliser des modules Latch pour viter que des vnements ne soient envoys aux mauvais instants. REAKTOR CORE 157

Par exemple, vous ne voudriez pas quun vnement de signal de contrle ne lance un calcul dans une boucle audio. Vous pouvez aussi utiliser les macros du groupe Expert Macros > Modulation, qui est un ensemble des combinaisons de Latches les plus courantes, avec quelques modules de traitement arithmtique.

B.6. Les horloges


Les horloges sont des sources dvnements. Dhabitude, les vnements dhorloge arrivent des intervalles rguliers qui correspondent la frquence de lhorloge. Vous avez besoin dhorloges pour piloter diffrents modules comme les oscillateurs, les ltres, etc. La plupart des implmentations de ces modules nont pas besoin dune connexion dhorloge explicite venant de lextrieur: ils utilisent implicitement une source dhorloge standard disponible dans les structures core. Cette source est lhorloge du taux dchantillonnage, qui tourne la frquence audio par dfaut. Veuillez noter que, dans les cellules core vnements, bien que la connexion lhorloge du taux dchantillonnage soit disponible, le signal dhorloge lui-mme nest pas disponible. Cest pourquoi la plupart des oscillateurs, ltres et autres modules similaires ne fonctionnent pas dans les cellules core vnements.

Annexe C. Les ports des macros core


C.1. In
Reoit un vnement entrant depuis lextrieur et le transfre inchang sa propre sortie interne. La connexion dentre interne peut tre utilise pour forcer la signication par dfaut (dconnecte) de ce port.

C.2. Out
Reoit un vnement arrivant lentre interne et le transfre inchang lextrieur 158 REAKTOR CORE

C.3. Latch (entre)


Transfre une connexion OBC de lextrieur de la macro lintrieur de la macro. La connexion dentre interne peut tre utilise pour forcer la signication par dfaut (dconnecte) de ce port.

C.4. Latch (sortie)


Transfre une connexion OBC de lintrieur de la macro lextrieur de la macro

C.5. Bool C (entre)


Transfre une connexion BoolCtl de lextrieur de la macro lintrieur de la macro. La connexion dentre interne peut tre utilise pour forcer la signication par dfaut (dconnecte) de ce port.

C.6. Bool C (sortie)


Transfre une connexion BoolCtl de lintrieur de la macro lextrieur de la macro.

REAKTOR CORE 159

Annexe D. Les ports des cellules core


D.1. In (mode audio)
Donne accs au signal audio venant de lextrieur du module. Envoie des vnements rguliers la cadence du taux dchantillonnage (synchroniss SR.C, lhorloge globale du taux dchantillonnage). VNEMENT DINITIALISATION: envoie un vnement dinitialisation. Sa valeur est dnie par linitialisation extrieure.

D.2. Out (mode audio)


Donne accs depuis lextrieur du module aux valeurs reues lintrieur. tout instant, la dernire valeur reue est transfre lextrieur.

D.3. In (mode vnement)


Convertit les vnements du niveau primaire de Reaktor venant de lextrieur en vnements Reaktor Core et les transfre lintrieur. VNEMENT DINITIALISATION: envoie un vnement dinitialisation si un vnement dinitalisation est reu de lextrieur.

D.4. Out (mode vnement)


Convertit les vnements Reaktor Core venant de lintrieur en vnements du niveau primaire de Reaktor et les transfre lextrieur. Si plusieurs sorties en mode vnements reoivent simultanment des vnements Reaktor Core, les vnements correspondant du niveau primaire sont envoys dans lordre des sorties suprieures vers les sorties infrieures.

160 REAKTOR CORE

Annexe E. Les bus intgrs


E.1. SR.C
Envoie des vnements dhorloge rguliers la cadence du taux dchantillonnage. VNEMENT DINITIALISATION: envoie toujours un vnement dinitialisation.

E.2. SR.R
Fournit le taux dchantilonnage courant, en Hertz. Envoie des vnements avec les nouvelles valeurs en rponse aux changements du taux dchantillonnage. VNEMENT DINITIALISATION: envoie toujours un vnement dinitialisation avec le taux dchantillonnage initial.

Annexe F. Les modules dusine


F.1. Const
Gnre un signal de valeur constante. Cette valeur est afche dans le module. VNEMENT DINITIALISATION: durant linitialisation, envoie lvnement avec la valeur spcie. Cest le seul instant o ce module envoie un vnement.

PROPRITS: Value

la valeur envoyer en sortie

REAKTOR CORE 161

F.2. Math > +

Gnre en sortie la somme des signaux en entre. Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

F.3. Math > -

Gnre en sortie la diffrence des signaux en entre (le signal lentre infrieure est soustrait au signal lentre suprieure). Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

F.4. Math > *

Gnre en sortie le produit des signaux en entre. Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

F.5. Math > /

Gnre le quotient des signaux en entre (le signal lentre suprieure est divis par le signal lentre infrieure). En mode entier, produit une division avec reste, le reste tant abandonn. Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

162 REAKTOR CORE

F.6. Math > |x|


Gnre en sortie la valeur absolue du signal entrant. Lvnement de sortie est envoy chaque fois quun vnement arrive en entre.

F.7. Math > x


Gnre en sortie la valeur oppose (inversion du signe) du signal entrant. Lvnement de sortie est envoy chaque fois quun vnement arrive en entre.

F.8. Math > DN Cancel


Modie le signal entrant de manire supprimer les nombres dnormaux. Limplmentation actuelle ajoute une toute petite constante. Fonctionne uniquement avec les nombres en virgule ottante. Lvnement de sortie est envoy chaque fois quun vnement arrive en entre.

F.9. Math > ~log


Calcule une approximation du logarithme de la valeur entrante. Lvnement de sortie est envoy chaque fois quun vnement arrive en entre. PROPRITS: Base Precision base du logarithme prcision de lapproximation (une meilleure prcision demande plus de puissance processeur)

REAKTOR CORE 163

F.10. Math > ~exp


Calcule une approximation de lexponentielle de la valeur entrante. Lvnement de sortie est envoy chaque fois quun vnement arrive en entre. PROPRITS: Base Precision base de lexponentielle prcision de lapproximation (une meilleure prcision demande plus de puissance processeur)

F.11. Bit > Bit AND

Effectue la fonction binaire ET sur les signaux entrants. Fonctionne uniquement sur les entiers. Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

F.12. Bit > Bit OR

Effectue la fonction binaire OU sur les signaux entrants. Fonctionne uniquement sur les entiers. Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

F.13. Bit > Bit XOR

Effectue la fonction binaire OU EXCLUSIF sur les signaux entrants. Fonctionne uniquement sur les entiers. Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

164 REAKTOR CORE

F.14. Bit > Bit NOT

Effectue linversion binaire du signal entrant. Fonctionne uniquement sur les entiers. Lvnement de sortie est envoy chaque fois quun vnement arrive en entre.

F.15. Bit > Bit <<

Dcale vers la gauche les bits de la valeur lentre suprieure (vers les bits plus signicatifs). La quantit du dcalage est spcie par lentre infrieure. Le rsultat pour N < 0 et N > 31 est indni (donc utilisez cette fonction seulement pour 0 N 31). Fonctionne uniquement sur les entiers. Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

F.16. Bit > Bit >>

Dcale vers la droite les bits de la valeur lentre suprieure (vers les bits moins signicatifs). Aucune extension de signe nest effectue. La quantit du dcalage est spcie par lentre infrieure. Le rsultat pour N < 0 et N > 31 est indni (donc utilisez cette fonction seulement pour 0 N 31). Fonctionne uniquement avec les entiers. Lvnement de sortie est envoy chaque fois quun vnement arrive lune des entres (ou aux deux simultanment).

F.17. Flow > Router

Assigne le signal de lentre signal (entre infrieure) lune des deux sorties en fonction de ltat du signal de contrle (entre suprieure). Si le signal de contrle est dans ltat true, le module assigne le signal la sortie 1 (suprieure), et la sortie 0 (infrieure) si le signal de contrle est dans ltat

REAKTOR CORE 165

false. Lvnement de sortie est envoy lune des sorties chaque fois quun vnement arrive lentre signal.

F.18. Flow > Compare

Produit un signal BoolCtl en sortie, indiquant le rsultat de la comparaison des valeurs dentre. La valeur lentre suprieure est place gauche du signe de comparaison et la valeur lentre infrieure droite du signe (p.ex. le module montr ci-dessus vrie si la valeur du haut est plus grande que celle du bas). PROPRITS: Criterion lopration de comparaison effectuer.

F.19. Flow > Compare Sign

Produit un signal BoolCtl en sortie, indiquant le rsultat de la comparaison du signe des valeurs dentre. La valeur lentre suprieure est place gauche du signe de comparaison et la valeur lentre infrieure droite du signe (p.ex. le module montr ci-dessus vrie si le signe de la valeur du haut est plus grand que le signe de la valeur du bas). La comparaison de signe est dnie comme suit: + est gal + est gal + est plus grand que Le signe dune valeur nulle est indni, donc une valeur arbitraire peut tre gnre si lune des valeurs compares est nulle. PROPRITS: Criterion lopration de comparaison effectuer.

166 REAKTOR CORE

F.20. Flow > ES Ctl


Produit en sortie un signal BoolCtl indiquant la prsence momentane dun vnement en entre (le signal vaut true sil y a un vnement lentre de ce module cet instant prcis).

F.21. Flow > ~BoolCtl


Produit en sortie un signal BoolCtl qui est linversion du signal BoolCtl dentre (true se change en false et rciproquement).

F.22. Flow > Merge

Envoie un vnement en sortie chaque fois quil y a un vnement lune des entres, ou plusieurs simultanment. Si une seule entre reoit un vnement un instant donn, la valeur de lvnement en sortie est gale la valeur de cet vnement en entre. Si plusieurs entres reoivent des vnements simultanment, la valeur de lentre la plus basse (parmi celles recevant un vnement cet instant) est transmise. Par exemple, si la deuxime et la troisime entre (en partant du haut) reoivent un vnement, la valeur de lvnement la troisime entre sera transmise. PROPRITS: Input Count nombre dentres du module

F.23. Flow > EvtMerge

La fonction de ce module est similaire celle du module Merge, si ce nest quici les valeurs des entres sont ignores. La valeur de la sortie est indnie. Ce module est conu pour gnrer des signaux dhorloge. Il fonctionne

REAKTOR CORE 167

uniquement en mode virgule ottante, puisque de toute faon la valeur nest pas cense servir quoi que ce soit. PROPRITS: Input Count nombre dentres du module

F.24. Memory > Read

Lit la valeur stocke dans la mmoire de la chane OBC laquelle ce module appartient. La lecture se produit en rponse un vnement lentre suprieure (horloge) et la valeur lue est envoye la sortie suprieure. Les ports du bas sont les connexions OBC matresse ( gauche) et esclave ( droite).

F.25. Memory > Write

crit la valeur arrivant lentre suprieure dans la mmoire de la chane OBC laquelle ce module appartient. Lcriture se produit en rponse un vnement lentre suprieure. Les ports du bas sont les connexions OBC matresse ( gauche) et esclave ( droite).

F.26. Memory > R/W Order

Ce module neffectue aucune action. Il peut tre insr dans une structure pour contrler lordre de traitement des modules connects par OBC. Les ports OBC du bas sont les connexions OBC matresse et esclave, connectes en interne en thru (transmission simple). Lentre OBC suprieure est la connexion secondaire, qui permet de placer ce module logiquement aprs le module connect cette entre. Lentre secondaire ne peut tre connecte qu des signaux de type OBC Latch normaux. Les ports matre et esclave peuvent quant eux tre connects des signaux de type OBC Latch ou Array (loquet ou tableau), selon les rglages des proprits du module R/W Order. En tout cas, le type de signal et la

168 REAKTOR CORE

prcision doivent tre les mmes pour toutes les connexions de ce module (p.ex. vous ne pouvez pas connecter en mme temps lentre secondaire un Read en mode entier et les connexions matresse et esclave des modules en mode ottants). PROPRITS: Connection Type type de connexion du port thru (loquet ou tableau).

F.27. Memory > Array

Dnit un objet mmoire de type tableau. Le module lui-mme neffectue aucune action. Toutes les oprations sur le tableau doivent tre effectues par des modules connects la sortie du tableau, qui est une connexion OBC esclave de type tableau. PROPRITS: Size nombre dlments dans le tableau.

F.28. Memory > Size [ ]


Renvoie la taille de lobjet tableau connect lentre. La taille est une valeur entire constante. VNEMENT DINITIALISATION: pendant linitialisation, envoie en sortie un vnement ayant pour valeur la taille du tableau. Cest le seul moment o ce module envoie un vnement.

F.29. Memory > Index

Donne accs un lment du tableau. Laccs est donn sous la forme dune connexion OBC Latch associe llment du tableau. Lassociation est tablie et/ou modie en envoyant un vnement lentre suprieure (index)

REAKTOR CORE 169

du module Index, qui dmarre zro et est toujours en mode entier. Lentre infrieure est la connexion OBC matresse vers le tableau. La sortie fournit la connexion OBC Latch llment tableau, slectionn par lentre dindex. Le type de valeur et la prcision sont bien sr les mmes pour les connexions OBC dentre et de sortie, ils sont contrls par les proprits du module.

F.30. Memory > Table

Dnit un tableau prinitialis en lecture seule. Le module lui-mme neffectue aucune action. Toutes les oprations sur la table doivent tre effectues par des modules connects la sortie de la table, qui est une connexion OBC esclave de type tableau. PROPRITS: FP Precision modie les valeurs dans la table. contrle la prcision formelle de la connexion de sortie.

F.31. Macro

Fournit un conteneur pour une structure interne. Le nombre dentres et de sorties nest pas x, il est dni par la structure interne. PROPRITS: FP Precision contrle la prcision formelle de la connexion de sortie. Look commute entre les apparences Large (label et noms des ports visibles) et Small (label et noms des ports invisibles). Pin Alignment contrle lalignement des ports dans la vue externe de la macro Solid contrle le traitement de la macro par le moteur de Reaktor Core. Si cette option est dsactive, les limites de la macro sont transparentes, notamment pour la rsolution des rinjections. Laissez cette option ACTIVE, moins que vous ne sachiez ex-ac-te-ment ce que vous faites ! Icon le bouton le bouton 170 REAKTOR CORE charge une nouvelle icne pour la macro, et efface licne (aucune icne assigne).

Annexe G. Les macros expertes


G.1. Clipping > Clip Max / IClip Max

Le signal lentre suprieure est born suprieurement par la valeur de seuil lentre du bas. Les changements de seuil ne gnrent pas dvnement.

G.2. Clipping > Clip Min / IClip Min

Le signal lentre suprieure est born infrieurement par la valeur de seuil lentre du bas. Les changements de seuil ne gnrent pas dvnement.

G.3. Clipping > Clip MinMax / IClipMinMax

Le signal lentre suprieure est born infrieurement par la valeur de seuil lentre du milieu, et suprieurement par la valeur de seuil lentre du bas. Les changements de seuil ne gnrent pas dvnement.

G.4. Math > 1 div x


Calcule linverse de la valeur dentre.

G.5. Math > 1 wrap


Boucle les valeurs entrantes dans lintervalle [-0,5.. 0,5] (la priode de bouclage vaut 1).

REAKTOR CORE 171

G.6. Math > Imod

Calcule le reste de la division de la valeur suprieure par la valeur infrieure. Lvnement de sortie est envoy chaque fois quil y a un vnement lune des deux entres (ou aux deux simultanment).

G.7. Math > Max / IMax

Calcule le maximum des valeurs dentre. Lvnement de sortie est envoy chaque fois quil y a un vnement lune des deux entres (ou aux deux simultanment).

G.8. Math > Min / IMin

Calcule le minimum des valeurs dentre. Lvnement de sortie est envoy chaque fois quil y a un vnement lune des deux entres (ou aux deux simultanment).

G.9. Math > round


Arrondit la valeur entrante lentier le plus proche. Larrondi des valeurs exactement au milieu entre deux entiers nest pas dni. Par exemple, 1,5 sera arrondi 1 ou 2.

G.10. Math > sign +Gnre en sortie soit 1, soit 1, en fonction du signe de lentre (les nombres positifs gnrent 1, les ngatifs 1, et zro ne gnre pas de sortie).

172 REAKTOR CORE

G.11. Math > sqrt (>0)


Approximation de la racine carre. Fonctionne uniquement pour les entres positives.

G.12. Math > sqrt


Approximation de la racine carre.

G.13. Math > x(>0)^y

Approximation de x^y (x puissance y). x doit tre positif. Lvnement de sortie est envoy chaque fois quil y a un vnement lune des deux entres (ou aux deux simultanment).

G.14. Math > x^2 / x^3 / x^4


Calcule x la puissance 2/3/4.

G.15. Math > Chain Add / Chain Mult

Additionne/multiplie les signaux entre eux, du bas vers le haut. Lvnement de sortie est gnr sil y a un ou plusieurs vnements une ou plusieurs entres.

G.16. Math > Trig-Hyp > 2 pi wrap


Boucle les valeurs entrantes sur lintervalle [-..] (la priode de bouclage est 2). REAKTOR CORE 173

G.17. Math > Trig-Hyp > arcsin / arccos / arctan


Approximation de larcsinus/arccosinus/arctangente.

G.18. Math > Trig-Hyp > sin / cos / tan


Approximation du sinus/du cosinus/de la tangente.

G.19. Math > Trig-Hyp > sin pi..pi / cos pi..pi / tan pi..pi
Approximation du sinus/du cosinus/de la tangente (fonctionne seulement sur lintervalle [-..]).

G.20. Math > Trig-Hyp > tan pi4..pi4


Approximation de la tangente (fonctionne seulement sur lintervalle [- /4.. /4]).

G.21. Math > Trig-Hyp > sinh / cosh / tanh


Approximation du sinus/du cosinus/de la tangente hyperboliques.

G.22. Memory > Latch / ILatch

Bloque (retarde) le signal lentre suprieure jusqu ce quun vnement dhorloge arrive lentre infrieure. Si deux vnements arrivent simultanment aux deux entres, le signal entrant passe directement en sortie.

174 REAKTOR CORE

G.23. Memory > z^-1 / z^-1 ndc

Envoie en sortie la dernire valeur reue lentre suprieure, en rponse lvnement dhorloge de lentre infrieure. Si lentre dhorloge est dconnecte, le module utilise lhorloge audio standard (SR.C) la place, fonctionnant alors de fait comme un dlai dun chantillon. Les deux modules peuvent automatiquement rsoudre les boucles de rinjection, la version Z^-1 assurant de plus llimination des valeurs dnormales. La version Z^-1 ndc ne doit tre utilise que lorsque les valeurs dnormales ne sont pas attendues en entre.

G.24. Memory > Read []

Lit une valeur dans un tableau un index donn (spci par lentre du milieu), en rponse un vnement dhorloge entrant (entre suprieure). Lentre infrieure (OBC) est la connexion au tableau. Utilisez la sortie OBC pour crer des chanes OBC et srialiser les oprations daccs au tableau !

G.25. Memory > Write []

crit une valeur (reue lentre suprieure) dans un tableau, un index donn (spci par lentre du milieu). Lopration dcriture est commande par toute valeur entrante. Lentre infrieure (OBC) est la connexion au tableau. Utilisez la sortie OBC pour crer des chanes OBC et srialiser les oprations daccs au tableau !

REAKTOR CORE 175

G.26. Modulation > x + a / Integer > Ix + a

Ajoute un paramtre (entre infrieure) au signal (entre suprieure) en rponse un signal entrant. Les changements du paramtre ne gnrent pas dvnements.

G.27. Modulation > x * a / Integer > Ix * a

Multiplie le signal (entre suprieure) par un paramtre (entre infrieure) en rponse un signal entrant. Les changements du paramtre ne gnrent pas dvnements.

G.28. Modulation > x a / Integer > Ix a

Soustrait un paramtre (entre infrieure) au signal (entre suprieure) en rponse un signal entrant. Les changements du paramtre ne gnrent pas dvnements.

G.29. Modulation > a x / Integer > Ia x

Soustrait le signal (entre suprieure) un paramtre (entre infrieure) en rponse un signal entrant. Les changements du paramtre ne gnrent pas dvnements.

G.30. Modulation > x / a

Divise le signal (entre suprieure) par un paramtre (entre infrieure) en rponse un signal entrant. Les changements du paramtre ne gnrent pas dvnements. 176 REAKTOR CORE

G.31. Modulation > a / x

Divise un paramtre (entre infrieure) par le signal (entre suprieure) en rponse un signal entrant. Les changements du paramtre ne gnrent pas dvnements.

G.32. Modulation > xa + y

Multiplie le signal lentre suprieure par un paramtre de gain (entre du milieu) et ajoute le rsultat au signal de lentre infrieure. Les vnements lune des deux entres signal (ou aux deux) gnrent une nouvelle valeur, contrairement aux vnements arrivant lentre paramtre.

Annexe H. Les macros standard


H.1. Audio Mix-Amp > Amount

Fournit un contrle linaire et inversible sur lamplitude dun signal audio. A=0 coupe le signal A=1 laisse le signal intact A = -1 inverse le signal Usage typique: contrler la quantit de rinjection audio.

H.2. Audio Mix-Amp > Amp Mod

REAKTOR CORE 177

Module lamplitude du signal audio par une certaine quantit (AM) sur une chelle linaire AM = 1 double lamplitude AM = 0 pas de changement AM = -1 coupe le signal Usage typique: trmolo, modulation damplitude.

H.3. Audio Mix-Amp > Audio Mix

Mixe deux signaux ensemble.

H.4. Audio Mix-Amp > Audio Relay

Commute entre les deux signaux audio dentre. Si x est plus grand que 0, le module prend le signal 1, sinon il prend le signal 0.

H.5. Audio Mix-Amp > Chain (amount)

Pondre lamplitude du signal audio par une certaine quantit (A) et mlange le rsultat avec le signal audio enchan (>>). A=0 le signal est coup (mis en sourdine) A=1 le signal reste inchang A = -1 le signal est invers Usage typique: chanes de mixage audio, contrle de la quantit de rinjection audio.

178 REAKTOR CORE

H.6. Audio Mix-Amp > Chain (dB)

Pondre lamplitude du signal audio par une certaine quantit de dcibels (dB) et mlange le rsultat avec le signal audio enchan (>>). Usage typique: chanes de mixage audio.

H.7. Audio Mix-Amp > Gain (dB)

Pondre lamplitude du signal audio par une certaine quantit de dcibels (dB). +6 dB double lamplitude 0 dB pas de changement -6 dB diminue lamplitude de moiti Usage typique: contrle du volume du signal, en chelle de dB.

H.8. Audio Mix-Amp > Invert

Inverse la polarit du signal audio.

H.9. Audio Mix-Amp > Mixer 2 4

Mixe les signaux audio entrants (In1, In2, ) en attnuant leurs niveaux dune certaine quantit de dB (Lvl1, Lvl2, ). REAKTOR CORE 179

H.10. Audio Mix-Amp > Pan

Rgle la balance du signal audio en utilisant une courbe parabolique. Pos = -1 tout gauche Pos = 0 centre Pos = 1 tout droite

H.11. Audio Mix-Amp > Ring-Amp Mod

Le signal audio porteur (entre du haut) est modul par le signal audio de lentre Mod. Le type de modulation est contrl par lentre R/A, qui effectue un fondu entre la modulation en anneau et la modulation damplitude. R/A = 0 modulation en anneau R/A = 1 modulation damplitude (pour une vraie modulation damplitude, lamplitude du modulateur de doit pas dpasser 1)

H.12. Audio Mix-Amp > Stereo Amp

Amplie un signal audio monophonique dune certaine quantit de dcibels et le place dans le champ panoramique la position spcie. La position panoramique est dnie comme suit: -1 tout gauche 0 centre 1 tout droite

180 REAKTOR CORE

H.13. Audio Mix-Amp > Stereo Mixer 2 4

Mixe les signaux audio entrants (In1, In2, ) en attnuant leurs niveaux dune certaine quantit de dB (Lvl1, Lvl2, ) et en les plaant dans le champ stro aux positions spcies (Pan1, Pan2, ). Les positions panoramiques sont dnies comme suit: -1 tout gauche 0 centre 1 tout droite

H.14. Audio Mix-Amp > VCA

Amplicateur audio avec contrle linaire de lamplitude. A=0 coupe le signal (sourdine) A=1 laisse le signal inchang Usage typique: connecter une enveloppe damplitude lentre A. Remarque: pour une amplification ngative, utilisez le module Audio Amount.

H.15. Audio Mix-Amp > XFade (lin)

Crossfader (mlangeur) audio avec courbe linaire. x=0 seul le signal 0 est entendu x = 0,5 mlange gal des deux signaux x=1 seul le signal 1 est entendu Remarque: le crossfader parabolique donne gnralement de meilleurs rsultats sonores. REAKTOR CORE 181

H.16. Audio Mix-Amp > XFade (par)

Crossfader (mlangeur) audio avec courbe parabolique. Donne gnralement de meilleurs rsultats sonores que le crossfader linaire. x=0 seul le signal 0 est entendu x = 0,5 mlange gal des deux signaux x=1 seul le signal 1 est entendu

H.17. Audio Shaper > 1+2+3 Shaper

Fournit un modelage contrlable du signal audio du 2me et du 3me ordre. Lentre 1st spcie la quantit de signal original (1=inchang, 0=absent). Les entres 2nd et 3rd correspondent respectivement aux quantits de distorsion du deuxime et du troisime ordre.

H.18. Audio Shaper > 3-1-2 Shaper

Modeleur du signal audio avec quantit variable de distorsion du 2me ou du 3me ordre. La quantit de distorsion et son type sont contrls par lentre Shp: Shp = 0 pas de modelage Shp > 0 modelage du 3me ordre Shp < 0 modelage du 2me ordre

182 REAKTOR CORE

H.19. Audio Shaper > Broken Par Sat

Saturation parabolique brise. Segment linaire autour du niveau zro. Lentre L rgle le niveau de sortie de la saturation totale (1 par dfaut). Lentre H rgle la duret (entre 0 et 1). Les valeurs plus leves correspondent un segment linaire plus important au milieu. Lentre S contrle la symtrie de la courbe de saturation (de 1 1). 0, la courbe est symtrique.

H.20. Audio Shaper > Hyperbol Sat

Saturation hyperbolique simple. Lentre L rgle le niveau de sortie de la saturation totale (1 par dfaut). Cependant, la saturation totale nest jamais atteinte avec ce type de saturation.

H.21. Audio Shaper > Parabol Sat

Saturation parabolique simple. Lentre L rgle le niveau de sortie de la saturation totale (1 par dfaut). Remarque: la saturation totale est atteinte avec un niveau dentre gal 2L.

REAKTOR CORE 183

H.22. Audio Shaper > Sine Shaper 4 / 8

Modeleur en sinus du 4me / 8me ordre. Le modeleur du 8me ordre effectue une meilleure approximation du sinus, mais il consomme plus de puissance processeur.

H.23. Control > Ctl Amount

Fournit un contrle linaire (ventuellement ngatif) sur lamplitude dun signal de contrle. A=0 coupe le signal A=1 laisse le signal intact A = -1 inverse le signal Usage typique: contrler la quantit de modulation.

H.24. Control > Ctl Amp Mod

Module lamplitude du signal de contrle par une certaine quantit (AM) sur une chelle linaire. AM = 1 double lamplitude AM = 0 pas de changement AM = -1 coupe le signal

H.25. Control > Ctl Bi2Uni

Convertit un signal bipolaire de 1 1 en signal unipolaire. Lentre a contrle la quantit de conversion: 0 il ny a aucun changement, 1 (valeur 184 REAKTOR CORE

par dfaut) la conversion est totale. Usage typique: connecter immdiatement aprs un LFO pour ajuster la polarit de la modulation.

H.26. Control > Ctl Chain

Pondre lamplitude du signal audio par une certaine quantit (A) et mlange le rsultat avec le signal audio enchan (>>). A=0 le signal est coup (mis en sourdine) A=1 le signal reste inchang A = -1 le signal est invers Usage typique: chanes de mixage audio.

H.27. Control > Ctl Invert

Inverse la polarit du signal de contrle.

H.28. Control > Ctl Mix

Mixe deux signaux de contrle.

H.29. Control > Ctl Mixer 2

Mixe deux signaux de contrle (In1 et In2) avec les facteurs de gain spcis (A1 et A2). A=0 pas de signal A=1 signal inchang A = -1 signal invers REAKTOR CORE 185

H.30. Control > Ctl Pan

Rgle la balance du signal de contrle en utilisant une courbe parabolique Pos = -1 tout gauche Pos = 0 centre Pos = 1 tout droite

H.31. Control > Ctl Relay

Commute entre deux signaux de contrle. Si x est plus grand que 0, le module transmet le signal 1, sinon il transmet le signal 0.

H.32. Control > Ctl XFade

Crossfader (mlangeur) pour signaux de contrle avec courbe linaire. x=0 seul le signal 0 est trnasmis x = 0,5 mlange gal des deux signaux x=1 seul le signal 1 est transmis

H.33. Control > Par Ctl Shaper

Applique une double courbe parabolique au signal de contrle. Le signal dentre doit tre dans lintervalle [1..1]. Le signal de sortie est aussi dans [1..1]. La quantit de torsion est contrle par lentre b (dont lintervalle est encore une fois [1..1]). b=0 pas de torsion (courbe linaire) b = -1 torsion maximale vers laxe des X b=1 torsion maximale vers laxe des Y 186 REAKTOR CORE

Vous pouvez aussi utiliser ce modeleur pour les signaux dans lintervalle [0..1], auquel cas seule une moiti de la courbe est utilise. Usage typique: vlocit et autres modelages de contrleurs.

H.34. Convert > dB2AF


Convertit un signal de contrle de lchelle de dcibels lchelle linaire de gain damplitude. 0 dB 1.0 -6 dB 0.5 etc.

H.35. Convert > dP2FF


Convertit un signal de contrle de lchelle de pitch (hauteur tonale, en demitons) lchelle des ratios de frquences. 12 demi-tons 2 -12 demi-tons -2 etc.

H.36. Convert > logT2sec


Convertit le temps logarithmique du niveau primaire de Reaktor (utilis pour les enveloppes) en secondes. 0 0.001 sec 60 1 sec etc.

H.37. Convert > ms2Hz


Convertit une priode temporelle en millisecondes dans la frquence correspondante en Hertz. P.ex. 100 ms 10 Hz.

REAKTOR CORE 187

H.38. Convert > ms2sec


Convertit le temps en millisecondes en un temps en secondes. P.ex. 500ms 0.5 sec.

H.39. Convert > P2F


Convertit un signal de contrle de lchelle de pitch (hauteur tonale) lchelle de frquences. P.ex. pitch 69 440 Hz.

H.40. Convert > sec2Hz


Convertit une priode temporelle en secondes dans la frquence correspondante en Hertz. P.ex. 0.1sec 10 Hz.

H.41. Delay > 2 / 4 Tap Delay 4p

Dlai 2/4 battements avec 4 points dinterpolation. Les entres T1 T4 spcient la dure de dlai (en secondes) pour chacun des battements. La dure maximale de dlai est de 44100 chantillons par dfaut, ce qui fait 1 seconde 44,1 kHz. Pour ajuster cette dure, modiez la taille du tableau dans la macro.

H.42. Delay > Delay 1p / 2p / 4p

Dlai 1-point (non interpol) / 2-points / 4-points. Lentre T spcie la dure du dlai en secondes. La dure maximale de dlai est de 44100 chantillons par dfaut, ce qui fait 1 seconde 44,1 kHz. Pour ajuster cette dure, modiez la taille du tableau dans la macro. 188 REAKTOR CORE

Utilisez les versions interpoles du dlai pour raliser des dlais moduls. Pour les dlais non moduls (dure xe de dlai), la version non interpole donne habituellement de meilleurs rsultats.

H.43. Delay > Diff Delay 1p / 2p / 4p

Dlai diffusion 1-point (non interpol) / 2-points / 4-points. Lentre T spcie la dure du dlai en secondes. Les entres Dffs rglent les facteurs de diffusion. La dure maximale de dlai est de 44100 chantillons par dfaut, ce qui fait 1 seconde 44,1 kHz. Pour ajuster cette dure, modiez la taille du tableau dans la macro.

H.44. Envelope > ADSR

Gnre une enveloppe ADSR. A, D, R stemps dattaque, de dcroissance (ou chute) et de relchement (ou extinction) en secondes. S niveau de maintien (intervalle entre 0 et 1, 1 le niveau de maintien est gal au niveau maximal). G entre gate. Les vnements positifs entrants (re)dmarrent lenveloppe. Les vnements nuls ou ngatifs arrtent lenveloppe. GS sensibilit du gate. Pour une sensibilit nulle, le maximum de lenveloppe a toujours une amplitude de 1. Pour une sensibilit gale 1, le maximum de lenveloppe est gal au niveau du gate positif. RM mode de redclenchement. Commute entre les modes analogique et digital dune part, et entre les modes redmarrage et legato REAKTOR CORE 189

RM RM RM RM

= = = =

0 1 2 3

dautre part. En mode digital, lenveloppe redmarre toujours de zro alors quen mode analogique elle redmarre de son niveau de sortie actuel. En mode redmarrage, les vnements gate positifs redmarrent lenveloppe, alors quen mode legato celle-ci redmarre seulement quand les gates passent dune valeur ngative/nulle une valeur positive. Voici les valeurs de RM autorises: redmarrage analogique (par dfaut) legato analogique redmarrage digital legato digital

H.45. Envelope > Env Follower

Produit en sortie un signal de contrle qui suit lenveloppe du signal audio entrant. Les entres A et D spcient les temps dattaque et de dcroissance du suivi, en secondes.

H.46. Envelope > Peak Detector

Produit en sortie le dernier pic du signal audio entrant, sous forme de signal de contrle. Lentre D spcie le temps de dcroissance du niveau de sortie, en secondes.

H.47. EQ > 6dB LP/HP EQ

galiseur passe-bas (LP) / passe-haut (HP) 1 ple (6 dB/octave). Lentre F spcie la frquence de coupure (en Hz) pour les deux sorties LP et HP.

190 REAKTOR CORE

H.48. EQ > 6dB LowShelf EQ

galiseur tage bas 1 ple. Lentre dB spcie laccentuation des basses frquences, en dB (les valeurs ngatives attnuent ces frquences). Lentre F spcie la frquence de transition, en Hertz.

H.49. EQ > 6dB HighShelf EQ

galiseur tage haut 1 ple. Lentre dB spcie laccentuation des hautes frquences, en dB (les valeurs ngatives attnuent ces frquences). Lentre F spcie la frquence de transition, en Hertz.

H.50. EQ > Peak EQ

galiseur pic/creux 2 ples. Lentre F spcie la frquence centrale en Hz, lentre BW spcie la largeur de bande (en anglais bandwidth) en octaves, et lentre dB spcie la hauteur du pic (les valeurs ngatives produisant un creux).

H.51. EQ > Static Filter > 1-pole static HP

Filtre passe-haut statique 1 ple. Lentre F spcie la frquence de coupure en Hz.

REAKTOR CORE 191

H.52. EQ > Static Filter > 1-pole static HS

Filtre tage haut statique 1 ple. Lentre F spcie la frquence de coupure en Hz, et lentre B laccentuation des hautes frquences en dB.

H.53. EQ > Static Filter > 1-pole static LP

Filtre passe-bas statique 1 ple. Lentre F spcie la frquence de coupure en Hz.

H.54. EQ > Static Filter > 1-pole static LS

Filtre tage bas statique 1 ple. Lentre F spcie la frquence de coupure en Hz, et lentre B laccentuation des basses frquences en dB.

H.55. EQ > Static Filter > 2-pole static AP

Filtre passe-tout statique 2 ples. Lentre F spcie la frquence de coupure en Hz, et lentre Res la rsonance (entre 0 et 1).

H.56. EQ > Static Filter > 2-pole static BP

192 REAKTOR CORE

Filtre passe-bande statique 2 ples. Lentre F spcie la frquence centrale en Hz, et lentre Res la rsonance (entre 0 et 1).

H.57. EQ > Static Filter > 2-pole static BP1

Filtre passe-bande statique 2 ples. Lentre F spcie la frquence centrale en Hz, et lentre Res la rsonance (entre 0 et 1). Lamplication la frquence centrale est toujours gale 1, quelle que soit la rsonance.

H.58. EQ > Static Filter > 2-pole static HP

Filtre passe-haut statique 2 ples. Lentre F spcie la frquence de coupure en Hz, et lentre Res la rsonance (entre 0 et 1).

H.59. EQ > Static Filter > 2-pole static HS

Filtre tage haut statique 2 ples. Lentre F spcie la frquence de coupure en Hz, lentre Res spcie la rsonance (entre 0 et 1) et lentre B laccentuation des hautes frquences en dB.

H.60. EQ > Static Filter > 2-pole static LP

Filtre passe-bas statique 2 ples. Lentre F spcie la frquence de coupure en Hz, et lentre Res la rsonance (entre 0 et 1).

REAKTOR CORE 193

H.61. EQ > Static Filter > 2-pole static LS

Filtre tage bas statique 2 ples. Lentre F spcie la frquence de coupure en Hz, lentre Res spcie la rsonance (entre 0 et 1) et lentre B laccentuation des hautes frquences en dB.

H.62. EQ > Static Filter > 2-pole static N

Filtre en creux statique 2 ples. Lentre F spcie la frquence de coupure en Hz, et lentre Res la rsonance (entre 0 et 1).

H.63. EQ > Static Filter > 2-pole static Pk

Filtre en pic statique 2 ples. Lentre F spcie la frquence centrale en Hz, lentre Res la rsonance (entre 0 et 1) et lentre B laccentuation la frquence centrale en dB.

H.64. EQ > Static Filter > Integrator

Intgre le signal audio entrant (calcule sa primitive) via la mthode des sommes rectangulaires. Un vnement lentre Rst rinitialise la sortie de lintgrateur la valeur de cet vnement.

194 REAKTOR CORE

H.65. Event Processing > Accumulator

Calcule la somme des valeurs arrivant lentre suprieure. Un vnement lentre Set rinitialise la sortie la valeur de cet vnement. La valeur de la sortie infrieure est la somme de tous les vnements prcdents, la valeur de la sortie suprieure est la somme de tous les vnements prcdents sauf le dernier.

H.66. Event Processing > Clk Div

Diviseur de frquence dhorloge. Les vnements dhorloge arrivant lentre suprieure sont ltrs, le module ne laissant passer que le 1er, le N+1me, le 2N+1me, etc. (N est la valeur lentre infrieure, elle spcie le ratio de la division).

H.67. Event Processing > Clk Gen


Gnre des vnements dhorloge la frquence spcie par lentre (en Hz). Ce module fonctionne uniquement lintrieur des cellules core audio.

H.68. Event Processing > Clk Rate

Estime la frquence et la priode des vnements du signal dhorloge entrant. La sortie F est la frquence en Hz, et la sortie T la priode en secondes. Ce module fonctionne uniquement lintrieur des cellules core audio. La valeur initiale de la priode est zro, et la frquence est une valeur trs grande. Vous obtenez une estimation raisonnable en sortie seulement aprs le deuxime vnement dhorloge en entre.

REAKTOR CORE 195

H.69. Event Processing > Counter

Compte le nombre dvnements arrivant lentre suprieure. Un vnement lentre Set rinitialise la sortie la valeur de cet vnement. La valeur de la sortie infrieure est le dcompte de tous les vnements prcdents, et la valeur de la sortie suprieure est le dcompte de tous les vnements prcdents sauf le dernier.

H.70. Event Processing > Ctl2Gate

Convertit le signal de contrle (ou audio) de lentre suprieure en signal gate (signal en porte) avec pour amplitude la valeur lentre infrieure A. Les passages du signal zro dans le sens croissant ouvrent la porte, les passages zro dans le sens dcroissant ferment la porte.

H.71. Event Processing > Dup Flt / IDup Flt


Filtre les vnements en double (seuls les vnements avec une valeur diffrente de lvnement prcdent sont transmis).

H.72. Event Processing > Impulse

Gnre une impulsion dun chantillon, damplitude 1, en rponse un vnement entrant. Ce module fonctionne uniquement dans les cellules core audio.

196 REAKTOR CORE

H.73. Event Processing > Random

Gnre des nombres alatoires en rponse aux horloges entrantes. Lintervalle de sortie est [1..1]. Un vnement lentre Seed (Graine en anglais) relance le gnrateur avec la valeur de cet vnement.

H.74. Event Processing > Separator / ISeparator

Les vnements lentre suprieure ayant une valeur suprieure la valeur de lentre Thld (pour Threshold, Seuil en anglais) sont envoys la sortie Hi. Les autres sont envoys la sortie Lo.

H.75. Event Processing > Thld Crossing

Ds quun signal croissant, lentre suprieure, dpasse le seuil x par lentre infrieure, un vnement est envoy la sortie suprieure.

H.76. Event Processing > Value / IValue

Change la valeur de lvnement arrivant lentre suprieure et lui attribue la valeur de lvnement disponible cet instant lentre infrieure.

H.77. LFO > MultiWave LFO

REAKTOR CORE 197

Gnre simultanment en sortie plusieurs oscillateurs basse frquence (LFOs) cals en phase, avec diffrentes formes donde. Lentre F spcie la frquence en Hz, lentre W la largeur du train dimpulsions (dans lintervalle de 1 1, valable uniquement pour la sortie train dimpulsions), les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

H.78. LFO > Par LFO

Gnre un signal de contrle basse frquence parabolique. Lentre F spcie la frquence en Hz et les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

H.79. LFO > Random LFO

Gnre un signal de contrle basse frquence alatoire (mthode random sample-and-hold, littralement chantillon-et-maintien alatoire). Lentre F spcie la frquence en Hz et les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

H.80. LFO > Rect LFO

Gnre un signal de contrle basse frquence rectangulaire (ou train dimpulsions). Lentre F spcie la frquence en Hz, lentre W contrle la largeur des impulsions (dans lintervalle de 1 1), et les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

198 REAKTOR CORE

H.81. LFO > Saw(down) LFO

Gnre un signal de contrle basse frquence en dents de scie descendantes. Lentre F spcie la frquence en Hz et les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

H.82. LFO > Saw(up) LFO

Gnre un signal de contrle basse frquence en dents de scie montantes. Lentre F spcie la frquence en Hz et les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

H.83. LFO > Sine LFO

Gnre un signal de contrle basse frquence sinusodal. Lentre F spcie la frquence en Hz et les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

H.84. LFO > Tri LFO

Gnre un signal de contrle basse frquence triangulaire. Lentre F spcie la frquence en Hz et les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

REAKTOR CORE 199

H.85. Logic > AND

Effectue la conjonction (opration logique ET) de deux signaux: la sortie vaut 1 si et seulement si les deux entres valent 1. Pour les valeurs dentres autres que 0 et 1, le rsultat est indni.

H.86. Logic > Flip Flop


La sortie est commute entre 0 et 1 chaque fois que lentre dhorloge reoit un vnement.

H.87. Logic > Gate2L


Convertit un signal de gate en signal logique. La porte ouverte produit la valeur 1 en sortie, la porte ferme produit la valeur 0.

H.88. Logic > GT / IGT

Compare les deux valeurs ottantes/entires entrantes puis gnre 1 si la valeur du haut est plus grande que celle du bas, et 0 dans le cas contraire.

H.89. Logic > EQ

Compare les deux valeurs entires entrantes et gnre 1 si elles sont gales, et 0 dans le cas contraire.

H.90. Logic > GE

200 REAKTOR CORE

Compare les deux valeurs entires entrantes et gnre 1 si la valeur du haut est plus grande que (ou gale ) celle du bas, et 0 dans le cas contraire.

H.91. Logic > L2Clock


Convertit un signal logique en signal dhorloge. Le passage du signal dentre de 0 1 envoie lvnement dhorloge. Pour les valeurs dentres autres que 0 et 1, le rsultat est indni..

H.92. Logic > L2Gate

Convertit un signal logique en signal gate. Le passage du signal dentre de 0 1 ouvre la porte, le passage de lentre de 1 0 la ferme. Le niveau du signal gate porte ouverte est dni par la valeur lentre infrieure (par dfaut = 1). Pour les valeurs dentres autres que 0 et 1, le rsultat est indni.

H.93. Logic > NOT


Convertit les 0 en 1 et vice versa. Pour les valeurs dentres autres que 0 et 1, le rsultat est indni.

H.94. Logic > OR

Effectue la disjonction (opration logique OU) de deux signaux logiques: la sortie vaut 1 si au moins une des deux entres vaut 1. Pour les valeurs dentres autres que 0 et 1, le rsultat est indni.

H.95. Logic > XOR

Effectue une disjonction exclusive (opration logique OU EXCLUSIF) de deux

REAKTOR CORE 201

signaux logiques: la sortie vaut 1 si une seule des entres vaut 1 (et lautre 0). Pour les valeurs dentres autres que 0 et 1, le rsultat est indni.

H.96. Logic > Schmitt Trigger

Passe la sortie 1 si lentre devient suprieure L+ (par dfaut 0,67), et 0 si lentre devient infrieure L- (par dfaut 0,33).

H.97. Oscillators > 4-Wave Mst

Gnre quatre formes donde audio cales en phase. La frquence est spcie par lentre F (en Hz). La largeur de limpulsion (pour le train dimpulsions) est spcie par lentre pw, dans lintervalle de 1 1. Cet oscillateur peut fonctionner avec des frquences ngatives et dispose de plus dune sortie de synchronisation pour loscillateur esclave quivalent, 4-Wave Slv.

H.98. Oscillators > 4-Wave Slv

Gnre quatre formes donde audio cales en phase. La frquence est spcie par lentre F (en Hz). La largeur de limpulsion (pour le train dimpulsions) est spcie par lentre pw, dans lintervalle de 1 1. Cet oscillateur peut fonctionner avec des frquences ngatives. Il peut aussi tre synchronis un autre oscillateur 4-Wave Mst/Slv via lentre Snc. Lentre SncH contrle la duret de la synchronisation (0 = pas de synchro, de 0 1 202 REAKTOR CORE

= degr croissant de synchronisation souple). Une sortie de synchronisation pour un autre oscillateur 4-Wave Slv est galement disponible.

H.99. Oscillators > Binary Noise

Gnrateur de bruit blanc binaire. Produit alatoirement les valeurs 1 ou 1. Un vnement entrant lentre Seed (r)initialise le gnrateur alatoire interne avec une valeur graine donne (la valeur de lvnement).

H.100. Oscillators > Digital Noise

Gnrateur de bruit blanc numrique. Produit des valeurs alatoires dans lintervalle [-1..1]. Un vnement entrant lentre Seed (r)initialise le gnrateur alatoire interne avec une valeur graine donne (la valeur de lvnement

H.101. Oscillators > FM Op

Oprateur classique de FM (Modulation de Frquence). Produit une onde sinusodale dont la frquence est dnie par lentre F (en Hz). Le sinus peut tre modul en phase par lentre PhM (en radians). Un vnement arrivant lentre Rst redmarre loscillateur la phase spcie par la valeur de cet vnement (intervalle de 0 1).

H.102. Oscillators > Formant Osc

Gnre une forme donde avec une frquence fondamentale spcie par lentre F (en Hz) et une frquence de formant spcie par lentre Fmt (en Hz aussi).

REAKTOR CORE 203

H.103. Oscillators > MultiWave Osc

Gnre quatre formes donde audio cales en phase. La frquence est spcie par lentre F (en Hz). La largeur de limpulsion (pour le train dimpulsions) est spcie par lentre pw, dans lintervalle de 1 1. Cet oscillateur ne peut pas fonctionner avec des frquences ngatives.

H.104. Oscillators > Par Osc

Gnre une forme donde audio parabolique. Lentre F spcie la frquence en Hz.

H.105. Oscillators > Quad Osc

Gnre une paire de formes donde sinusodales cales en phase, avec un dcalage de phase de 90. Lentre F spcie la frquence en Hertz.

H.106. Oscillators > Sin Osc

Gnre une onde sinusodale. Lentre F spcie la frquence en Hz.

H.107. Oscillators > Sub Osc 4

204 REAKTOR CORE

Gnre quatre sous-harmoniques cales en phase. La frquence fondamentale est spcie par lentre F (en Hz). Les nombres sous-harmoniques sont spcis par les entres S1 S4 (intervalle 1..120). Lentre Tbr contrle le contenu harmonique de la forme donde de sortie (intervalle 0..1).

H.108. VCF > 2 Pole SV

Filtre 2-ples variable dtat. Lentre F spcie la frquence de coupure en Hz et lentre Res la rsonance (intervalle 0..0,98). Les sorties HP/BP/LP produisent respectivement les signaux passe-haut, passe-bande et passe-bas.

H.109. VCF > 2 Pole SV C

Filtre 2-ples variable dtat (version compense). Offre un meilleur comportement aux frquences de coupures leves. Lentre F spcie la frquence de coupure en Hz et lentre Res la rsonance (intervalle 0..0,98). Vous pouvez galement utiliser des valeurs ngatives de rsonance, elles augmentent encore plus la pente. Les sorties HP/BP/LP produisent respectivement les signaux passe-haut, passe-bande et passe-bas.

H.110. VCF > 2 Pole SV (x3) S

Filtre 2-ples variable dtat avec un surchantillonnage optionnel (version x3) et une saturation. Lentre F spcie la frquence de coupure en Hz, lentre Res la rsonance (intervalle 0..1) et lentre Sat le niveau de saturation

REAKTOR CORE 205

(intervalle typique: de 8 32). Les sorties HP/BP/LP produisent respectivement les signaux passe-haut, passe-bande et passe-bas.

H.111. VCF > 2 Pole SV T (S)

Filtre 2-ples variable dtat avec compensation et saturation optionnelle (version S). Offre un meilleur comportement aux frquences de coupures leves, quoique lgrement diffrent de celui de la version 2 Pole SV C. Lentre F spcie la frquence de coupure en Hz, lentre Res la rsonance (intervalle 0..1) et lentre Sat le niveau de saturation (intervalle typique: de 8 32).Les sorties HP/BP/LP produisent respectivement les signaux passehaut, passe-bande et passe-bas.

H.112. VCF > Diode Ladder

mulation linaire dun ltre chelle de diodes. Lentre F spcie la frquence de coupure (en Hz) et Res spcie la rsonance (intervalle de 0 0,98).

H.113. VCF > D/T Ladder

mulation linaire de ltre chelle, fondu possible entre les comportements diode et transistor. Lentre F spcie la frquence de coupure (en Hz), lentre Res spcie la rsonance (intervalle de 0 0,98) et lentre D/T con-

206 REAKTOR CORE

trle la balance entre les diodes et les transistors (0=diode, 1=transistor).

H.114. VCF > Ladder x3

Une mulation dun ltre chelle de transistor saturant (surchantillonn trois fois). Lentre F spcie la frquence de coupure (en Hz), lentre Res spcie la rsonance (intervalle de 0 1) et lentre SatL spcie le niveau de saturation (intervalle typique entre 1 et 32). Les sorties 1 4 sont prises aux tages correspondants de lchelle mule. Prenez ltage 4 pour le son de ltre chelle classique.

REAKTOR CORE 207

Annexe I. Core cell library


I.1. Audio Shaper > 3-1-2 Shaper

Modeleur du signal audio avec une quantit variable de distorsion du 2me ou du 3me ordre. La quantit de distorsion et son type sont contrls par lentre Shp: Shp = 0 pas de modelage Shp > 0 modelage du 3me ordre Shp < 0 modelage du 2me ordre

I.2. Audio Shaper > Broken Par Sat

Saturation parabolique brise. Segment linaire autour du niveau zro. Lentre L rgle le niveau de sortie de la saturation totale (1 par dfaut). Lentre H rgle la duret (entre 0 et 1). Les valeurs plus grandes correspondent un segment linaire plus grand au milieu. Lentre S contrle la symtrie de la courbe de saturation (de 1 1). 0, la courbe est symtrique.

I.3. Audio Shaper > Hyperbol Sat

Saturation hyperbolique simple. Lentre L rgle le niveau de sortie de la saturation totale (1 par dfaut). Cependant, la saturation totale nest jamais atteinte avec ce type de saturation.

208 REAKTOR CORE

I.4. Audio Shaper > Parabol Sat

Saturation parabolique simple. Lentre L rgle le niveau de sortie de la saturation totale (1 par dfaut). Remarque: la saturation totale est atteinte avec un niveau dentre gal 2L.

I.5. Audio Shaper > Sine Shaper 4/8

Modeleur en sinus du 4me / 8me ordre. Le modeleur du 8me ordre effectue une meilleure approximation du sinus, mais il consomme plus de puissance processeur.

I.6. Control > ADSR

Gnre une enveloppe ADSR. A, D, R temps dattaque, de dcroissance (ou chute) et de relchement (ou extinction) en secondes. S niveau de maintien (intervalle entre 0 et 1, 1 le niveau de maintien est gal au niveau maximal). G entre gate. Les vnements positifs entrants (re)dmarrent lenveloppe. Les vnements nuls ou ngatifs arrtent lenveloppe. GS sensibilit du gate. Pour une sensibilit nulle, le maximum de lenveloppe a toujours une amplitude de 1. Pour une sensibilit gale 1, le maximum de lenveloppe est gal au niveau du gate positif. REAKTOR CORE 209

RM

mode de redclenchement. Commute entre les modes analogique et digital dune part, et entre les modes redmarrage et legato dautre part. En mode digital, lenveloppe redmarre toujours de zro alors quen mode analogique elle redmarre de son niveau de sortie actuel. En mode redmarrage, les vnements gate positifs redmarrent lenveloppe, alors quen mode legato celle-ci redmarre seulement quand les gates passent dune valeur ngative/nulle une valeur positive. Voici les valeurs de RM autorises: RM = 0 redmarrage analogique (par dfaut) RM = 1 legato analogique RM = 2 redmarrage digital RM = 3 legato digital

I.7. Control > Env Follower

Gnre en sortie un signal de contrle qui suit lenveloppe du signal audio entrant. Les entres A et D spcient les temps dattaque et de dcroissance du suivi, en secondes.

I.8. Control > Flip Flop

La sortie est bascule entre 0 et 1 chaque fois que lentre de commande reoit un vnement.

210 REAKTOR CORE

I.9. Control > MultiWave LFO

Gnre simultanment en sortie plusieurs oscillateurs basse frquence (LFOs) cals en phase, avec diffrentes formes donde. Lentre Rate spcie la frquence en Hz, lentre W la largeur du train dimpulsions (dans lintervalle de 1 1, valable uniquement pour la sortie train dimpulsions), les vnements lentre Rst redmarrent les LFOs avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

I.10. Control > Par Ctl Shaper

Applique une double courbe parabolique au signal de contrle. Le signal dentre doit tre dans lintervalle [1..1]. Le signal de sortie est aussi dans [1..1]. La quantit de torsion est contrle par lentre b (dont lintervalle est encore une fois [1..1]). b=0 pas de torsion (courbe linaire) b = -1 torsion maximale vers laxe des X b=1 torsion maximale vers laxe des Y Vous pouvez aussi utiliser ce modeleur pour les signaux dans lintervalle [0..1], auquel cas seule une moiti de la courbe est utilise. Usage typique: vlocit et autres modelages de contrleurs.

I.11. Control > Schmitt Trigger

Passe la sortie 1 si lentre devient suprieure L+ (par dfaut 0,67), et 0 si lentre devient infrieure L- (par dfaut 0,33).. REAKTOR CORE 211

I.12. Control > Sine LFO

Gnre un signal de contrle basse frquence sinusodal. Lentre Rate spcie la frquence en Hz et les vnements lentre Rst redmarrent le LFO avec la phase spcie par la valeur de lvnement (dans lintervalle de 0 1).

I.13. Delay > 2/4 Tap Delay 4p

Dlai 2/4 battements avec 4 points dinterpolation. Les entres T1 T4 spcient la dure du dlai (en secondes) pour chacun des battements. La dure maximale du dlai est de 44100 chantillons par dfaut, ce qui fait 1 seconde 44,1 kHz. Pour ajuster cette dure, modiez la taille du tableau dans la macro.

I.14. Delay > Delay 4p

Dlai interpolation 4-points. Lentre T spcie la dure du dlai en secondes. La dure maximale de dlai est de 44100 chantillons par dfaut, ce qui fait 1 seconde 44,1 kHz. Pour ajuster cette dure, modiez la taille du tableau dans la macro.

I.15. Delay > Diff Delay 4p

Dlai diffusion interpolation 4-points. Lentre T spcie la dure du dlai 212 REAKTOR CORE

en secondes. Lentre Dffs rgle le facteur de diffusion. La dure maximale de dlai est de 44100 chantillons par dfaut, ce qui fait 1 seconde 44,1 kHz. Pour ajuster cette dure, modiez la taille du tableau dans la macro.

I.16. EQ > 6dB LP/HP EQ

galiseur passe-bas (LP) / passe-haut (HP) 1 ple (6 dB/octave). Lentre F spcie la frquence de coupure (en Hz).

I.17. EQ > HighShelf EQ

galiseur tage haut 1 ple. Lentre dB spcie laccentuation des hautes frquences, en dB (les valeurs ngatives attnuent ces frquences). Lentre F spcie la frquence de transition, en Hertz.

I.18. EQ > LowShelf EQ

galiseur tage bas 1 ple. Lentre dB spcie laccentuation des basses frquences, en dB (les valeurs ngatives attnuent ces frquences). Lentre F spcie la frquence de transition, en Hertz.

I.19. EQ > Peak EQ

REAKTOR CORE 213

galiseur pic/creux 2 ples. Lentre F spcie la frquence centrale en Hz, lentre BW spcie la largeur de bande (en anglais bandwidth) en octaves, et lentre dB spcie la hauteur du pic (les valeurs ngatives produisant un creux).

I.20. EQ > Static Filter > 1-pole static HP

Filtre passe-haut statique 1 ple. Lentre F spcie la frquence de coupure en Hz.

I.21. EQ > Static Filter > 1-pole static HS

Filtre tage haut statique 1 ple. Lentre F spcie la frquence de coupure en Hz, et lentre B laccentuation des hautes frquences, en dB.

I.22. EQ > Static Filter > 1-pole static LP

Filtre passe-bas statique 1 ple. Lentre F spcie la frquence de coupure en Hz.

I.23. EQ > Static Filter > 1-pole static LS

Filtre tage bas statique 1 ple. Lentre F spcie la frquence de coupure en Hz, et lentre B laccentuation des basses frquences en dB.

214 REAKTOR CORE

I.24. EQ > Static Filter > 2-pole static AP

Filtre passe-tout statique 2 ples. Lentre F spcie la frquence de coupure en Hz, et lentre Res la rsonance (entre 0 et 1).

I.25. EQ > Static Filter > 2-pole static BP

Filtre passe-bande statique 2 ples. Lentre F spcie la frquence centrale en Hz, et lentre Res la rsonance (entre 0 et 1).

I.26. EQ > Static Filter > 2-pole static BP1

Filtre passe-bande statique 2 ples. Lentre F spcie la frquence centrale en Hz, et lentre Res la rsonance (entre 0 et 1). Lamplication la frquence centrale est toujours gale 1, quelle que soit la rsonance.

I.27. EQ > Static Filter > 2-pole static HP

Filtre passe-haut statique 2 ples. Lentre F spcie la frquence de coupure en Hz, et lentre Res la rsonance (entre 0 et 1).

REAKTOR CORE 215

I.28. EQ > Static Filter > 2-pole static HS

Filtre tage haut statique 2 ples. Lentre F spcie la frquence de coupure en Hz, lentre Res spcie la rsonance (entre 0 et 1) et lentre B laccentuation des hautes frquences en dB.

I.29. EQ > Static Filter > 2-pole static LP

Filtre passe-bas statique 2 ples. Lentre F spcie la frquence de coupure en Hz, et lentre Res la rsonance (entre 0 et 1).

I.30. EQ > Static Filter > 2-pole static LS

Filtre tage bas statique 2 ples. Lentre F spcie la frquence de coupure en Hz, lentre Res spcie la rsonance (entre 0 et 1) et lentre B laccentuation des hautes frquences en dB.

I.31. EQ > Static Filter > 2-pole static N

Filtre en creux statique 2 ples. Lentre F spcie la frquence de coupure en Hz, et lentre Res la rsonance (entre 0 et 1). 216 REAKTOR CORE

I.32. EQ > Static Filter > 2-pole static Pk

Filtre en pic statique 2 ples. Lentre F spcie la frquence centrale en Hz, lentre Res la rsonance (entre 0 et 1) et lentre B laccentuation la frquence centrale en dB.

I.33. Oscillator > 4-Wave Mst

Gnre quatre formes donde audio cales en phase. Le pitch (hauteur tonale) de loscillateur est spci par lentre P (sous forme de numro de note MIDI). Il peut tre modul par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). La largeur de limpulsion (pour le train dimpulsions) est spcie par lentre PW, dans lintervalle de 1 1. Cet oscillateur peut fonctionner avec des frquences ngatives et dispose de plus dune sortie de synchronisation pour loscillateur esclave quivalent, 4-Wave Slv.

I.34. Oscillator > 4-Wave Slv

REAKTOR CORE 217

Gnre quatre formes donde audio cales en phase. Le pitch (hauteur tonale) de loscillateur est spci par lentre P (sous forme de numro de note MIDI). Il peut tre modul par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). La largeur de limpulsion (pour le train dimpulsions) est spcie par lentre PW, dans lintervalle de 1 1.Cet oscillateur peut fonctionner avec des frquences ngatives. Il peut aussi tre synchronis un autre oscillateur 4-Wave Mst/Slv via lentre Snc. Lentre SncH contrle la duret de la synchronisation (0 = pas de synchro, de 0 1 = degr croissant de synchronisation souple). Une sortie de synchronisation pour un autre oscillateur 4-Wave Slv est galement disponible.

I.35. Oscillator > Digital Noise

Gnrateur de bruit blanc numrique. Produit des valeurs alatoires dans lintervalle [-1..1]. Un vnement entrant lentre Seed (r)initialise le gnrateur alatoire interne avec une valeur graine donne (la valeur de lvnement).

I.36. Oscillator > FM Op

Oprateur classique de FM (Modulation de Frquence). Produit une onde sinusodale dont le pitch est dni par lentre P (en numro de note MIDI). Le sinus peut tre modul en phase par lentre PhM (en radians). Un vnement arrivant lentre Rst redmarre loscillateur la phase spcie par la valeur de cet vnement (intervalle de 0 1).

I.37. Oscillator > Formant Osc

Gnre une forme donde avec une frquence fondamentale spcie par

218 REAKTOR CORE

lentre P (en numro de note MIDI) et une frquence de formant spcie par lentre Fmt (en Hz aussi).

I.38. Oscillator > Impulse

Gnre une impulsion de largeur un chantillon, damplitude 1, en rponse un vnement entrant.

I.39. Oscillator > MultiWave Osc

Gnre quatre formes donde audio cales en phase. Le pitch (hauteur tonale) de loscillateur est spci par lentre P (sous forme de numro de note MIDI). Il peut tre modul par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). La largeur de limpulsion (pour le train dimpulsions) est spcie par lentre PW, dans lintervalle de 1 1. Cet oscillateur ne peut pas fonctionner avec des frquences ngatives.

I.40. Oscillator > Quad Osc

Gnre une paire de formes donde sinusodales cales en phase, avec un dcalage de phase de 90. Lentre P spcie le pitch, en numro de note MIDI.

REAKTOR CORE 219

I.41. Oscillator > Sub Osc

Gnre quatre sous-harmoniques cales en phase. La frquence fondamentale est spcie par lentre P (en numro de note MIDI). Les nombres sous-harmoniques sont spcis par les entres S1 S4 (intervalle 1..120). Lentre Tbr contrle le contenu harmonique de la forme donde de sortie (intervalle 0..1).

I.42. VCF > 2 Pole SV C

Filtre 2-ples variable dtat (version compense). Offre un meilleur comportement aux frquences de coupures leves. Lentre P spcie la frquence de coupure (en numro de note MIDI). Elle peut tre module par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). Lentre Res spcie la rsonance (intervalle 0..0,98). Vous pouvez galement utiliser des valeurs ngatives de rsonance, elles augmentent encore plus la pente. Les sorties HP/BP/LP produisent respectivement les signaux passe-haut, passe-bande et passe-bas.

I.43. VCF > 2 Pole SV T

220 REAKTOR CORE

Filtre 2-ples variable dtat avec compensation. Offre un meilleur comportement aux frquences de coupures leves, quoique lgrement diffrent de celui de la version 2 Pole SV C. Lentre P spcie la frquence de coupure en numro de note MIDI. Elle peut tre module par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). Lentre Res spcie la rsonance (intervalle 0..1). Les sorties HP/BP/LP produisent respectivement les signaux passe-haut, passe-bande et passe-bas.

I.44. VCF > 2 Pole SV x3 S

Filtre 2-ples variable dtat avec un surchantillonnage optionnel (version x3) et une saturation. Lentre P spcie la frquence de coupure (en numro de note MIDI). Elle peut tre module par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). Lentre Res spcie la rsonance (intervalle 0..1) et lentre Sat le niveau de saturation (intervalle typique: de 8 32). Les sorties HP/BP/LP produisent respectivement les signaux passe-haut, passe-bande et passe-bas.

I.45. VCF > Diode Ladder

mulation linaire dun ltre chelle de diodes. Lentre P spcie la frquence de coupure du ltre (en numro de note MIDI). Elle peut tre module par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). Lentre Res spcie la rsonance (intervalle de 0 0,98). REAKTOR CORE 221

I.46. VCF > D/T Ladder

mulation linaire dun ltre chelle, fondu possible entre les comportements diode et transistor. Lentre P spcie la frquence de coupure du ltre (en numro de note MIDI). Elle peut tre module par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). Lentre Res spcie la rsonance (intervalle de 0 0,98) et lentre D/T contrle la balance entre les diodes et les transistors (0=diode, 1=transistor).

I.47. VCF > Ladder x3

Une mulation dun ltre chelle de transistor saturant (surchantillonn trois fois). Lentre P spcie la frquence de coupure (en numro de note MIDI). Elle peut tre module par lentre PM (en demi-tons, donc exponentiellement) et par lentre FM (en Hertz, donc linairement). Lentre Res spcie la rsonance (intervalle de 0 1) et lentre SatL spcie le niveau de saturation (intervalle typique entre 1 et 32). Les sorties 1 4 sont prises aux tages correspondants de lchelle mule. Prenez ltage 4 pour le son de ltre chelle classique.

222 REAKTOR CORE

Index
B
Boolean control (BoolCtl) ......... 113

I
INF ....................................... 108 Initialisation ......................77, 126 Initialisation vnements ................ .................... 77, 89, 93, 108, 126 Inputs. Voir Ports

C
Cellules. Voir Cellules Core Cellules Core ............................ 11 (Re-)nommer les .................... 33 Audio .................................... 92 Dossier utilisateur des ............ 13 dition basique des ................ 17 vnements ........................... 66 vnement et Audio................ 23 Gnrer des ........................... 25 Ports de ................................ 29 Utilisation des........................ 12 Comparaison de signe ............. 124

L
Latch module .........72, 74, 75, 83, .............................. 115, 123, 149

M
Macros. Voir Macros Core Macros modulation .......... 90, 93, ......................................123, 149 Macros Core ............................. 44 (Re-)nommer les .................... 45 Cration de............................ 44 Dossier Utilisateur .................. 88 Paramtre Solid ............. 45, 101 Ports de ................................ 44 Macro Read [] ........................ 135 Macro Write [] ........................ 132 Mauvaises valeurs ........... 103, 108 Modules. Voir Modules Core Modules Core Insrer des ............................ 26 Ordre de traitement ................ 65 mode entier ..................121, 123 Module Denormal Cancel (DNC) 107 Module ES Ctl ........................ 126 Module Merge ..... 81, 83, 114, 150 Module R/W Order .................. 133 Module Read .............. 73, 80, 130 Initialisation de ...................... 77 Module Router .................112, 150 Module Write .......73, 80, 126, 130 Initialisation de ...................... 77 Module Z1 .....75, 96, 97, 111, 123 REAKTOR CORE 223

D
Debug Mode ............................. 86

E
Entres. Voir Ports Signaux par dfaut de lentre . 46 vnements.............................. 60 Le routage des ..................... 112 simultans............................. 63 vnements Core. Voir vnements

F
FP Precision .............. 45, 119, 146

H
Horloge du taux dchantillonnage ... ..... 73, 94, 96, 101, 110, 117, 136

N
NaN ...................................... 108

O
Object Bus Connections (OBC) ....... 73, 120, 129

Signaux dhorloge ...................... 72 Signaux par dfaut de lentre. Voir Entres Sorties. Voir Ports Sorties Audio ............................ 93 Structure Core .......................... 18

P
Ports Audio .................................... 92 Audio/vnement ................... 19 vnements ........................... 67 Gnrer ................................. 29 Ordre dmission .................... 67 Ordre relatif ........................... 18 Prcision de la virgule flottante. Voir FP Precision

T
Tableaux ................................ 128 Tables.................................... 144

V
Valeurs dnormales ................. 103

Q
QnaN..................................... 108 QuickBus ................................. 35 QuickConst .........................47, 69

R
Rinjection ............................... 95 Indication de ................... 42, 96 Rinjection et macros ............. 99 Rsolution de .................97, 123

S
Signaux audio .................................... 37 contrle ................................ 37 entiers ........................ 120, 152 vnements ........................... 53 ottants .......................118, 152 Horloge. Voir Signaux dhorloge logiques ................................ 57 224 REAKTOR CORE