# Ajout d’effets (FX)

Dans cette section, nous allons regarder un couple d’effets : réverbération et écho. Nous allons voir comment les utiliser, comment contrôler leurs options et comment les chaîner.

Le système d’effets de Sonic Pi utilise les blocs. Donc, si vous n’avez pas lu la section 5.1, vous pourriez lui jeter un œil rapidement et puis revenir ici.

## Réverbération

Si nous voulons utiliser la réverbération, nous écrivons `with_fx :reverb` en tant qu’entête particulière de notre bloc, comme ceci :

    with_fx :reverb do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

Maintenant exécutez ce code et vous l’entendrez joué avec réverbération. Ça sonne bien, n’est-ce pas ! Tout sonne plutôt agréablement avec de la réverbération.

Maintenant, voyons ce qui se passe si nous avons du code en dehors du bloc do/end :

    with_fx :reverb do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end
    sleep 1
    play 55

Remarquez que le dernier `play 55` n’est pas joué avec de la réverbération. C’est parce qu’il est en dehors du bloc do/end, ainsi l’effet de réverbération n’agit pas sur lui.

De même, si vous placez des sons avant le bloc do/end, ils ne seront pas non plus affectés :

    play 55
    sleep 1
    with_fx :reverb do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end
    sleep 1
    play 55

## Écho

Il y a beaucoup de choix d’effets. Et si on essayait un peu d’écho ?

    with_fx :echo do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

Un des puissants aspects des blocs d’effets de Sonic Pi est qu’on peut leur passer des options de manière similaire aux options que nous avons déjà vues avec `play` et `sample`. Par exemple, un paramètre sympa d’écho avec lequel jouer est `phase:`. Il représente la durée d’un écho en temps musicaux. Rendons l’écho plus lent :

    with_fx :echo, phase: 0.5 do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

Rendons aussi l’écho plus rapide :

    with_fx :echo, phase: 0.125 do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

Faisons décroître l’écho plus longuement en spécifiant la durée de `decay:` à 8 temps :

    with_fx :echo, phase: 0.5, decay: 8 do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

## Imbrication des effets

Un des aspects les plus puissants des blocs d’effets est que vous pouvez les imbriquer. Ceci vous permet de chaîner facilement les effets entre eux. Par exemple, que faire si vous vouliez jouer du code avec de l’écho et ensuite de la réverbération ? Facile, mettez simplement l’un à l’intérieur de l’autre :

    with_fx :reverb do
      with_fx :echo, phase: 0.5, decay: 8 do
        play 50
        sleep 0.5
        sample :elec_blup
        sleep 0.5
        play 62
      end
    end

Pensez à du son provenant de l’intérieur et se propageant vers l’extérieur. Le son de tout le code situé dans le bloc intérieur dont `play 50` est d’abord envoyé vers l’effet d’écho et le son produit par l’effet d’écho est à son tour envoyé vers l’effet de réverbération.

Nous pouvons utiliser des imbrications très profondes pour des résultats délirants. Toutefois, soyez averti, les effets peuvent utiliser beaucoup de ressources et quand vous les imbriquez, vous allez effectivement faire agir de multiples effets simultanément. Donc soyez économe avec l’utilisation des FX, en particulier sur des plateformes peu puissantes telles que le Raspberry Pi.

## À la découverte des effets

Sonic Pi est livré avec un grand nombre d’effets avec lesquels vous pouvez jouer. Pour trouver ceux qui sont disponibles, cliquez sur “FX” dans le menu horizontal du système d’aide et vous verrez une liste des options disponibles. Voici une liste de mes préférés :

- wobble,
- reverb,
- echo,
- distortion,
- slicer

Maintenant, défoulez-vous et ajoutez des effets partout pour obtenir d’étonnants sons nouveaux !