MUST3053: Gehørbasert digital signalprosessering
Online ressurs
Sampling
Høyeste frekvens som kan representeres med samplerate
Nedsampling
Naiv nedsampling ("sample and hold") gir artifacts i lyden (kan høres "metallisk" ut). Noen ganger kan dette være ønskelig som lydeffekt (eksempel), mens andre ganger vil man ikke at det skal høres. I sistnevnte tilfelle bør man bruke en mer ordentlig metode som er basert på zero padding og lavpassfilter.
Noen samplingsrater:
Lydopptak i studio | 48 kHz, 96 kHz, 192 kHz |
CD-kvalitet | 44.1 kHz |
Gamle dataspill | 8 kHz, 11 kHz, 22 kHz |
Bitreduksjon
Vanligvis bruker man enten 16 eller 24 bits til å representere et sample i en lydfil. Dette gir god kvalitet og dynamikk. Hvis man reduserer bitdybden naivt vil man introdusere kvantiseringsstøy og det dynamiske spennet blir redusert, altså svake lyder vil få lavere kvalitet eller forsvinne helt. Man kan bitredusere ned til 12 bits og de fleste vil ikke legge merke til det. Reduserer man til 8 bit blir det hørbar støy. Reduserer man til 2-4 bits blir det en mer ekstrem effekt og svake lyder blir borte. Kan brukes til å lage knusefet gitarlyd, for eksempel.
Panorering
Lineær panorering
100 % venstre | |
50 % |
Lydstyrken oppleves som svakere midt på. Derfor bruker man typisk ikke lineær panorering.
Kvadratrotbasert panorering
100 % venstre | |
50 % |
Jevnere volum. Altså ca. like høyt midt på som helt til venstre. Denne typen panorering brukes også til kryssfading mellom forskjellige lyder.
Delaybasert panorering
Det er mulig å forsinke signalet i én av stereokanalene for å få det til å høres ut som lyden kommer fra den andre siden. Bruker man en delaytid på 1 ms, tilsvarer det ca. tiden det tar en lyd å forplante seg 23 cm, altså avstanden fra det ene øret til det andre.
Filter
Filtertyper
Lavpassfilter | Lave frekvenser går gjennom |
Høypassfilter | Høye frekvenser går gjennom |
Båndpassfilter | Lar lyd rundt en bestemt senterfrekvens gå gjennom, mens lavere og høyere frekvenser blir filtrert |
Båndstoppfilter | Filtrerer lyd rundt en bestemt senterfrekvens, mens andre frekvenser går gjennom |
Enkle filtere
Lavpassfilter | |
Høypassfilter | |
Båndpassfilter | |
Båndstoppfilter |
FIR
Et filter basert på et sett med koeffisienter. Er alltid stabilt. Impulsresponsen er definert av koeffisientene.
IIR
Et filter med feedback. Må designes for å være stabilt. Kan gi krapp frekvensrespons. Impulsresponsen er i teorien uendelig lang.
Båndbredde
Båndbredde | Avstanden mellom øvre og nedre frekvens i filteret. Brukes typisk om båndpassfilter. |
Oktaver | Båndbredde kan måles i oktaver. Mange oktaver betyr høy båndbredde. |
Q | Bandwidth kan måles i Q. Liten Q betyr høy båndbredde, stor Q betyr liten båndbredde (smalt filter) |
Konvertering mellom oktaver og Q er forklart her: http://www.rane.com/note170.html
Modulert delay
Chorus
Kan brukes til å gjøre lyden rikere. Det den gjør er å legge til et (eller flere) forsinket signal. Forsinkelsestiden varieres ved hjelp av f.eks. en sinus-basert LFO. Typisk delaytid er innenfor 20 - 50 ms.
Flanger
Samme teknikk som i chorus, men kortere delaytid (typisk 0.5 - 15 ms), pluss at den kan ha feedback. Kan kjennes igjen ved at den gjør transienter litt mer diffuse. Rasping.
Phaser
Phaser-effekten kan forveksles med flanger, men er laget på en annen måte. Den er basert på allpassfilter. En phaser kan i teorien sette notches hvor som helst. I en flanger er notchene alltid harmoniske. Phaser gir også gjerne en smudere lyd enn flanger.
Waveguide
Modellering av et instrument basert på eksitering (f.eks. plekter på gitar) og resonans i en resonator (f.eks. gitarkasse). Har gjerne et element av lavpassfilter.
Modulasjonsteknikker
Amplitudemodulasjon
Signalets amplitude moduleres med en modulasjonsbølge som går mellom 0 og 1. Gir to sidebånd.
Ringmodulasjon
Signalets amplitude moduleres med en modulasjonsbølge som går mellom -1 og 1. Signalfrekvensen blir borte, to sidebånd oppstår.
Single Sideband-Modulasjon
Gir kun ett sidebånd, ikke to.
Frekvensmodulasjon
Frekvensen til en bærebølge moduleres med en modulatorbølge. Dette gir flere sidebånd.
Fasemodulasjon
En implementasjon av frekvensmodulasjon som unngår problemet at modulatorfrekvensen blir 0 Hz.
Adaptiv FM
F.eks. kan pitchtracking brukes for å måle grunnfrekvensen i signalet, og så brukes denne grunnfrekvensen til å bestemme en fornuftig modulatorfrekvens.
Asymmetrisk FM
Kun øvre eller nedre sidebånd. Gir et enklere spekter enn vanlig FM.
Forvrengning
Klipping
Amplituden blir begrenset/klippet dersom den går over et visst nivå.
Likeretter
Verdier under en terskel (f.eks. 0) blir speilet opp
Hyperbolsk tangens
Modifisert hyperbolsk tangens
Waveshaping
f(x) er basert på en eller annen tabell eller mattefunksjon. Waveshaping kan brukes f.eks. til å gjøre odde overtoner svakere.
Slope-basert delay
Forsinkelse basert på lydbølgens kurvatur. Siden denne forvrengningseffekten er basert på delay, vil den ikke ødelegge/redusere dynamikken.
Compression
En compressor er en fin måte å gjøre volumet i en innspilling jevnere. Men pass på, for den kan også heve volumet på bakgrunnstøy der det ikke er så mye signal.
Reverb
Refleksjoner
Kan deles opp i to typer: 1) Tidlige refleksjoner og 2) Sene refleksjoner (diffuse). Det er krever mye datakraft å modellere refleksjoner, og derfor bruker man gjerne tilnærminger som ikke er så dyre.
Kamfilter
Et kamfilter legger til en forsinket versjon av signalet. Dette gir resonanser ved frekvens 1/delaytid og korresponderende overtoner. Et kamfilter kan brukes som reverberator. Den farger dog lyden, så man bør passe på at man velger gode parametere for å unngå at lyden blir for farget.
Allpassfilter
Slipper gjennom alle frekvenser, men snur fasen på noen bestemte frekvenser. Ideelt sett er frekvensresponsen flat, og det er en ønskelig egenskap i reverb-effekter. Kan brukes som reverberator.
Gardner reverb
En kombinasjon av kamfilter og allpassfilter i en nøstet konfigurasjon. Et kjennetegn på denne reverben er at den typisk bruker omvendt invertert fase på hver stereokanal for å oppnå en slags stereoeffekt.
Freeverb
Laget ved hjelp av mange kamfilter i parallell og så mange allpassfilter i serie. Ble en suksess på grunn av finjusterte, velvalgte parametere. Bruker delaytider som ikke er delelige på hverandre.
Feedback Delay Network
Reverb som er basert på et nettverk av delaymoduler med både lokal og global feedback. Denne reverben bruker også pitchmodulasjon (med tilfeldige avvik, altså filtrert støy) for å unngå "stående bølger" (frekvenser som forsterker seg selv pga feedbackloopen). Hvis pitchmodulasjonen blir for voldsom, vil man fort legge merke til det.
Convolution reverb
Basert på opptak av impulsrespons i et rom. Reverben høres da ut som det rommet.
Prosessering i frekvensdomenet
Fourier Transform
Konverterer lyd til frekvensdomenet. Man ser på frekvensspekteret i et sliding window. Siden FT krever at signalet er periodisk, bruker man en window function for å gjøre det periodisk innenfor vinduet. Man kan ha presisjon i tid eller frekvens. Omvendt proporsjonal trade-off der altså.
- Liten vindusstørrelse (f.eks. 128): God oppløsning i tid, dårlig oppløsning i frekvens
- Stor vindusstørrelse (f.eks. 16k): God oppløsning i frekvens, dårlig oppløsning i tid
Anvendelser
- Subtrahere en støyprofil fra et lydopptak
- Pitche opp og ned lyder
- Vocoder
- Timestretching. Se f.eks. paulstretch
- Justere formantmønstere til en lyd
- Lage et slags lavpassfilter ved å redusere frekvenskomponenter over en viss terskel
- "Kryptere" lyd
- Eliminere feedback
- Smøre frekvensspekteret utover i tid. Kan minne om reverb.
Granulær lydsyntese
Grunnleggende parametere
Kornrate | Bestemmer hvor ofte korn skal spilles av |
Transpose | "Pitchen" i hvert korn. Bestemmer opplevd pitch ved lav kornrate og formantmønster ved høy kornrate. |
Envelope | Envelopen til hvert korn. For krappe endringer i denne envelopen vil kunne føre til at man får frekvenser over nyquistfrekvensen, og da får man en skarp lyd med ekstra støy. |
Waveform | Lyden som spilles av i hvert korn |
Kornlengde | Hvor langt er hvert korn |
Overgang mellom pitch og rytme
Frekvenser under 20 Hz vil høres som rytmer mens frekvenser over 50 Hz vil høres som toner. Eksempel
Konvolusjon
"Spille av en lyd gjennom en annen". Brukes typisk til reverb og filtrering (FIR).
Optimalisering
Siden direkte konvolusjon krever mange multiplikasjonsoperasjoner (ofte for mye til at man kan gjøre det i sanntid), bruker man gjerne "fast convolution" i stedet. Det man gjør er at man konverterer lyden til frekvensdomenet og gjør en kompleks multiplikasjon der, for så å konvertere tilbake til tidsdomenet. Dette introduserer endel forsinkelse (lik lengden på impulsresponsen), og for å redusere denne forsinkelsen gjør man operasjonen i mindre partisjoner om gangen.