bbcutm
Prev | Opcodes et opérateurs de l'orchestre | Next

## bbcutm

bbcutm — Extrait des segments dans le style breakbeat à partir d'un flux audio mono.

## Description

Le BreakBeat Cutter extrait automatiquement des segments à partir d'un flux audio dans le style des manipulations du "drum and bass/jungle breakbeat". Il y a deux versions, pour les sources mono (bbcutm) ou stéréo (bbcuts). Bien que basé à l'origine sur les coupures breakbeat, l'opcode peut être appliqué à n'importe quel type de source audio.

La séquence de coupure typique sur une mesure subdivisée en croches serait

3+ 3R + 2

dans laquelle nous prenons un bloc de trois unités au début de la source, le répétons, puis deux unités venant des 7èmes et 8èmes croches de la source.

Nous parlons de restituer des phrases (une séquence de coupures avant d'atteindre une nouvelle phrase au début d'une mesure) et des unités (comme subdivisions des notes).

L'opcode donne un rendu plus vivant lorsqu'on utilise simultanément plusieurs versions synchronisées.

## Syntaxe

    a1 bbcutm asource, ibps, isubdiv, ibarlength, iphrasebars, inumrepeats \
          [, istutterspeed] [, istutterchance] [, ienvchoice ]

## Initialisation

ibps -- Tempo pour les coupures, en pulsations par seconde.

isubdiv -- Unité de subdivision pour une mesure. Par exemple 8 désigne la croche (dans une mesure à 4/4).

ibarlength -- Nombre de pulsations par mesure. Il vaut 4 pour la mesure par défaut à 4/4.

iphrasebars -- Les coupures sont générées par phrases, chaque phrase durant iphrasebars.

inumrepeats -- Dans une utilisation normale, l'algorithme permet une répétition supplémentaire d'une coupure donnée à la fois. Ce paramètre permet de modifier ce comportement. La valeur 1 représente la norme d'une répétition supplémentaire. 0 supprime la répétition et l'on obtient la source originale excepté pour l'enveloppe et le stuttering.

istutterspeed -- (facultatif, par défaut=1) Le stutter peut être un multiple entier de la vitesse de subdivision. Par exemple, si isubdiv vaut 8 (croches) et istutterspeed vaut 2, le stutter est en doubles croches (= subdiv de 16). La valeur par défaut est 1.

istutterchance -- (facultatif, par défaut=0) La fin d'une phrase a cette probabilité de devenir l'unité de répétition du stutter (0,0 à 1,0). La valeur par défaut est 0.

ienvchoice -- (facultatif, par défaut=1) Choisir 1 pour l'activer (enveloppe exponentielle pour les grains de coupure) ou 0 pour le désactiver. S'il est désactivé, on entendra des clics, mais ça peut donner de bons résultats bruiteux, en particulier avec les sources percussives. La valeur par défaut est 1, actif.

## Exécution

asource -- Le signal sonore à couper. Cette version fonctionne en temps réel sans connaissance des évènements audio futurs.

## Exemples

Voici un exemple de l'opcode bbcutm. Il utilise les fichiers bbcutm.csd et beats.wav.

Example 79. Un exemple simple de l'opcode bbcutm.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    ; Audio out   Audio in    No messages
    -odac           -iadc     -d     ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o bbcutm.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; Initialize the global variables.
    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 1

    ; Instrument #1 - Play an audio file normally.
    instr 1
      asource soundin "beats.wav"
      out asource
    endin

    ; Instrument #2 - Cut-up an audio file.
    instr 2
      asource soundin "beats.wav"

      ibps = 4
      isubdiv = 8
      ibarlength = 4
      iphrasebars = 1
      inumrepeats = 2

      a1 bbcutm asource, ibps, isubdiv, ibarlength, iphrasebars, inumrepeats

      out a1
    endin

    </CsInstruments>
    <CsScore>

    ; Play Instrument #1 for two seconds.
    i 1 0 2
    ; Play Instrument #2 for two seconds.
    i 2 3 2
    e

    </CsScore>
    </CsoundSynthesizer>

