Laborationsprojekt i digital ljudsyntes A. Målsättning Att studenten skall få fördjupade kunskaper i digital signalbehandling genom att lära sig de grundläggande principerna för digital ljudsyntes av stränginstrumentliknande ljud. B. Arbetets uppläggning och redovisning Arbetet genomförs av en till två personer. Uppgiften är att med hjälp av plucked string filterteknik, designa stränginstrumentliknande ljud som kan användas för att sätta ihop ett enklare musikstycke. Uppgiften redovisas med en skriftlig rapport, en skala med de skapade tonerna samt det färdiga musikstycket. Processen fram till färdigt musikstycke kan sammanfattas i följande huvudblock I. Skapa tonbibliotek II. Sätt samman tonerna till en låt III. Spara låten till HD IV. Efterbehandling I. Skapa tonbibliotek Skapa kamfilter med lämpliga värden på R och T Lågpassfiltrera Finstäm filtret Välj insignal Skapa och spara tonen
II. Sätt samman tonerna till en låt Läs in biblioteket Skapa en tystnadston Bygg upp en vektor med valda toner av önskade längder Om flerstämmigt, bygg fler vektorer Mixa ned till stereo eller mono III Spara låten till HD Lyssna noggrant på din låt i ett bättre ljudsystem. Skriv den till HD i wav-format när du är nöjd
IV. Efterbehandling Lägg eventuellt på efterklang eller andra effekter Spara en inlämningsversion i mp3-format Skriv individuell rapport. Lämna in med låt och skala C. Teorier och principer 1. Svängande sträng: A plucked string has a dominant tone, set by the travel time for waves rebounding from end to end. Its timbre, or tonal character, depends on the mix of overtones higher modes and their decay times. Piano, harpsichord, harp are all different in this way. A guitarist makes muffled harmonics by supressing the fundamental, lowest tone. We hear all this because the resonant oscillator radiates through the air: it is quite inefficiently coupled, allowing the note to resound for some time before dying. The coupling with air is greatly increased by an intermediary: the small volume of the string first excites a sound board, whose breadth makes for better radiation.
2. Blockschema för plucked string filter Fig 1. Plucked string filter 3. Kamfilter Ett sk.kamfilter är fundamentet i vår design Fig 2. Signalflöde för ett kamfilter Överföringsfunktionen för ett kamfilter ges av Där R är polernas absolutbeloppet och L är tidsfördröjningen i återkopplingslänken. Polerna för detta filter ligger symmetriskt fördelade i z-planet
Fig 3. Polernas placering för L=8 Frekvensegenskaperna för ett kamfilter Fig 4. Frekvensegenskaperna för ett kamfilter ( enhet: del av f s ) 4. Frekvensegenskaper hos ett stränginstrument. Ett spektrogram för en gitarr visar att avklingningstiden för en viss anslagen ton är frekvensberoende. Höga frekvenser klingar av mycket snabbare än låga
Fig 5. Spektrogram för en ton från en "riktig" gitarr ( x-axel: tid, y-axel: frekvens, gråskala: amplitud) 5. Avklingning för kamfilter. För att åstadkomma instrumentriktig avklingning så måste ett lågpassfilter användas. Lågpassdelen anslutes enligt nedan Fig 7. Signalflödet för kamfilter med låpasskompensering
Fig 8. Spektrogram för en ton producerad av filtret. R=0.9995, L=75 och f s =22050 Hz) Överföringsfunktion för kamfilter med lågpassdel Fig 9. Amplitudsvaret för ett plucked string filter med L=32 och R=0.999. Trianglarna visar förväntade teoretiska resonansfrekvenser.
6. Finstämning av plucked-string-filter med hjälp av allpassfilter För att styra tonhöjden så kan vi variera loop-längden L (L, heltal). Grundfrekvensen ges ur sambandet Detta ger dock dåliga möjligheter till att kontrollera tonhöjden. f s = 22050 Hz och L = 10 f s = 22050 Hz och L = 9 => f 0 = 2100 Hz => f 0 = 2321 Hz Detta är för grovt för att kunna användas i musikaliska sammanhang Vi måste alltså kunna introducera fördröjningar som inte är heltal. Lösningen är ett allpass-filter. Ett sådant filter har konstant amplituddel för alla frekvenser medan fasdelen φ(ω)är frekvensberoende. Fig 10. Första ordningen all-pass-filter. Överföringsfunktionen för all-pass-filtret är Fasdelen kan då tecknas som Fördröjningen d= -φ(ω)/ω
Fig 11. Fasen (radianer) som funktion av frekvensen ( del av samplingsfrekvensen) Fig 12. Fördröjningen d (del av sample) som funktion av frekvensen ( del av samplingsfrekvensen)
OBS! ω 0 är 2πf 0 / f s (som i fig 11 och 12). a kan då lösas ut För att finstämma ustering av filter: Beräkna loopfördröjningen = f s / f 0 f s = samplingsfrekvens f 0 = tonfrekvens Välj L så att δ = loopfördröjning-l-0.5 ligger i intervallet [0, 1]. Beräkna a med hjälp av δ 7. Att välja lämpliga värden på R R är ett mått på systemets stabilitet. Om R >= 1 så är filtret instabilt. För att filtret skall klinga (ringa) så måste R väljas mycket nära 1. Stabilitetsgränsen får dock inte överskridas. 8. Att spela synthesizer (anslag). För att få känslan av en sträng som slås an brukar man välja en insignal som initialt innehåller höga frekvenser. Lämpligt kan vara 100-500 ms slumptal följt av några sekunder med nollor. Välj signalamplitud så att filtrets utsignal ej överskrider +- 1. Fig 14. Exempel på insignal
Ton 9. Ton-frekvenstabell Frekvens A 440 A# 466.16 H 493.88 C 523.25 C# 554.37 D 587.33 D# 622.25 E 659.26 F 698.46 F# 739.99 G 783.99 G# 830.61 A 880 10. Användbara MATLAB-instruktioner tf tfdata filter specgram sound D. Uppmjukning (redovisas ej) 1. Vad blir totala överföringsfunktionen för det återkopplade systemet nedan? 2. Vad gäller för polers- och nollställens placering för ett stabilt tidsdiskret system?
3. Konstruera ett kamfilter med med grundfrekvens ungefär lika med C (523.25 Hz). Välj en impuls som insignal. Lyssna på resultatet. Hur nära kan du komma? 4. Bestäm grafen för lågpassfiltrets amplitudegenskaper. (Se moment C). Hur mycket dämpar filtret vid 4000 Hz? 5. Modifiera ditt kamfilter (se 3) med lågpasskompensering enligt. Välj R så att utsignalen låter "behaglig". Rita spektrogram och jämför med stränginstrumentets histogram. 6. Komplettera ditt plucked-string-filter med en all-pass-länk. Finstäm en ton till exakt C.