Institutionen för systemteknik

Relevanta dokument
Digital Signalbehandling i Audio/Video

TNMK054 - LJUDTEKNIK 1 RUM, REVERB,

DIGITALA FILTER DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1

DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1. Frekvensfunktioner FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM. x(n)= Asin(Ωn)

DT1130 Spektrala transformer Tentamen

Laborationsprojekt i digital ljudsyntes

Digital signalbehandling Digitalt Ljud

Spektrala Transformer

Laboration i tidsdiskreta system

Effekter och ljudprocessorer

Frekvensplanet och Bode-diagram. Frekvensanalys

Lab 1 Analog modulation

Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl

FÖRELÄSNING 13: Analoga o p. 1 Digitala filter. Kausalitet. Stabilitet. Ex) på användning av analoga p. 2 filter = tidskontinuerliga filter

Ljudteknik 5p tch Hz from Scra

Tillämpning av komplext kommunikationssystem i MATLAB

Mätningar med avancerade metoder

Ljud. Låt det svänga. Arbetshäfte

GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen

TIDSDISKRETA SYSTEM SYSTEMEGENSKAPER. Minne Kausalitet Tidsinvarians. Linjäritet Inverterbarhet Stabilitet. System. Tillämpad Fysik och Elektronik 1

Elektronik 2018 EITA35

Faltningsreverb i realtidsimplementering

Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19

2F1120 Spektrala transformer för Media Tentamen

Bildbehandling i frekvensdomänen

Master Thesis. Study on a second-order bandpass Σ -modulator for flexible AD-conversion Hanna Svensson. LiTH - ISY - EX -- 08/ SE

Kan vi beskriva ett system utan någon fysikalisk kännedom om systemet?

Att fånga den akustiska energin

Flerdimensionella signaler och system

TNMK054 - LJUDTEKNIK 1 FILTER OCH VCF

DT1130 Spektrala transformer Tentamen

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

Tentamen ssy080 Transformer, Signaler och System, D3

2 Laborationsutrustning

Tentamen i Signaler och kommunikation, ETT080

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

Grundläggande signalbehandling

i(t) C i(t) = dq(t) dt = C dy(t) dt y(t) + (4)

Laboration i Fourieroptik

MEDIESIGNALER INTRODUKTION

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

Lab 4: Digital transmission Redigerad av Niclas Wadströmer. Mål. Uppstart. Genomförande. TSEI67 Telekommunikation

Implementering av digitala filter

Upp gifter. c. Hjälp Bengt att förklara varför det uppstår en stående våg.

Innehåll. Innehåll. sida i

Lab lanserade R.A. Moog Inc. en ny synt: Minimoog. Den var designad av Bill Hemsath och Robert Moog och kom att revolutionera musikhistorien.

Hambley avsnitt

Projekt 6. Fourieroptik Av Eva Danielsson och Carl-Martin Sikström

3D- LJUD. Binaural syntes med hjälp av HRTF- filter och duplexteorin. DT1174 Ljud som informationsbärare Sandra Liljeqvist

Reglerteknik AK. Tentamen 24 oktober 2016 kl 8-13

Liten MATLAB introduktion

Föreläsning: Digitalt Ljud. signalbehandling. Elektronik - digital signalbehandling. Signal och spektrum. PC-ljud. Ton från telefonen.

Adaptiva Filter. Johan Haarala Signaler och System

Tillämpad digital signalbehandling Laboration 1 Signalbehandling i Matlab och LabVIEW

RÄKNEEXEMPEL FÖRELÄSNINGAR Signaler&System del 2

Hambley avsnitt

Ljudteknik 5p htc Hz from Sc ra

G(s) = 5s + 1 s(10s + 1)

Spektrala Transformer

DT1120/DT1130 Spektrala transformer Tentamen

Signal- och bildbehandling TSBB03

Reglerteknik M3. Inlämningsuppgift 3. Lp II, Namn:... Personnr:... Namn:... Personnr:...

Laplace, Fourier och resten varför alla dessa transformer?

Projekt 3: Diskret fouriertransform

TENTAMEN I REGLERTEKNIK Y/D

LUNDS TEKNISKA HÖGSKOLA Inst. for Elektro- och Informationsteknik. SIGNALBEHANDLING I MULTIMEDIA, ETI265 Inlämningsuppgift 1 (av 2), Task 1 (out of 2)

Signalbehandling Röstigenkänning

Introduktion och övningar

Generering av ljud utifrån fysikalisk simulering

Aalto-Universitetet Högskolan för ingenjörsvetenskaper. KON-C3004 Maskin- och byggnadsteknikens laboratoriearbeten DOPPLEREFFEKTEN.

Ulrik Söderström 20 Jan Signaler & Signalanalys

Ulrik Söderström 19 Jan Signalanalys

Framtagning av algoritm för artificiell efterklang

DT1130 Spektrala transformer Tentamen

Spänningsstyrd Oscillator

Tentamen ssy080 Transformer, Signaler och System, D3

Grundläggande ljud- och musikteori

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

Spektrala Transformer

Ämnesområde Hörselvetenskap A Kurs Signalteori, 7,5 hp Kurskod: HÖ1007 Tentamenstillfälle

Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Jens A Andersson

Stabilitetsanalys och reglering av olinjära system

Ett projekt i Signaler och system

Lyssna på bitar av ljudet Titta på ljudet

Bildbehandling i spatialdomänen och frekvensdomänen

Systemskiss. LiTH. Autopositioneringssystem för utlagda undervattenssensorer Erik Andersson Version 1.0. Status

1 Figuren nedan visar en transversell våg som rör sig åt höger. I figuren är en del i vågens medium markerat med en blå ring prick.

Laboration i Fourieroptik

Elektro och Informationsteknik LTH Laboration 4 Tidsplan, frekvensplan och impedanser

DT1130 Spektrala transformer Tentamen

REGLERTEKNIK Laboration 5

Kompletterande räkneuppgifter i Spektrala Transformer Komplex analys, sampling, kvantisering, serier och filter Laura Enflo & Giampiero Salvi

Frekvensbeskrivning, Bodediagram

Optimal Signalbehandling Datorövning 1 och 2

Digitala filter. FIR Finit Impulse Response. Digitala filter. Digitala filter. Digitala filter

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 15-18, 30/11-12/

Introduktion. Torsionspendel

DT1120 Spektrala transformer för Media Tentamen

Transkript:

Institutionen för systemteknik Department of Electrical Engineering Examensarbete Ljudeffekter med digital signalbehandling Examensarbete utfört i Reglerteknik och kommunikationssytem vid Tekniska högskolan i Linköping av Sven-Markus Schoerner, Erik Zakrisson LITH-ISY-EX 05/3715 SE Linköping 2005 Department of Electrical Engineering Linköpings universitet SE-581 83 Linköping, Sweden Linköpings tekniska högskola Linköpings universitet 581 83 Linköping

Ljudeffekter med digital signalbehandling Examensarbete utfört i Reglerteknik och kommunikationssytem vid Tekniska högskolan i Linköping av Sven-Markus Schoerner, Erik Zakrisson LITH-ISY-EX 05/3715 SE Handledare: Examinator: Jonas Gillberg isy, Linköpigs universitet Fredrik Gustafsson isy, Linköpigs universitet Linköping, 1 juni, 2005

