Robine Studio Pré-alpha

Room Reverb

Delay et reverb · Circuit · Bronze

Room Reverb, dans l’app Robine Studio

Une petite pièce, pour être là plutôt qu’entendue : huit réflexions sur ses murs dans ses premières dizaines de millisecondes, puis une queue courte, d’un tiers de seconde à presque une seconde avec Decay. Size rend la pièce plus petite ou plus grande, Tone dit combien d’aigus ses murs renvoient.

Le son de ton ampli dans une pièce, pas dans une cathédrale. C’est quand tu la coupes que tu la remarques le plus : la guitare devient plate et sèche, comme jouée dans un coussin. Allumée avec un peu de Mix, elle met de l’air autour des notes, quelques murs qui répondent dans les premières dizaines de millisecondes, puis une queue courte, partie avant l’accord suivant. Monte Decay et Size et la pièce grandit, sans jamais devenir une salle de concert.

Son histoire

Il n’y a pas de pédale derrière : c’est une recette. En 1962, Manfred Schroeder, aux Bell Labs, fait la première réverbération artificielle avec des retards réinjectés sur eux-mêmes et des filtres passe-tout qui brouillent un écho sans le colorer. En 1979, James A. Moorer ajoute ce qui manquait aux queues de Schroeder pour sonner comme un vrai lieu : les premières réflexions sur les murs, une ligne à retard lue en quelques points, avant la queue. La même année, Jont Allen et David Berkley publient la méthode des images : une réflexion sur un mur arrive comme d’une copie de la source vue dans ce mur comme dans un miroir, ce qui donne son retard et son niveau à partir des dimensions de la pièce. En 1997, Jon Dattorro publie une réverbération complète, un anneau de quatre retards et passe-tout, que la Plate Reverb de la bibliothèque joue telle qu’il l’a dessinée.

La variante que tu joues

La Room Reverb est écrite pour Robine Studio à partir de ces trois morceaux :

  • les premières réflexions sont celles que donne la méthode des images pour une pièce imaginaire de 9 sur 6,5 sur 3,2 m, l’ampli d’un côté, le micro de l’autre : les murs seulement, un et deux rebonds, chaque rebond gardant 0,8 du son. Huit réflexions, de 5,9 à 32,3 ms après le son direct. Sol et plafond sont laissés de côté : ils reviennent en moins de 3 ms et ne feraient que colorer le son sec ;
  • la queue est l’anneau de Dattorro à 0,18 de sa taille (un tour de 130 ms au lieu de 725), après ses quatre diffuseurs d’entrée à la moitié des leurs. Son temps de réverbération (le temps de perdre 60 dB) va de 0,30 s à 0,81 s sur Decay ;
  • Size change tous les retards ensemble, la pièce de 0,71 à 1,41 fois celle ci-dessus : les réflexions de 4 à 23 ms à 0, de 8 à 46 ms à 1 ;
  • Tone règle ce que les murs rendent d’aigus, et la vitesse à laquelle ils quittent la queue ; Mix va du son sec seul à la pièce seule.

C’est elle qui est dans le rig de base, celui que reçoit un moteur vide, avec Size à 0,3, Decay à 0,3 (0,33 s), Tone à 0,4 et Mix à 0,15 : derrière le rig, après un accord joué fort, sa queue est 31 dB sous l’accord à 0,15 s et 62 dB sous lui à 0,35 s.

Ce qu’elle n’est pas :

  • une pièce en particulier : les réflexions sont celles d’une pièce imaginaire, et la queue a la densité et la décroissance d’une pièce, pas les résonances d’aucune ;
  • un circuit qu’on pourrait construire : le cœur d’une réverbération n’est pas un composant électronique, et la ligne à retard est idéale ;
  • stéréo ou mouvante : elle est mono et rien n’y est modulé.

Le circuit

Une ligne par composant : son nom, les nœuds où il est branché, sa valeur (1e3 vaut 1 kΩ, 1e-8 vaut 10 nF). Une ligne A est une ligne à retard, son temps entre min et max réglé par un bouton ; une ligne E est un amplificateur idéal, le dernier nombre son gain ; une ligne P est un potentiomètre (ses deux extrémités puis le curseur). gang=Size lie tous les retards au seul bouton Size, comme gang=Decay et gang=Tone pour les leurs.

