Documente Academic
Documente Profesional
Documente Cultură
PHILIPPE PROULX
INF8703 AUDIO NUMRIQUE HIVER 2012 POLYMTL.CA
MOTIVATION
Crer mon propre instrument de musique
Combiner informatique + musique Passionn par les synthtiseurs
PLAN
Motivation
Architecture utilise Prototype lectronique Processeur et contraintes
Quelques solutions
Flot de conception Synthse soustractive DSS (Direct Digital Synthesis) Par table donde Synthse FM Conclusion
ARCHITECTURE
PROTOTYPE LECTRONIQUE
Ralis/dmontr sur le Digilent Genesys FPGA Xilinx Virtex-5 Entre MIDI via un core UART
MIDI
FPGA
(synthse)
AC97
Signal audio
PROCESSEUR UTILIS
Xilinx MicroBlaze
Architecture 32-bit Synthtis mme le FPGA Trs configurable Permet davoir des DSP sur mesure
PROCESSEUR UTILIS
CONTRAINTES
100 MHz
RAM : 256 MiB Aucun FPU
PROCESSEUR UTILIS
MALGR TOUT
PROCESSEUR UTILIS
Utiliser beaucoup de tables prcalcules Forcer certaines routines en ligne (attribut GCC) Rduire le taux dchantillonnage Aucun FPU
Tout faire en virgule fixe
Q4.28 sign Les chantillons sont toujours entre -1 et 1 Certains coefficients dIIR demandent beaucoup de prcision dans la partie fractionnaire
PROCESSEUR UTILIS
r = (a * b) >> f;
r = (a << f) / b; 0
10
FLOT DE CONCEPTION
11
SYNTHSE SOUSTRACTIVE
12
SYNTHSE SOUSTRACTIVE
Cration dune onde riche en harmoniques
Carre, triangle, dents de scie, bruit blanc Soustraction de frquences
Onde riche
Enveloppe
IIR
Effets
Sortie
13
SYNTHSE SOUSTRACTIVE
Onde riche
CRATION DE LONDE
Sans contrainte
Enveloppe
Calcul de la position dans londe mathmatiquement et rchantillonnage (TP1) Demande beaucoup dtapes (instructions) Avec contraintes IIR Accumulateur de phase
Table dincrments prcalculs selon notre taux dchantillonnage Plus on avance dans la phase, plus la frquence est haute Effets Trs peu couteux en temps de calcul 16 bits suffisant 32 bits Portamento (pitch bend) en divisant un demi-ton en Sortie plusieurs 16ime ou 32ime de ton Effet dunisson (chorus)
14
SYNTHSE SOUSTRACTIVE
Onde riche
CRATION DE LONDE
Bruit
rand()? ADC dconnect Registre dcalage rtroaction linaire
XOR entre diffrents bits dun registre produit un nouveau bit IIR pseudo-alatoire 16 bits pour un cycle de 65 535 valeurs Trs rapide Frquence paramtrable : garder une mme valeur sur plusieurs chantillons de suite Effets Utilis par le NES pour produire les percussions et certains effets spciaux (vagues, explosions, etc.)
Enveloppe
Sortie
15
SYNTHSE SOUSTRACTIVE
Onde riche
ENVELOPPE ADSR
Paramtres damplitude
Enveloppe
Attaque temps de passage de 0 100 % partir du dclenchement dune touche Chute temps de passage de 100 % s aprs lattaque IIR Maintien niveau s tant que la touche est maintenue Retombe temps de passage de s 0 % partir du relchement dune touche Effets Contrle le caractre sonique des notes Longue attaque, maintien 100 %, longue retombe pad Aucune attaque, courte chute, maintien 0 % pluck Courte attaque, maintien 100 %, courte retombe normal Sortie
16
SYNTHSE SOUSTRACTIVE
Onde riche
ENVELOPPE ADSR
Enveloppe
IIR
Effets
Sortie
17
SYNTHSE SOUSTRACTIVE
Onde riche
ENVELOPPE ADSR
Implmentation
Enveloppe
18
SYNTHSE SOUSTRACTIVE
Onde riche
FILTRAGE IIR
Enveloppe
IIR
Paramtres dynamiques fc et Q
Effets
Prcalculer 128 valeurs de w (vite la tangente en temps rel) Prcalculer 128 valeurs de (1 / Q) Calculer dynamiquement n, b0, b1, b2, a1 et a2 lorsquun des paramtres change Sortie 2 w w w Beaucoup de calcul quand mme pour un paramtre gnralement moins important que fc
19
SYNTHSE SOUSTRACTIVE
Onde riche
FILTRAGE IIR
Enveloppe
Paramtres dynamiques fc et Q
20
SYNTHSE SOUSTRACTIVE
Onde riche
FILTRAGE IIR
fc
Enveloppe
IIR
Effets
21
Paramtres tellement modifis souvent quils ont des accs physiques Sortie privilgis sur la plupart des synthtiseurs
SYNTHSE SOUSTRACTIVE
Onde riche
SORTIE
Mixe
Boucle principale calcul du prochain chantillon selon les dernires notes demandes par MIDI Compteur matriel fix la frquence fs (ici 32 kHz 3 125 instructions par chantillon) Effets
Interruption qui met en sortie le dernier chantillon calcul MIDI 31 250 b/s, 10 b/jeton, 3 jetons/message 1 chantillon (1 / 32 000) s Total environ 1 ms
22
SYNTHSE SOUSTRACTIVE
DMONSTRATION
8 canaux
Enveloppes indpendantes Ondes
Carre, triangle, dents de scie, bruit blanc Mixe vers IIR passe-bas (2ime ordre)
Paramtres
Type donde canal MIDI fc du filtre IIR Temps dattaque, de chute et de retombe (enveloppe) Niveau du maintien (enveloppe) Portamento (8 niveaux/demi-ton)
23
24
SYNTHSE FM
25
SYNTHSE FM
PRINCIPE
Porteuse Modulation cos 2 +
= cos 2
cos 2 + cos 2
26
SYNTHSE FM
PRINCIPE
cos 2 + cos 2
27
SYNTHSE FM
SAVEURS
Basse frquence de modulation
Vibrato Haute frquence de modulation
SYNTHSE FM
EXEMPLE
Porteuse 10 Hz Modulation 2 Hz, indice 5
29
SYNTHSE FM
EXEMPLE
Porteuse 10 Hz Modulation 20 Hz, indice 1
30
SYNTHSE FM
BANDES LATRALES
Rapport C:M
C frquence de la porteuse M frquence de la modulation Bandes latrales (harmoniques) > fondamentale
Porteuse fondamentale M >= 2C ou C:M = 1:1 Ratios harmoniques forme 1:N Ratios intressants 1:1, 1:2, 4:9, 3:7, 2:5, 2:9, 1: (inharmonique)
31
SYNTHSE FM
BANDES LATRALES
32
SYNTHSE FM
BANDES LATRALES
33
SYNTHSE FM
IMPLMENTATION
Table de 65 536 valeurs dune priode de sinus
Virgule fixe Q1.31 sign Accumulateurs de phase
Modulation
34
SYNTHSE FM
IMPLMENTATION
Modulation de phase en cours prise dans la table de sinus
35
CONCLUSION
36
SYNTHSE SOUSTRACTIVE
Ondes sinusodale ou triangulaire Flanger, phaser Enveloppe ADSR pour fc du filtre IIR Permet un timbre de type pouet ou trompette Modulateur en anneau (ring modulator) Multiplication de londe synthtise par une onde sinusodale de frquence variable Basse frquence tremolo Haute frquence son de cloche
37
SYNTHSE FM
Yamaha DX7
Un peu de bruit dans le rendu audio Prcision arithmtique Table de sinus petite Enveloppe ADSR sur un paramtre Indice de modulation automatis Plusieurs modulateurs Modulateur rtroaction ngative
38
FPGA
Coprocesseurs
IIR
Augmenter lordre Plus de paramtres en temps rel Calcul de fonctions trigonomtriques pour remplacer les LUT si lespace est un facteur limitant
CORDIC
39
REMERCIEMENT
FRANOIS-RAYMOND BOYER
40