Avdelning, Institution Division, Department Division of Automatic Control Department of Electrical Engineering Linköpings universitet S-581 83 Linköping, Sweden Datum Date 2005-06-01 Språk Language Svenska/Swedish Engelska/English Rapporttyp Report category Licentiatavhandling Examensarbete C-uppsats D-uppsats Övrig rapport ISBN ISRN LITH-ISY-EX 05/3715 SE Serietitel och serienummer Title of series, numbering ISSN URL för elektronisk version http://www.ep.liu.se/exjobb/isy/2005/3715/ Titel Title Ljudeffekter med digital signalbehandling Audioeffects with digital soundprocessing Författare Author Sven-Markus Schoerner, Erik Zakrisson Sammanfattning Abstract To effectively demonstrate the strength of using digital signal processing when producing sound effects, a sound effects demo is used at the lectures of the course TSRT78, Digital signal processing, which is given at the university in Linköping. The amount of effects, that in an instructive way can be used for an educational purpose, are many and the existing version of the sound effects demo is somewhat limited in its range of effects. This reports main focus lies in the presentation of what kind of effects which can be interesting in this kind of demo. All of the effects are presented with their background theory and examples on how they can be implemented in software, mainly with the focus on MATLAB TM. Investigations on how well the effects can be run in realtime, in the toolbox Simulink TM, has been made. In the report there is also a presentation of a new version of the sound effect demo that has been produced with user friendlieness and further updates in mind. In the new demo all of the effects are implemented, according to their presentations. The report finishes with suggestions for further work on the sound effects demo. Nyckelord Keywords Audioeffects, sound, filter, IIR, FIR, Phase vocoder, Reverberation, Modulation, Matlab, GUI

Abstract To effectively demonstrate the strength of using digital signal processing when producing sound effects, a sound effects demo is used at the lectures of the course TSRT78, Digital signal processing, which is given at the university in Linköping. The amount of effects, that in an instructive way can be used for an educational purpose, are many and the existing version of the sound effects demo is somewhat limited in its range of effects. This reports main focus lies in the presentation of what kind of effects which can be interesting in this kind of demo. All of the effects are presented with their background theory and examples on how they can be implemented in software, mainly with the focus on MATLAB TM. Investigations on how well the effects can be run in realtime, in the toolbox Simulink TM, has been made. In the report there is also a presentation of a new version of the sound effect demo that has been produced with user friendlieness and further updates in mind. In the new demo all of the effects are implemented, according to their presentations. The report finishes with suggestions for further work on the sound effects demo. v

Sammanfattning För att på ett effektivt sätt visa styrkan med att använda digital signalbehandling för att framställa ljudeffekter, används ett ljudeffektsdemo på föreläsningarna i kursen TSRT78, Digital Signalbehandling, som ges vid Linköpings Universitet. Antalet effekter, som på ett instruktivt sätt kan användas i utbildningssyfte, är många och den befintliga versionen av ljudeffektsdemot är något begränsad i sitt utbud av effekter. Rapportens huvudsyfte är att presentera vilka typer av ljudeffekter som kan vara intressanta i ett sådant ljudeffektsdemo. Samtliga effekter presenteras med de bakomliggande teorierna och exempel på hur de kan implementeras i mjukvara, främst med fokus på MATLAB TM. Undersökningar ifall effekterna kan köras i realtid, via toolboxen Simulink TM, har också gjorts. I rapporten presenteras även en ny version av ljudeffektsdemot som har tagits fram med främst användarvänlighet och utbyggbarhet i åtanke. I det nya ljudeffektsdemot finns samtliga effekter, i enlighet med presentationen av de, implementerade. Rapporten avslutas med lite förslag på hur ljudeffektsdemot kan byggas ut och förbättras ytterligare. vii

Tack Vi vill tacka Jonas Gillberg och Fredrik Gustavsson för handledning och stöd under examensarbetet. Det har alltid känts som att man har någon att fråga ifall ett problem eller fundering skulle dyka upp. ix

Innehåll 1 Inledning 3 1.1 Problemspecificering... 3 1.2 Syfte................................... 3 1.3 Begränsingar.............................. 4 1.4 Metod.................................. 4 1.5 Disposition............................... 4 2 Ljudeffekter 5 2.1 Översikt... 5 2.1.1 Tidsfördröjningar........................ 5 2.1.2 Amplitudmodulering...................... 5 2.1.3 Frekvensmodulering...................... 6 2.1.4 Vågformseffekter........................ 6 2.1.5 Reverberation.......................... 6 2.1.6 Phase Vocoder......................... 6 2.1.7 Sourcefilter........................... 6 2.2 Effekter i MATLAB TM......................... 6 2.3 Sammanfattning............................ 7 3 Tidsfördröjningar 9 3.1 Kamfilter... 9 3.1.1 FIR - Finite Impulse Response................ 9 3.1.2 IIR - Infinite Impulse Response................ 11 3.1.3 Allpassfilter........................... 11 3.1.4 Tapped Delay Line....................... 13 3.2 Phaser.................................. 13 3.2.1 Teknik.............................. 14 3.2.2 Implementering......................... 14 3.3 Flanger................................. 15 3.3.1 Teknik.............................. 15 3.3.2 Implementation......................... 16 3.4 Vibrato... 17 3.4.1 Teknik.............................. 17 3.4.2 Implementation......................... 17 xi

xii Innehåll 3.5 Doubler................................. 17 3.5.1 Teknik.............................. 18 3.5.2 Implementation......................... 18 3.6 Chorus.................................. 18 3.6.1 Teknik.............................. 18 3.6.2 Implementation......................... 18 3.7 Sammanfattning... 18 4 Reverberation 21 4.1 Bakgrund................................ 21 4.2 Teknik.................................. 22 4.3 Implementation............................. 22 4.3.1 Schroeder med N stycken allpassfilter............ 23 4.3.2 Schroeder med 4 kamfilter och 2 allpassfilter........ 23 4.3.3 Schroeder med tapped delay line............... 23 4.3.4 Moorer... 24 4.4 Sammanfattning... 24 5 Modulation 25 5.1 Kompression och expandering..................... 25 5.1.1 Användningsområden..................... 25 5.1.2 Teknik.............................. 26 5.1.3 Implementation......................... 26 5.2 Limiter................................. 27 5.3 Noise Gate............................... 27 5.3.1 Användningsområden..................... 27 5.4 Panorama................................ 28 5.4.1 Användningsområden..................... 28 5.4.2 Teknik.............................. 28 5.4.3 Implementation......................... 29 5.5 Tremolo................................. 29 5.5.1 Användningsområden..................... 29 5.5.2 Implementation......................... 30 5.6 Tidstöjning............................... 30 5.6.1 Teknik.............................. 30 5.6.2 Implementation......................... 30 5.7 Tonlägesändring... 31 5.7.1 Teknik.............................. 31 5.7.2 Implementation......................... 31 5.8 Wahwah... 32 5.8.1 Teknik.............................. 32 5.8.2 Implementation......................... 32 5.9 Sammanfattning... 32