Voici quelques exemples plus avancés ...

Example 80. Premiers pas - versions mono et stéréo

    <CsoundSynthesizer>
    <CsInstruments>
    sr        =         44100
    kr        =         4410
    ksmps     =         10
    nchnls    =         2

    instr 1
        asource diskin "break7.wav",1,0,1 ; a source breakbeat sample, wraparound lest it stop!

        ; cuts in eighth notes per 4/4 bar, up to 4 bar phrases, up to 1
        ; repeat in total (standard use) rare stuttering at 16 note speed,
        ; no enveloping
        asig bbcutm asource, 2.6937, 8, 4, 4, 1, 2, 0.1, 0

        outs        asig,asig
    endin

    instr 2 ;stereo version
       asource1,asource2 diskin "break7stereo.wav", 1, 0, 1    ; a source breakbeat sample, wraparound lest it stop!

      ; cuts in eighth notes per 4/4 bar, up to 4 bar phrases, up to 1
      ; repeat in total (standard use) rare stuttering at 16 note speed,
      ; no enveloping
      asig1,asig2 bbcuts asource1, asource2, 2.6937, 8, 4, 4, 1, 2, 0.1, 0

      outs  asig1,asig2
    endin

    </CsInstruments>
    <CsScore>
    i1 0 10
    i2 11 10
    e
    </CsScore>
    </CsoundSynthesizer>

Example 81. Breaks multiples simultanés synchronisés

    <CsoundSynthesizer>
    <CsInstruments>
    sr        =         44100
    kr        =         4410
    ksmps     =         10
    nchnls    =         2

    instr 1
      ibps    = 2.6937
      iplaybackspeed = ibps/p5
      asource diskin p4, iplaybackspeed, 0, 1

      asig bbcutm asource, 2.6937, p6, 4, 4, p7, 2, 0.1, 1

      out   asig
    endin

    </CsInstruments>
    <CsScore>

    ;   source      bps cut repeats
    i1 0 10 "break1.wav" 2.3 8   2  //2.3 is the source original tempo
    i1 0 10 "break2.wav" 2.4 8   3
    i1 0 10 "break3.wav" 2.5 16  4
    e
    </CsScore>
    </CsoundSynthesizer>

Example 82. Coupure de n'importe quelle source audio ancienne - des bruits bien plus intéressants que ceux-ci sont possibles !

    <CsoundSynthesizer>
    <CsInstruments>
    sr        =         44100
    kr        =         4410
    ksmps     =         10
    nchnls    =         2

    instr 1
      asource oscil 20000, 70, 1
      ; ain, bps, subdiv, barlength, phrasebars, numrepeats,
      ;stutterspeed, stutterchance, envelopingon
      asig bbcutm asource, 2, 32, 1, 1, 2, 4, 0.6, 1
      outs  asig
    endin

    </CsInstruments>
    <CsScore>
    f1 0 256 10 1
    i1 0 10
    e
    </CsScore>
    </CsoundSynthesizer>

Example 83. Faux stuttering constant, impossible car on ne peut appliquer le stutter que dans la dernière demie-mesure, poourrait faire un paramètre optionnel supplémentaire de stuterring

    <CsoundSynthesizer>
    <CsInstruments>
    sr        =         44100
    kr        =         4410
    ksmps     =         10
    nchnls    =         2

    instr 1
      asource diskin "break7.wav", 1, 0, 1

      ;16th note cuts- but cut size 2 over half a beat.
      ;each half beat will either survive intact or be turned into
      ;the first sixteenth played twice in succession

      asig bbcutm asource, 2.6937, 2, 0.5, 1, 2, 2, 1.0, 0
      outs  asig
    endin

    </CsInstruments>
    <CsScore>
    i1 0 30
    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

bbcuts

## Crédits

Auteur : Nick Collins
Londres
Août 2001

Nouveau dans la version 4.13

Prev | Up | Next
barmodel | Home | bbcuts