Robine room reverb
* Written for robine-spice: a small room, its early reflections then a short
* diffuse tail, in the manner J. A. Moorer describes ("About This Reverberation
* Business", Computer Music Journal 3(2), 1979): a tapped delay line for the
* reflections, a recirculating network fed by them for the rest.
*   - The reflections are the image sources (J. B. Allen and D. A. Berkley,
*     JASA 65(4), 1979) of a room of 9 x 6.5 x 3.2 m, the amplifier at (1.5,
*     1.5, 1.2) m, the microphone at (6, 4.2, 1.6) m: the walls only, up to two
*     bounces, each keeping 0.8 of the pressure, so eight taps from 5.9 to
*     32.3 ms after the direct sound. Floor and ceiling are left out: their
*     reflections come within 3 ms and would comb the dry signal;
*   - the tail is the tank of the plate reverb next to it (J. Dattorro, "Effect
*     Design, Part 1", JAES 1997) at 0.18 of its size, a loop of 130 ms, after
*     his four input diffusers at half of theirs, read at his seven taps
*     (scaled with it). A low-pass on two of its quarters, 16 to 1.5 kHz
*     with Tone, makes the highs leave first.
*     Its reverberation time runs from 0.3 to 0.8 s over Decay;
*   - Size scales every delay together, the room from 0.71 to 1.41 times the
*     one above (the reflections 4 to 23 ms at 0, 8 to 46 ms at 1).
* Measured on an impulse, Size and Tone at 0.5: T60 of 0.30, 0.44 and 0.81 s for
* Decay at 0, 0.5 and 1 (0.21 to 0.56 s with Size at 0, 0.44 to 1.15 s at 1); at
* Decay 0.5 the tail is 6 dB under the reflections, and on noise the wet is
* within 1 dB of the dry.
* It is not a model of a particular room: the reflections are those of one
* imagined room, and the tail has the density and the decay of a room, not the
* modes of any. Nothing is modulated, and it is mono. Nothing here is a circuit
* one could build; it is in the library because a reverberator is delay lines
* and filters, which the delay element makes expressible, and as a discreet
* room for any rig.
* Controls: Size, Decay, Tone (0 dark, 1 bright), Mix. Size, Decay and Tone
* each move several elements at once (gang=).
Vin in 0 DC 0
Rin in 0 1e6
Ebuffer dry 0 in 0 1
* What the walls give back: 8 kHz at most, 2.4 kHz with Tone at 0.
Rband dry band.a 2e3
PTone0 band.b band.a band.a 4.7e3 taper=lin pos=0.5 gang=Tone
Cband band.b 0 1e-8
Eband x0 0 band.b 0 1

* Early reflections: one delay line per image source, summed.
* back wall: +5.86 ms, 0.724 x 0.80^1
Aer1 er1.d 0 x0 0 min=4.143646e-03 max=8.287291e-03 pos=0.5 gang=Size
Eer1 er1 0 er1.d 0 0.5792
* left wall: +7.92 ms, 0.659 x 0.80^1
Aer2 er2.d 0 x0 0 min=5.600286e-03 max=1.120057e-02 pos=0.5 gang=Size
Eer2 er2 er1 er2.d 0 0.5272
* front wall: +9.68 ms, 0.613 x 0.80^1
Aer3 er3.d 0 x0 0 min=6.844794e-03 max=1.368959e-02 pos=0.5 gang=Size
Eer3 er3 er2 er3.d 0 0.4904
* back and left: +12.14 ms, 0.558 x 0.80^2
Aer4 er4.d 0 x0 0 min=8.584276e-03 max=1.716855e-02 pos=0.5 gang=Size
Eer4 er4 er3 er4.d 0 0.3571
* right wall: +16.29 ms, 0.485 x 0.80^1
Aer5 er5.d 0 x0 0 min=1.151877e-02 max=2.303754e-02 pos=0.5 gang=Size
Eer5 er5 er4 er5.d 0 0.3880
* right and back: +19.51 ms, 0.440 x 0.80^2
Aer6 er6.d 0 x0 0 min=1.379565e-02 max=2.759131e-02 pos=0.5 gang=Size
Eer6 er6 er5 er6.d 0 0.2816
* right twice: +24.81 ms, 0.382 x 0.80^2
Aer7 er7.d 0 x0 0 min=1.754332e-02 max=3.508664e-02 pos=0.5 gang=Size
Eer7 er7 er6 er7.d 0 0.2445
* back twice: +32.29 ms, 0.322 x 0.80^2
Aer8 er8.d 0 x0 0 min=2.283248e-02 max=4.566496e-02 pos=0.5 gang=Size
Eer8 er8 er7 er8.d 0 0.2061

* The reflections diffused, at half of Dattorro's input diffusers.
Ein1a in1.t 0 er8 0 1
Ein1b in1.v in1.t in1.d 0 -0.75
Ain1 in1.d 0 in1.v 0 min=1.686925e-03 max=3.373850e-03 pos=0.5 gang=Size
Ein1c in1.u 0 in1.d 0 1
Ein1d in1 in1.u in1.v 0 0.75
Ein2a in2.t 0 in1 0 1
Ein2b in2.v in2.t in2.d 0 -0.75
Ain2 in2.d 0 in2.v 0 min=1.271134e-03 max=2.542267e-03 pos=0.5 gang=Size
Ein2c in2.u 0 in2.d 0 1
Ein2d in2 in2.u in2.v 0 0.75
Ein3a in3.t 0 in2 0 1
Ein3b in3.v in3.t in3.d 0 -0.625
Ain3 in3.d 0 in3.v 0 min=4.502428e-03 max=9.004856e-03 pos=0.5 gang=Size
Ein3c in3.u 0 in3.d 0 1
Ein3d in3 in3.u in3.v 0 0.625
Ein4a in4.t 0 in3 0 1
Ein4b in4.v in4.t in4.d 0 -0.625
Ain4 in4.d 0 in4.v 0 min=3.290692e-03 max=6.581384e-03 pos=0.5 gang=Size
Ein4c in4.u 0 in4.d 0 1
Ein4d in4 in4.u in4.v 0 0.625

* The ring: what comes back from its end is added to the diffused input.
* Each quarter is an allpass, a delay line, a low-pass on two of them, and
* the Decay attenuator: 0.79 at most, 0.47 at least (the floor of each
* Decay pot is held at 0.6 of its top).
Ering1 ring.t 0 in4 0 1
Ering2 ring ring.t return 0 1
Etank1a tank1.t 0 ring 0 1
Etank1b tank1.v tank1.t tank1.d 0 -0.7
Atank1 tank1.d 0 tank1.v 0 min=2.873951e-03 max=5.747902e-03 pos=0.5 gang=Size
Etank1c tank1.u 0 tank1.d 0 1
Etank1d tank1 tank1.u tank1.v 0 0.7
Aline1 line1 0 tank1 0 min=1.904419e-02 max=3.808838e-02 pos=0.5 gang=Size
Rdamp1 line1 damp1.a 1e3
PTone1 damp1.b damp1.a damp1.a 1e4 taper=lin pos=0.5 gang=Tone
Cdamp1 damp1.b 0 1e-8
Edamp1 damped1 0 damp1.b 0 1
Efloor1 floor1 0 damped1 0 0.6
PDecay1 damped1 decay1 floor1 1e5 taper=lin pos=0.5 gang=Decay
Edecay1 q1 0 decay1 0 0.79
Etank2a tank2.t 0 q1 0 1
Etank2b tank2.v tank2.t tank2.d 0 -0.5
Atank2 tank2.d 0 tank2.v 0 min=7.698081e-03 max=1.539616e-02 pos=0.5 gang=Size
Etank2c tank2.u 0 tank2.d 0 1
Etank2d tank2 tank2.u tank2.v 0 0.5
Aline2 line2 0 tank2 0 min=1.590937e-02 max=3.181874e-02 pos=0.5 gang=Size
Efloor2 floor2 0 line2 0 0.6
PDecay2 line2 decay2 floor2 1e5 taper=lin pos=0.5 gang=Decay
Edecay2 q2 0 decay2 0 0.79
Etank3a tank3.t 0 q2 0 1
Etank3b tank3.v tank3.t tank3.d 0 -0.7
Atank3 tank3.d 0 tank3.v 0 min=3.883255e-03 max=7.766509e-03 pos=0.5 gang=Size
Etank3c tank3.u 0 tank3.d 0 1
Etank3d tank3 tank3.u tank3.v 0 0.7
Aline3 line3 0 tank3 0 min=1.803489e-02 max=3.606979e-02 pos=0.5 gang=Size
Rdamp3 line3 damp3.a 1e3
PTone3 damp3.b damp3.a damp3.a 1e4 taper=lin pos=0.5 gang=Tone
Cdamp3 damp3.b 0 1e-8
Edamp3 damped3 0 damp3.b 0 1
Efloor3 floor3 0 damped3 0 0.6
PDecay3 damped3 decay3 floor3 1e5 taper=lin pos=0.5 gang=Decay
Edecay3 q3 0 decay3 0 0.79
Etank4a tank4.t 0 q3 0 1
Etank4b tank4.v tank4.t tank4.d 0 -0.5
Atank4 tank4.d 0 tank4.v 0 min=1.135895e-02 max=2.271789e-02 pos=0.5 gang=Size
Etank4c tank4.u 0 tank4.d 0 1
Etank4d tank4 tank4.u tank4.v 0 0.5
Aline4 line4 0 tank4 0 min=1.352724e-02 max=2.705447e-02 pos=0.5 gang=Size
Efloor4 floor4 0 line4 0 0.6
PDecay4 line4 decay4 floor4 1e5 taper=lin pos=0.5 gang=Decay
Edecay4 return 0 decay4 0 0.79

* The tail: Dattorro's seven taps, each a short delay line fed like the long
* one it taps (a line's input, or the inside of an allpass).
Atap1 tap1 0 tank3 0 min=1.137605e-03 max=2.275211e-03 pos=0.5 gang=Size
Etail1 tail1 0 tap1 0 0.6
Atap2 tap2 0 tank3 0 min=1.271894e-02 max=2.543788e-02 pos=0.5 gang=Size
Etail2 tail2 tail1 tap2 0 0.6
Atap3 tap3 0 tank4.v 0 min=8.181349e-03 max=1.636270e-02 pos=0.5 gang=Size
Etail3 tail3 tail2 tap3 0 -0.6
Atap4 tap4 0 tank4 0 min=8.536317e-03 max=1.707263e-02 pos=0.5 gang=Size
Etail4 tail4 tail3 tap4 0 0.6
Atap5 tap5 0 tank1 0 min=8.510656e-03 max=1.702131e-02 pos=0.5 gang=Size
Etail5 tail5 tail4 tap5 0 -0.6
Atap6 tap6 0 tank2.v 0 min=7.997451e-04 max=1.599490e-03 pos=0.5 gang=Size
Etail6 tail6 tail5 tap6 0 -0.6
Atap7 tap7 0 tank2 0 min=4.558975e-03 max=9.117950e-03 pos=0.5 gang=Size
Etail7 tail7 tail6 tap7 0 -0.6

* Wet: the reflections and the tail, each taken 1.5 times, so that on noise
* the wet is as loud as the dry within a decibel.
Ewet1 wet.e 0 er8 0 1.5
Ewet2 wet wet.e tail7 0 1.5
PMix wet out dry 5e4 taper=lin pos=0.3
Rload out 0 1e6
.input Vin
.output out

Mesurée face à

Aucune vraie réverbération : il n’y a pas de pédale qu’elle prétend être, et une capture (NAM) ne peut pas tenir la queue d’une réverbération. Elle est mesurée face à ngspice, le simulateur de référence, et sur sa propre réponse impulsionnelle, Size et Tone à 0,5 :

DecayTemps de réverbération (T60)
00,30 s
0,50,44 s
10,81 s

Avec Size à 0, la même course va de 0,21 à 0,56 s, à 1 de 0,44 à 1,15 s. À Decay 0,5, la queue est 6 dB sous les réflexions.

Sa note

Bronze, score 100. Le calcul est juste : il suit ngspice à −78,0 dB à 48 kHz et −102,3 dB à 192 kHz, et ses quatre boutons sont d’accord avec lui. Elle reste au bronze parce que rien de réel ne lui a été comparé (la note dit : 0 réglage sur 1 proche d’un vrai appareil), et rien ne peut l’être, puisqu’elle n’est la copie d’aucune pédale.

Sources : J. B. Allen et D. A. Berkley, Image method for efficiently simulating small-room acoustics (JASA, 1979), J. Dattorro, Effect Design, Part 1 (JAES, 1997) ; M. R. Schroeder, « Natural Sounding Artificial Reverberation », JAES 10(3), 1962 ; J. A. Moorer, « About This Reverberation Business », Computer Music Journal 3(2), 1979.