Innehåll xiii 6 Vågformseffekter 35 6.1 Overdrive................................ 35 6.1.1 Mjuk symmetrisk klippning.................. 35 6.1.2 Asymmetrisk klippning.................... 36 6.2 Fuzzeffekt................................ 38 6.3 Användningområden.......................... 39 6.4 Sammanfattning............................ 39 7 Phase Vocoder 41 7.1 Bakgrund................................ 41 7.2 Teknik.................................. 42 7.3 Filterbanksmetoden.......................... 42 7.4 FFT metoden.............................. 44 7.5 Effekter... 45 7.5.1 Tidstöjning (Timestretch)................... 45 7.5.2 Tonlägesändring (Pitchshift)................. 46 7.5.3 Roboteffekt........................... 46 7.5.4 Viskningseffekt......................... 46 7.5.5 Brusreducering......................... 47 7.6 Sammanfattning............................ 47 8 Source-filter 49 8.1 Bakgrund................................ 49 8.2 Teori................................... 49 8.2.1 Cepstrum............................ 49 8.2.2 Homomorfisk korssyntes.................... 51 8.3 Kalle-anka effekt............................ 52 8.4 Pitcheffekt................................ 52 8.5 Sammanfattning............................ 53 9 Gränssnittet 55 9.1 Översikt... 55 9.1.1 Ljudkälla............................ 55 9.1.2 Filter.............................. 57 9.1.3 Parametrar........................... 58 9.1.4 Kontroller............................ 58 9.1.5 Läge............................... 58 9.1.6 Realtidsinställningar...................... 58 9.1.7 Spektrum............................ 58 9.1.8 Figurläge............................ 59 9.1.9 Tidsplanet... 59 9.1.10 Frekvensplanet......................... 59 9.2 Uppbyggnad............................... 59 9.2.1 Katalogstruktur........................ 59 9.2.2 Huvudfilen fxdemo.m..................... 60 9.2.3 arg_test.m... 60

9.2.4 fx_categories.m... 61 9.2.5 set_arguments.m........................ 61 9.2.6 sort_filters_into_categories.m................ 62 9.2.7 set_def_values.m....................... 62 9.2.8 run_filter... 62 9.2.9 show_plots.m... 62 10 Resultat 63 10.1 Måluppfyllnad............................. 63 10.2 Begränsningar.............................. 64 10.3 Fortsatt arbete............................. 64 Litteraturförteckning 65 A Handledning 67 A.1 Införande av ny effekt......................... 67 A.2 NyEffektirealtid... 70 A.3 Införande av ny kategori........................ 71

Innehåll 1 Figurer 2.1 Exempel på hur ett fircomb filter kan implementeras i MATLAB TM Simulink TM 7 3.1 Frekvenssvaret för ett IIRkamfilter................... 10 3.2 Blockschema för ett FIRkamfilter................... 10 3.3 Blockschema för ett IIRkamfilter.................... 11 3.4 Impulssvaret för ett iir kamfilter.................... 12 3.5 Blockschema för ett allpassfilter.................... 12 3.6 Impulssvaret för ett allpassfilter.................... 13 3.7 Blockschema för en delay line...................... 14 3.8 Blockschema för den phaser som är implementerad i ljudeffektsdemot. 15 3.9 Blockschema för den flanger som är implementerad i ljudeffektsdemot. 16 3.10 Simulinkschema över flanger-, vibrato- och doublereffekt....... 16 3.11 Blockschema över en vibratoeffekt................... 17 4.1 Ett ljuds impulssvar i ett rum, från [11]............... 22 4.2 Blockschema över Schroeders reverberator med N seriekopplade allpassfilter................................. 23 4.3 Blockschema över Schroeders reverberator med fyra parallella kamfilter i serie med två allpass filter från [11]............... 24 5.1 Blockschema/principskiss för en kompressor............. 26 5.2 Blockschema för en kompressor enligt [2]............... 27 5.3 Stereo panning, [16].......................... 28 5.4 Tidstöjning med SOLA-metoden från [23]............... 31 5.5 Blockschema för en wahwah effekt.................. 32 6.1 1kHz Sinussignal som passerat en mjuk symmetrisk klippning... 36 6.2 FFT-analys av en 1kHz Sinussignal som passerat en mjuk symmetrisk klippning.............................. 37 6.3 Karakteristik för rör-förförstärkarstegssimulering.......... 37 6.4 f(x) = arctan x ger upphov till övertoner efter att en 1kHz-sinus passerat effekten............................ 38 7.1 Filterbankmodellen av en phase vocoder................ 43 7.2 En av kanalerna i filterbanksmodellen från [8]............ 43 7.3 Jämförelse mellan filterbankstolkningen och fft tolkningen..... 44 7.4 Fft-tolkningen av en phase vocoder, från [23]............. 45 7.5 Simulinkschema över roboteffekten................... 47 8.1 Resonanskurva............................. 50 8.2 Blockschema för separering av filter................. 51 8.3 Korssyntes................................ 52 8.4 Ett vanligt Phasevocodersteg tillsammans med införandet av en korrigeringsresonanskurva......................... 52 8.5 Blockschema för att ta fram filtret för sourcefiltereffekterna.... 53

2 Innehåll 9.1 Översiktöveranvändargränssnittet... 56 9.2 Grundparametrar för firkamfiltret................... 61 A.1 Simulinkmodellen för firkamfiltret................... 71

Kapitel 1 Inledning Signalbehandling har länge använts för att skapa ljudeffekter av olika slag. Detta på grund av den ständigt ökande datorutvecklingen som gör det mer attraktivt att använda tekniken. Exempel på uppenbara fördelar med digitala signalbehandlingstekniker är möjligheten att enkelt lägga till, eller ta bort ljud i en inspelning i efterhand. Nu kan man till exempel rädda misslyckade inspelningar eller lägga till effekter som kan vara svåra att realisera i verkligheten. 1.1 Problemspecificering På föreläsningarna i kursen TSRT78, Signalbehandling på Linköpings tekniska högskola så används ett ljudeffektsdemostrationsprogram. Syftet är att visa på möjligheter med digital signalbehandling och därigenom öka intresset för ämnet. I dess nuvarande form är däremot demonstratorn inte fullt utvecklad då det är svårt att t.ex. implementera nya effekter. Dessutom är utbudet av effekter relativt begränsat. Programmet använder sig av ett grafiskt gränssnitt som kan utvecklas vidare. I ljuddemot finns det vidare ingen möjlighet att köra effekter i realtid. 1.2 Syfte Målet med examensarbetet är att med utgångspunkt från nuvarande ljudeffektsdemonstrator konstruera ett nytt program. Den nya mjukvaran ska ha bättre stöd för att utökas med fler effekter. En omfattande litteraturstudie ska genomföras som sedan kommer att ligga till grund för vilka effekter som kommer att ingå i demonstratorn. Vidare ska effekterna struktureras upp i kategorier och implementeras. I gränssnittet ska man kunna ladda in ljudfiler, applicera vald effekt och spela upp resultatet. Resultatet ska dessutom presenteras via figurer som skildrar tidsdomän, frekvensdomän samt signalens spektrum. Möjligheten att använda effekterna i realtid kommer också att undersökas. 3

