bbcuts — Extrait des segments dans le style breakbeat à partir d'un flux audio stéréo.
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.
a1,a2 bbcuts asource1, asource2, ibps, isubdiv, ibarlength, iphrasebars, \
inumrepeats [, istutterspeed] [, istutterchance] [, ienvchoice]
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.
asource -- Le signal sonore à couper. Cette version fonctionne en temps réel sans connaissance des évènements audio futurs.
Voici un exemple de l'opcode bbcuts. Il utilise le fichier bbcuts.csd.
Exemple 96. Exemple de l'opcode bbcuts.
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 -odac ;;;RT audio out ;-iadc ;;;uncomment -iadc if RT audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o bbcuts.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ; by Menno Knevel 2022 instr 1 ;Play an audio file aleft, aright diskin2 "drumsSlp.wav", 1, 0 outs aleft, aright endin instr 2 ;Cut-up stereo audio file. ibps = 16 isubdiv = p4 ibarlength = 2 iphrasebars = 1 inumrepeats = 8 aleft, aright diskin2 "drumsSlp.wav", 1, 0 aleft, aright bbcuts aleft, aright, ibps, isubdiv, ibarlength, iphrasebars, inumrepeats outs aleft, aright endin </CsInstruments> <CsScore> i1 0 4 ; original sample i2 5 4 1 ; subdivisions = 1 i2 10 4 .5 ; subdivisions = .5 e </CsScore> </CsoundSynthesizer>