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.

Exemple 80. 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 ...

Exemple 81. 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>


Exemple 82. 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>


Exemple 83. 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>


Exemple 84.  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