4 Inledning 1.3 Begränsingar En begränsning i examensarbetet är att de beskrivna ljudeffekterna bara kommer att presenteras på ett mer principiellt och översiktligt sätt och inte på detaljnivå. Detta framförallt för att begränsa arbetsbördan, eftersom vissa av ljudeffekterna har en omfattande teori. Rapporten begränsas även utav att effekterna bara presenteras i enlighet med hur de har implementerats i demonstratorn och andra metoder till att framställa effekterna diskuteras inte. 1.4 Metod Examensarbetet bygger på en omfattande litteraturstudie som gjorts för att få en översikt över vilka ljudeffekter som är intressanta att implementera. Ett användarinterface har byggts upp i MATLAB TM 6.5 med hjälp av verktyget guide. Algoritmerna för ljudeffekterna från litteraturstudien har sedan implementerats i demonstrationsprogrammet. 1.5 Disposition Rapporten är uppbyggd på följande sätt. Kapitel 2 ger en kort översikt av de olika typer av ljudeffekter som det är tänkt att demonstratorn ska innehålla. Effekterna är kategoriserade efter vilken typ av manipulering av signalen som görs för att framställa effekten. En kort introduktion till hur beräkningsverktyget MATLAB TM kan användas för att implementera effekterna (både offline och i realtid) återfinns också. I de kapitel som följer, kapitel 3 till och med kapitel 8, behandlas de implementerade ljudeffekterna mera i detalj. Varje kapitel hanterar en kategori av ljudeffekter. De kategorier som finns är tidsfördröjningar, reverberation, amplitudmodulering, frekvensmodulering, vågformseffekter, phase vocoder och sourcefilter. Till sist, i kapitel 9, presenteras det användargränssnitt som har arbetats fram, vilka dess olika delar består av och på vilket sätt de har byggts upp.

Kapitel 2 Ljudeffekter I detta kapitlet ges en kort översikt över vilka ljudeffekter som har implementerats i demonstratorn. Något om hur man kan implementera effekter i MATLAB TM diskuteras. 2.1 Översikt När man talar om ljudeffekter, menar man artificiell förändring av ljud. Ljudeffekter används till exempel i stor omfattning i dataspel, filmer och musik. Det finns ett stort antal typer av ljudeffekter och nedan kommer var och en att diskuteras. Typerna sammanfaller med de kategorier av effekter som det är tänkt att ljuddemot ska bestå av. Översikten är med all säkerhet inte heltäckande för hela ljudeffektsområdet. 2.1.1 Tidsfördröjningar Tidsfördröjningar och då främst eko-effekter av olika slag uppkommer naturligt när ljud studsar från olika typer av objekt. Beroende på om objektet t.ex. en vägg står nära eller långt borta så förändras effekten. Det finns fler effekter än ekon som bygger på tidsfördröjningar, så som reverberation (sv. genljud), flanging, korus eller faseffekter (phasing). Eftersom gruppen reverberationseffekter är ett lite större område har dessa samlats under en egen kategori. 2.1.2 Amplitudmodulering Amplitudmodulering betyder att amplituden (eller ännu enklare, ljudvolymen) hos en signal förändras över tiden. En typisk sådan effekt i ljudsammanhang är tremoloeffekten, som kontinuerligt ändrar amplituden mellan ett max och min värde. Flera effekter som passar in i denna kategori är till exempel kompression/expandering och så kallade noisegates. 5

6 Ljudeffekter 2.1.3 Frekvensmodulering Frekvensmodulering innebär att frekvensen hos signalen förändras. På ljudspråk är detta detsamma som att ändra tonhöjden. En typisk effekt i detta sammanhang är vibrato. En annan som passar in här är s.k. pitchförändringseffekter, det vill säga att man förändrar tonläget för till exempel en röst. 2.1.4 Vågformseffekter Vågformseffekter är distorsionseffekter som främst har sitt ursprung i överstyrning av elgitarrförstärkare. Sådana här effekter brukar numera skapas i förförstärkare och även med pedaler för elgitarrer, ett exempel är s.k. fuzz -pedaler. 2.1.5 Reverberation Reverberation, på svenska genklang, är en effekt som uppkommer i rum när ljudet delas upp i olika delar som fördröjs olika mycket. Jämför en studiolokal och ljudet i en kyrka eller konserthall. 2.1.6 Phase Vocoder Den engelska termen Phase Vocoder har flera olika betydelser. I denna text syftar dock termen till betydelsen att man tar den så kallade korta Fouriertransformen av en signal, gör någon form av transformering i Fourierdomänen och därefter inverstransformeras signalen. En enkel men kraftfull effekt som man kan skapa med denna teknik är till exempel en robotröst. Andra implementationer gör det möjligt att ändra tonläget på en röst utan att använda sig av de tekniker som beskrivs i frekvensmoduleringavsnittet. 2.1.7 Sourcefilter Sourcefiltereffekter bygger på att man delar upp signalen i två delar, varav den ena är en resonansdel. Resonansdelen är en delinformation av det vanliga spektrat och enkelt beskrivet en utslätad variant av spektrat av en signal. Resonanskurvan kan räknas fram så att den finns tillgänglig i Fourierdomänen och på så sätt kan denna resonanskurva användas i samband med Phasevocodern i transformationssteget. Nu är det möjligt att förändra resonansegenskaperna för ett ljud genom att hämta ny resonansinformation från ett annat ljud och lägga in detta i ljudet man vill förändra. Med denna effekt kan till exempel ett Kalleankaljud skapas. 2.2 Effekter i MATLAB TM När man ska producera effekter i MATLAB TM kan man göra på olika sätt. Men främst vill vi särskilja på följande: Offline-effekter

2.3 Sammanfattning 7 För att skapa en offline-effekt, skriver man antigen ett script eller en funktion som realiserar effekten. Detta görs i en s.k. text M-fil. Ljud kan läsas in (kommandot wavread som finns som standardkommand i MATLAB TM 6.5) till en datavariabel där amplitudvärdena ligger mellan -1 och 1. Nu kan ljudet behandlas, men det kräver att man har tillgång till hela ljudsekvensen på en gång. function yf=fircomb(y,delay,attenuation,fs) g=attenuation; m=round(fs*delay); b = [1 zeros(1,m) g]; a = [1]; yf=filter(b,a,y); %Exempel på hur ett firkam filter kan skrivas offline, %se kaptitlet tidsfördröjningar för en beskrivning av firkamfilter. Realtidseffekter För att göra en realtidseffekt kan man, om man har toolboxen DSP Blockset installerad, bygga ett Simulinkschema. Via Simulink TM kannu,ommanhar en Windows dator, ljud läsas in och behandlas. Om datorn dessutom är utrustad med ett duplexljudkort kan man simultant spela upp ljudet. Värt att notera är dock att simulink buffrar ljudet och behandlar sedan ett visst antal sampel (s.k. framesize) åt gången vilket gör att ljudet får en liten fördröjning. Figur 2.1. Exempel på hur ett fircomb filter kan implementeras i MATLAB TM Simulink TM 2.3 Sammanfattning Detta kapitel har presenterat översiktligt de ljudeffekter som kommer att implementeras i demonstrationsprogrammet. Som nämndes inledningsvis i kapitlet så sammanfaller kategorierna huvudsakligen med de som är tänkt att återfinnas i mjukvaran. Varje av dessa kategorier kommer att följas upp i nästföljande kapitel. Tidsfördröjningar, modulering och vågformseffekter får betraktas som lite mera grundläggande effekter. Reverberation avsnittet är ett lite mer avancerat

8 Ljudeffekter och de avancerade är phasevocoder och sourcefilter avsnitten. En enkel översikt presenteras i hur effekterna implementeras i MATLAB TM och vad skillnaden mellan offlineeffekter och realtidseffekter är. Nästa avsnitt kommer att behandla den första kategorin, tidsfördröjningar.

Kapitel 3 Tidsfördröjningar Kapitlet går igenom de tidsfördröjande effekter som finns under kategorin Time Delay i demoprogrammet. Time Delay är en kategori som innehåller några av de vanligaste och mest kända formerna av ljudeffekter. De har länge använts i musikbranschen för att skapa ekon och ge mer rymd åt en signal. Kapitlet tar först upp de allra enklaste konstruktionerna som kan användas till tidsfördröjande effekter och går sedan in på hur dessa kan kombineras till att bygga upp mer avancerade effekter. 3.1 Kamfilter Kamfilter är de enklaste strukturer som kan användas för att framställa tidsfördröjande effekter, och de har fått namnet från deras kamliknande frekvenssvar. Ett exempel på detta finns i figur 3.1 för ett IIRkamfilter. Filtren används även som byggblock när mer avancerade typer av ekoeffekter konstrueras, till exempel i reverberationsalgoritmer. 3.1.1 FIR - Finite Impulse Response FIRkamfiltret är en konstruktion som simulerar ett enda eko av en signal. För att en tidsfördröjd signal ska uppfattas som ett eko bör den vara fördröjd åtminstonde med 50 ms. Blockschemat för ett FIRkamfilter syns i figur 3.2. Utsignalen ges via differensekvationen som och överföringsfunktionen för filtret är y f (n) =y(n)+g y(n M) H(z) =1+G z M Typiska parametrar man kan ställa in för ett firkamfilter är förstärkningen av den fördröjda signalen, G, samt tidsfördröjningen på ekot, M [23]. 9

10 Tidsfördröjningar Figur 3.1. Frekvenssvaret för ett IIRkamfilter. y(n) y G z M + f (n) + Figur 3.2. Blockschema för ett FIRkamfilter.

3.1 Kamfilter 11 3.1.2 IIR - Infinite Impulse Response IIRkamfiltret återkopplar den tidsfördröjda signalen så att flera avtagande ekon hörs istället för ett enda som är fallet med firkamfiltret. I figur 3.3 presenteras ett blockschema för filtret. Utsignalen för IIRkamfiltret beräknas via differensekvationen y f (n) =y(n)+g y f (n M) och filtrets överföringsfunktion är H(z) = 1 1+G z M Liksom för firkamfiltret är det förstärkningen, G, samt tidsfördröjningen, M, som y(n) + y f (n) + z M G Figur 3.3. Blockschema för ett IIRkamfilter. är de parametrar som kan vara intressanta att kunna ändra i en implementering av IIRkamfiltret. Ett exempel på filtrets impulssvar syns i figur 3.4 där värdena är satta till G =0.8 och M =5. Amplituden avtar med G, G 2, G 3 och så vidare. Det första ekot inträffar efter M sampel, nästa efter 2M sampel och så vidare, [23]. 3.1.3 Allpassfilter En viktig konstruktion i ljudeffektssammanhang är allpassfiltret. Detta definieras av att förstärkningen för samtliga frekvenser är 1, det vill säga att inga frekvenser dämpas som exempelvis med ett lågpassfilter eller kamfilter, emedan fasen varieras. Allpassfiltret är med andra ord ett utmärkt verktyg att använda för att åstadkomma rena tidsförskjutningar utan att förstärkningen påverkas. En kombination av ett FIR- och ett IIRkamfilter enligt figur 3.5 är ett sätt att implementera ett allpassfilter. Överföringsfunktionen för allpassfiltret skrivs som H(z) = G + z M 1 G z M I en implementering av allpassfiltret är det lämpligt att kunna göra samma inställningar som för kamfiltret. Ett allpassfilters impulssvar presenteras i figur 3.6. Även här är G =0.8 och M =5. I jämförelse med impulssvaret för IIRkamfilter syns det att allpassfiltrets impulssvar avtar mycket snabbare i början för detta

12 Tidsfördröjningar Figur 3.4. Impulssvaret för ett iir kamfilter. G y(n) + z M + + y f (n) + G Figur 3.5. Blockschema för ett allpassfilter.

3.2 Phaser 13 värde på G. Det första ekot återges med 1 G 2 styrka. Nästa med G(1 G 2 ), därefter med G 2 (1 G 2 ) och så vidare. Den stora skillnaden mellan kamfiltrets och allpassfiltrets impulssvar ligger i de första ekonen där de med kamfiltret får en högre amplitud. Allpassfiltret lämpar sig bättre än kamfiltret då man vill att ekon ska höras under ett längre intervall. Det beror på att man kan skruva upp förstärkningen högre utan att de tidiga ekonen får för stort genomslagskraft och på så sätt gör de senare ekonen mindre hörbara, [23]. Figur 3.6. Impulssvaret för ett allpassfilter. 3.1.4 Tapped Delay Line Även detta är en effekt som används flitigt framförallt i artificiella rumssimuleringar. En tapped delay line används för att simulera flera ekon från en enda ljudkälla. En delay line består av ett antal olika tidsfördröjningselement (firkamfilter) där signalen tas ut vid olika tidpunkter för varje element. Utsignalen består sedan av en summation av en direktsignal samt de fördröjda kopiorna av denna. Ett blockschema av en tapped delay line syns i figur 3.7. I ljudeffektsdemot finns en implementerad delay line där det går att ställa in hur många fördröjningselement som ska användas, N. Vidare går det att justera fördröjningen för varje enskilt element, M, samt förstärkningen för varje enskilt eko, G,[18]. 3.2 Phaser En phaser, eller phase shifter, brukar användas för att få en röst att låta artificiell och är ofta förkommande för att framställa robotröster.

14 Tidsfördröjningar y(n) z M1 z (M N M N 1) G M1 G MN 1 G MN + + + + + + y f (n) Figur 3.7. Blockschema för en delay line. 3.2.1 Teknik En phaser skapar ett antal hack (notches) i frekvensbandet som eliminerar de frekvenser i signalen där hacken ligger. Detta görs genom att signalen filtreras genom ett nätverk av tidsvarierande allpassfilter och sedan mixas med originalsignalen. Eftersom ett allpassfilter enbart inför en fasförskjutning så kommer den filtrerade signalen att ta ut originalsignalen för de frekvenser där fasförskjutningen är 180, vilket skapar hacken i frekvensbandet. För att enkelt förstå varför signalen elimineras av en tidsförskjutning, studera exempelvis vad som händer då en sinusvåg adderas med en annan sinusvåg. Om den filtrerade signalen inte fasförskjuts så kommer utsignalen från phasern att vara en kopia av insignalen med dubblerad amplitud. Tidsförskjuter man däremot den enda sinussignalen mot den andra med 180, så tar signalerna ut varandra och ett hack har skapats. Då allpassfiltren är tidsvarierande kommer hacken även att röra sig fram och tillbaka över frekvensbandet. Tidsvariationen brukar bestämmas av en olinjär matematisk funktion, ofta exponentiell. Används en linjär funktion så fås en sågtandsvariation i tidsfördröjningen. Om ett allpassfilter med linjär faskarakteristik används så kommer hacken att uppstå på multiplar av 360 där det första inträffar på 180. Detta gör att hacken blir jämnt fördelade utmed frekvensbandet ( 180, 540, 900 o.s.v.) och det är exakt så som flangern, som studeras i avsnitt 3.3, fungerar. I en phaser används i stället ett allpassfilter med olinjär faskarakteristik. Detta kan uppnås via en egenskap hos allpassfilter som gör att flera seriekopplade allpassfilter i sig kan studeras som ett enda allpassfilter. På så vis kan hack skapas på godtyckliga positioner i frekvensbandet via de olika allpassfiltren som ingår, [11]. För en mer ingående matematisk beskrivning av en phase shifter, se [18]. 3.2.2 Implementering En schematisk bild av en phaser kan ses i figur 3.8. Variabeln mix anger hur mycket av signalen som ska gå direkt till utgången och hur mycket av den som ska bli filtrerad. Typiskt hålls denna faktor till 0.5 för att få en så pass framträdande

3.3 Flanger 15 phasereffekt som möjligt eftersom man då erhåller en lika stor andel filtrerad signal som ofiltrerad. En annan parameter som kan vara intressant är någon form av djup, N, som bestämmer hur många allpassfilter som ska ingå i effekten. I kommersiella produkter brukar detta vara fyra, sex eller åtta stycken. Det område som hacken rör sig över i frekvensbandet brukar gå att ställa in med ett minimum och ett maximum värde. Hastigheten som hacken rör sig med sätts ofta till ett fixt värde. I vissa implementeringar finns det även en parameter som bestämmer bredden på hacken. y(n) 1 mix G1 mix y + f (n) + + AP 1 AP 2 AP N G2 + G 3 feedback Figur 3.8. Blockschema för den phaser som är implementerad i ljudeffektsdemot. 3.3 Flanger Flangern är ett specialfall av phase shifting effekten, som beskrevs i avsnitt 3.2. Effekten brukar liknas vid det ljud som hörs då ett jetplan flyger förbi, ett slags swooschande ljud. 3.3.1 Teknik Flangern använder, liksom phasern sig av hack (notches) i frekvensbandet för att upphäva eller förstärka olika delar av det. Skillnaden är att i en flanger så ligger hacken jämnt fördelade utmed frekvensbandet emedan de med en phaser kan placeras godtyckligt. Enkelt beskrivet så består en flanger av ett helt vanligt firkamfilter med tidsvarierande fördröjning. I termer av phase shifting består effekten av en phaser med ett allpassfilter som har en linjär faskarakteristik. Tidsfördröjningen brukar ligga kring 1 10 ms vilket är en kortare fördröjning än vad som uppfattas som ett eko (bör ha en fördröjning på minst 50 ms). Tidsvariationen som bestämmer hur hacken ska röra sig fram och tillbaka över frekvensbandet implementeras med hjälp av en lågfrekvent oscillator (LFO) och summeras med en fördröjningsoffset. Vågformen hos oscillatorn kan väljas godtyckligt, exempelvis som en sinus eller en trekantsvåg, och svänger oftast med en frekvens i intervallet 0.1 20 Hz, [2].

16 Tidsfördröjningar 3.3.2 Implementation Implementeringen av flangern i ljudeffektsdemot ges av blockschemat i figur 3.9. Den bygger huvudsakligt på arbetet av Bendiksen, [2], och används i de effekter som studeras i avsnitt 3.4 3.6. Motsvarande realtidsschema som är konstruerat FB y(n) + + y z M(n) Mix + f (n) LFO + 1 Mix Figur 3.9. Blockschema för den flanger som är implementerad i ljudeffektsdemot. i Simulink TM, presenteras i figur 3.10. Den tidsvarierande vågformen är i det här Figur 3.10. Simulinkschema över flanger-, vibrato- och doublereffekt. fallet satt till en sinusvåg. Liksom för phasern finns det parametrar i Sine Waveblocket som begränsar intervallet som hacken rör sig över samt hastigheten på dessa variationer. Med DSP Constant går det att lägga in en offset för tidsfördröjningen, det vill säga den lägsta tidsfördröjningen som kan uppstå. Feedforward och Blend

3.4 Vibrato 17 motsvarar Mix och 1 Mix i figur 3.9. Mix= 1ger en helt filtrerad signal emedan Mix= 0ger en helt omodifierad signal. 3.4 Vibrato Vibrato är en effekt som genom att lägga på en periodiskt varierande tidsförskjutning på en signal skapar periodiska variationer i tonläget (pitchen) på signalen. Effekten brukar användas för att framhäva den signal som den appliceras på och få den att uppfattas som mastigare. 3.4.1 Teknik En vibratoeffekt består av ett enda tidsfördröjningselement där tidsfördröjningen bestäms av en lågfrekvent oscillator enligt blockschemat i figur 3.11. Lägg märke till att vibratoeffekten är detsamma som fördröjningselementet i figur 3.9. För y(n) z M(n) y f (n) LFO Figur 3.11. Blockschema över en vibratoeffekt. en typisk vibratoeffekt används en väldigt liten skillnad i fördröjning, runt 0.1 2 ms. Frekvensen som fördröjningen varierar med ligger runt 2 10 Hz, [2]. 3.4.2 Implementation Som tidigare nämndes, i avsnitt 3.3.2, går det att använda samma implementering av den här effekten som för flangern. Intressanta parametrar i det här fallet är intervallet för tidsfördröjningen samt dess frekvens. Däremot behövs inte några parametrar för de olika förstärkningarna som i figur 3.9. Detta beror på att en vibratoeffekt ska vara en helt filtrerad signal utan någon återkoppling. Inte heller används någon fördröjningsoffset till vibratot. Det går alltså att hårdkoda vissa delar av den implementerade flangern. Mer exakt sätts Mix till ett samtidigt som förstärkningen i återkopplingen och offseten sätts till noll. 3.5 Doubler Doubler, även kallad slapback är en ljudeffekt som ger intrycket av ett en enda signal blir uppspelad från två olika ljudkällor när det i själva verket bara är en enda. Man vill få en snabb repetition av signalen med så pass kort fördröjning att det inte uppfattas som ett eko samtidigt som tidsfördröjningen varieras långsamt på repetitionen.

18 Tidsfördröjningar 3.5.1 Teknik Tekniken bakom en doubler är även den väldigt lik den för flangern, som beskrivs i avsnitt 3.3. Den stora skillnaden ligger i att signalen inte återkopplas då en doubler används, eftersom man bara vill ha en enda repetition. Den tidsvarierande fördröjningen varierar långsammare, mellan 0.1 1 Hz, och ligger i intervallet 10 20 ms, [2]. 3.5.2 Implementation Implementeringen av doublern är också exakt likadan som för flangern enligt figur 3.9 med undantag av, som tidigare nämnts, återkopplingsslingan. I övrigt är det samma parametrar som brukar finnas med i en mjukvaruframställd doublereffekt. 3.6 Chorus Precis som det låter på namnet gör den här effekten att en enda signalkälla kan upplevas som att den ges ifrån flera olika källor på en gång, precis som en kör i sångsammanhang. 3.6.1 Teknik Tekniken för att simulera körkänslan går ut på att en enda signalkälla mixas med ett antal tidsförskjutna och pitchskiftade kopior av sig själv. Att tidsförskjuta en signal och skapa en variation i pitch är precis vad flangern gör, (se avsnitt 3.3). Ett choruselement är alltså detsamma som ett flangerelement men med lite andra parametrar på fördröjningarna. Fördröjningen på choruselementen ligger något högre än hos flangern, typiskt i storleksordningen 20 30 ms. Den lågfrekventa oscillatorn har en något lägre frekvens än hos flangern, närmare den hos doublern, och bör inte överstiga 3 Hz. För att få en effekt av fler än en extra körsångare brukar flera parallella choruselement användas. Då deras signaler inte ska sammanfalla ligger de lågfrekventa oscillatorerna något ur fas gentemot varandra, [18]. 3.6.2 Implementation Liksom doublern och vibratoeffekten så går det att implementera en choruseffekt med flangern i figur 3.9 som grund. Skillnaden ligger i, som tidigare nämnts, att flera parallella fördröjningselement används. Hur många fördröjningselement som ska användas brukar kunna styras med en parameter, i vanliga fall djup, i mjukvaruimplementationer av choruseffekten. 3.7 Sammanfattning Tidsfördröjningseffekter går ut på att en signal fördröjs på något sätt och sedan mixas ihop med orginalsignalen. Tidsfördröjningen kan vara en konstant förskjut-

3.7 Sammanfattning 19 ning i tidsdomänen eller så kan den variera med en lågfrekvent oscillator. I nästa kapitel studeras artificiell rumssimulering, reverberation, vilket är en kategori som bygger på tidsfördröjningar.

20 Tidsfördröjningar

Kapitel 4 Reverberation Kapitlet behandlar begreppet reverberation, artificiell rumssimulering, och beskriver hur sådana effekter är uppbyggda. Reverberationseffekterna byggs ofta upp via kombinationer av de tidsfördröjande element som presenterades i avsnitt 3.1. I det här kapitlet studeras ett par av de mest kända reverberationseffekterna. 4.1 Bakgrund Begreppet reverberation är i ljudeffektssammanhang en simulering av hur ljudvågor reflekteras mot diverse hinder och sedan återvänder till lyssnaren. Fenomenet har länge studerats och mycket information som beskriver ljudeffekten finns, exempelvis i [10], [11] och [7]. Reverberation existerar överallt i det vardagliga livet. Så fort vi befinner oss i ett instängt utrymme ger väggar och tak upphov till effekten då ljudvågorna studsar mot dessa. Mest märks den i exempelvis kyrkor eller stora salar, då fördröjningen innan ekon återvänder är längre. Tekniken med artificiell reverberation utvecklades för att ge musiker möjlighet att få sina alster att låta som om de blivit inspelade i en ordentlig konsertsal, även om musikern i fråga inte var tillräckligt privilegierad att ha en sådan sal att tillgå. I början användes så kallade ekokammare, ett liten rum med väggarna klädda i ett ljudreflekterande eller absorberande material, för att framställa en reverberationseffekt. Ekokammarna ersattes senare av tekniker som inte krävde mycket utrymme men ändå framställde reverbeffekten. Mest använda blev fjäder- och plattreverberatorerna. Den första består av en omvandlare som gör om de elektriska signalerna till mekanisk energi. Denna energi sänder en våg genom en fjäder som sedan omvandlas till elektrisk signal igen och summeras med en direktsignal från ljudkällan. En del av energin reflekteras dock tillbaka i fjädern och ger upphov till ekon i reverbeffekten. Plattreverberatorn fungerar på ett liknande sätt men här är omvandlarna istället kopplade till en metallplatta som vibrationerna sänds genom, [11]. De första digitala varianterna av reverberatorer började med tillbakakopplade fördröjningar av ljudsignalen, men algoritmerna blev snabbt mer avancerade. Den algoritm som har haft störst betydelse presenterades av Manfred Schroeder 1961 och använder sig av parallellkopplade kamfilter i serie med allpassfilter. 21

22 Reverberation 4.2 Teknik För att undersöka hur en reverbeffekt implementeras är det lämpligt att först studera hur impulssvaret för en ljudsignal i ett rum ser ut. I figur 4.1 presenteras ett sådant impulssvar. Schroeder experimenterade mycket med framförallt två Figur 4.1. Ett ljuds impulssvar i ett rum, från [11] tekniker för att på artificiell väg återskapa ett sådant impulssvar. Dessa var som tidigare nämnts kamfilter (se avsnitt 3.1) och allpassfilter (se avsnitt 3.1.3). De lämpar sig väl för rumssimuleringar eftersom respektive impulssvar i kombination kan approximera impulssvaret för ett instängt utrymme ganska bra. De tidiga reflektionerna brukar implementeras med en tapped delay line (se avsnitt 3.1.4), eftersom dessa enbart är ekon med olika fördröjning och försvagning. De senare reflektionerna återfås med hjälp av kombinationer av parallellkopplade IIRkamfilter i serie med allpassfilter. Schroeders mest använda reverberator består av fyra parallella IIRkamfilter i serie med två allpassfilter. En välfungerande och vedertagen version av denna presenterades av James Moorer 1979, [13]. Han använde sig av en tapped delay line, för de tidiga reflektionerna, följd av sex parallella kamfilter samt ett seriekopplat allpassfilter. En förbättring som Moorer införde var att lågpassfiltrera signalerna i kamfiltrens återkopplingsslinga. På så sätt lyckades han att eliminera mycket av det metalliska ljud som filter annars ger upphov till. 4.3 Implementation I ljudeffektsdemot finns ett antal varianter på Schroeders reverberator implementerade och de presenteras därför lite närmare i detta avsnitt. För att skapa en reverberationeffekt går det att experimentera med olika kombinationer av kamfil-

4.3 Implementation 23 ter efter eget tycke. Denna rapport begränsar sig dock till att ta upp de effekter som finns med i demonstratorn. Samtliga effekter i avsnittet bygger på de som har implementerats av Gautham J. Mysore [14]. 4.3.1 Schroeder med N stycken allpassfilter Effekten som i demonstratorn går under benämningen Schroeder n allpass grundar sig alltså på Schroeders teorier. I figur 4.2 presenteras ett blockschema för den här effekten. I demonstratorn går det att ange hur många allpassfilter som ska y(n) y Allpass 1 Allpass 2 Allpass N + f (n) + G Figur 4.2. Blockschema över Schroeders reverberator med N seriekopplade allpassfilter. seriekopplas och vilken förstärkning filtren ska ha. Det är samma förstärkning för samtliga filter och den bör vara mindre än ett för att systemet ska förbli stabilt. Vidare går det att ange vilken fördröjning (i ms) som var och ett av filtren ska ha. Det finns även en parameter som styr förstärkningen, G, på den signal som går direkt till utgången utan att passera något filter. Ekonen uppkommer via återkopplingsslingorna i allpassfiltren. 4.3.2 Schroeder med 4 kamfilter och 2 allpassfilter En av de mest kända varianterna av Schroeders reverberationsalgoritmer, som tidigare nämnts i avsnitt 4.2, är den som består av fyra stycken kamfilter i serie med två allpassfilter. Figur 4.3 visar hur en sådan är implementerad i Simulink TM. Intressanta parametrar är förstärkning och fördröjning för samtliga filter. Typiska värden är 0.7 i förstärkning för allpassfiltren och fördröjningar på 5 respektive 1.7 ms. Fördröjningarna för kamfiltren brukar ligga mellan 30-80 ms [9]. 4.3.3 Schroeder med tapped delay line Den här varianten är en utökning av föregående effekt. Systemet har nu blivit utökat med en tapped delay line innan kamfiltren. Detta gör att de tidiga reflektionerna i rumssimuleringen representeras bättre. I ljudeffektsdemot kan man ställa in hur många filter som ska ingå i delay line samt vilken förstärkning och fördröjning de ska ha. Det går även att ställa in förstärkningarna på de parallella kamfiltren. För att hålla nere antalet parametrar har standardvärden använts för de övriga parametrar som beskrevs i avsnittet innan.

24 Reverberation Figur 4.3. Blockschema över Schroeders reverberator med fyra parallella kamfilter i serie med två allpass filter från [11]. 4.3.4 Moorer Detta är den variant av reverberatorn som Moorer tog fram 1979. Den består av sex parallella kamfilter i serie med ett enda allpassfilter. Kamfiltren har blivit utökade med varsitt lågpassfilter i återkopplingsslingan för att reducera det metalliska ljudet. Liksom för andra implementationer av reverberationseffekter kan det vara intressant att styra förstärkningar och fördröjningar för samtliga filter. På så vis går det att finjustera effekten så att den liknar det utrymme som ska simuleras oavsett om det så är en liten skrubb eller en katedral. 4.4 Sammanfattning Reverberationseffekten går ut på att, genom att kombinera olika tidsfördröjande element, skapa en effekt som återspeglar hur det låter då en signal reflekteras mot väggarna i ett instängt utrymme. I kapitlet presenterades ett par av de vanligaste algoritmerna som används för denna effekt och hur de kan implementeras i mjukvara. I nästa kapitel kommer modulering av signalen att studeras både vad gäller dess amplitud och frekvensegenskaper.

Kapitel 5 Modulation De effekter som beskrivs i detta kapitel har implementeras dels under kategorin Amplitude modulation och dels Frequency effects i demonstrationsprogrammet. Amplitudmodulering som begrepp syftar på att man med hjälp av en sinussignal, som används som lågfrekvent bärvåg överlagrar en ljudsignal. Det är endast tremoloeffekten i kapitlet som uppfyller detta. Ett bättre kategorinamn hade varit Amplitude manipulation eftersom kategorin innehåller effekter med ett vidare synsätt och syftar på att ljudnivån på något sätt förändras eller manipuleras över tiden. Fler effekter som återfinns i Amplitude modulation kategorin är kompression, expandering, Limiting och Noisegate och panorama. De ljudeffekter som finns under kategorin Frequency effects och syftar på att det är frekvensen som manipuleras, är tidstöjning, tonlägesändring och wahwah effekten. 5.1 Kompression och expandering En kompressor i ljudsammanhang används för att minska dynamiken i en ljudsekvens. Enkelt beskrivet så fungerar en kompressor så att hög ljudvolym inte förstärks lika mycket medan låg ljudvolym får vara som den är. För att inte få för låg ljudvolym efter komprimeringen så kan det vara nödvändigt att förstärka den komprimerade signalen. En expanderare fungerar principiellt som en kompressor, men skillnaden är att låga ljudnivåer delas ner och höga ljudnivåer får vara kvar på samma nivå [23]. 5.1.1 Användningsområden En kompressor är ett viktigt verktyg för ljudteknik och det finns en rad tillämpningar. En tidig tillämpning var i början på 1900-talet då inspelningar skedde helt analogt. Ljudet fick då inte gå över vissa gränser då det fanns risk för fysiska skador på inspelningsmediet. För de lite mer moderna magnetiska kassetterna finns det en risk för distorsion om inspelningen har för hög ljudvolym. En kompressor 25

26 Modulation kan även användas för att minska problem, och jämna ut ljudet ifall en sångare eller ett instrument ändrar på sin position i förhållande till en mikrofon, se [12]. Det är mycket vanligt att ett musikinstrument kombineras med en kompressor. Ljudet från en elgitarr kan jämnas ut så att andra (resonans) ljud än det framträdande ljudet från knäppt sträng hörs tydligare. Dessutom ökar varaktigheten för instrumentet eftersom de låga ljudvolymerna gynnas. En för hård komprimering kan dock göra instrumentet livlöst eftersom de karaktäristiska ljuden dämpas effektivt. 5.1.2 Teknik En kompressor är en variabel förstärkare där förstärkningen styrs av insignalen. x y Nivådetektering Förstärkning Figur 5.1. Blockschema/principskiss för en kompressor Normala parametrar för en vanlig kompressor brukar vara tröskelvärdet för när kompressorn ska börja arbeta. Vanligtvis så beräknas tröskelnivån antingen med ett RMS (Root-Mean-Square) värde, eller helt enkelt med det momentana spänningsvärdet. Dessutom så vill man veta hur starkt kompressorn ska arbeta. Detta brukar anges med en ratioparameter. En 2:1 inställning betyder att insignaler med 2 db över tröskelvärdet, ger en utsignal med 1 db över tröskelvärdet. Ställer man in 10:1, behövs det 10 db över tröskelvärdet för att utgångsenergin över tröskeln ska ligga på 1 db. Ställer man in värden över detta (10:1) så börjar kompressorn att fungera som en begränsare och signaler större än tröskelvärdet får svårt att komma igenom. Ytterligare två viktiga parametrar är attacktid (attack time) och släpptid (release time). Attacktiden anger hur snabbt kompressorn ska ställa in den nya förstärkningen, och brukar vara i storleksordningen 0-100 ms. Släpptiden behöver inte vara lika snabbt inställd och kan vara uppemot en sekund [12]. 5.1.3 Implementation En enkel implementering av en kompressor/expanderare visas i figur 5.2. Implementationen saknar möjlighet att explicit ange attacktid och släpptid. Kompressorns prestanda beror istället på hur lågpassfiltret är konstruerat. Syftet är att få fram en medelnivå på signalen. Föreslaget är att man använder ett stabilt modifierbart andra ordningens lågpassfilter. Exakt hur filtret ska se ut beror på vilka krav man har på sin attacktid och får bestämmas empiriskt. Efter detta så

5.2 Limiter 27 x[n] y[n] x[n] LP-filter (...) comp Figur 5.2. Blockschema för en kompressor enligt [2] kan styrkan på kompressionen (eller expanderingen) ställas in genom att höja upp signalen med en parameter comp ɛ [ 1, 1]. 5.2 Limiter En limiter, på svenska begränsare, har som uppgift att begränsa ljudets amplitud till en speciell nivå. Det är frestande att tänka sig en enkel mättning för att begränsa signalen, men syftet med en limiter är att bibehålla dynamiken i signalen till så stor del som möjligt. En limiter är egentligen en kompressor med en hårt inställd nerdelning av ljudet (över 10:1) när man kommer över tröskelvärdet. Således brukar en limiter vara implementerad i samma hårdvara som en kompressor [11]. 5.3 Noise Gate En noisegate (bruskanal) fungerar i stora drag som en expanderare fast signalvärden under en viss tröskelgräns delas ner mot noll. Det vill säga att man har ett expansionsförhållande på 10:1 eller mer. Parametrarna attacktid och släpptid tillsammans med hålltid och tröskelgränser för att aktivera och deaktivera noisegaten är lika centrala som för expanderaren [11]. 5.3.1 Användningsområden Det största användningsområdet för en noisegate är inte helt oväntat för att reducera oönskat ljud när ett instrument inte åstadkommer ett ljud av sig själv. Detta blir speciellt intressant när man lägger samman olika instrument. Fördelen är ytterligare att gaten kan ställas in efter just det instrument man använder. Detta kan bero på att olika instrument kan ha olika avklingningstid (eng: decay time), vilket kan vara vanligt för till exempel trummor. En noisegate minskar risken för att mindre kraftfulla ljud drunknar i allt adderat oljud, eftersom detta har dämpats. Detta leder till att det sammantagna ljudet blir renare.