Sida 2 av 3

Postat: 15 oktober 2007, 08:32:50
av dar303
Man brukar använda separata bandpassfilter och inte ett kamfilter.
Vocoders har ofta lite lätt överlappade frekvenskurvor på de olika banden som brukar ligga med centerfrekvenserna ca 1/4 till 1/2 oktav isär (dock inte alltid exakt, det finns tabeller för värdena och det har lite med språkets uppbyggnad att göra tror jag)
Dessutom brukar man ha en "voiced/unvoiced"-detektor som kopplar om mellan syntesdelens signal "voiced" och vitt brus "unvoiced" när det kommer bl.a "s"-ljud.

Det behövs inte direkt tusentals filterband utan de vocders som jag använt har haft 8 band (inte så bra), 10-11 band (bra) eller 22+ fler. Det beror lite på frekvenserna man väljer.
Det behövs sedan dubbla antalet filter mot antalet band, man har lika många band på analysdelen som på syntesdelen.
När man har "för många band" i en vocoder brukar det låta för bra tycker jag, robotkvaliten och det onaturliga försvinner. Det finns mjukvaruvocoders med 64 eller 128 band och de brukar inte vara så upphetsande... :)

En grej som skulle gör vocoders lite roligare är om du gör en volymkontroll och/eller en frekvenskontroll och eller/bandbreddskontroll på varje band så man kan ändra spektrumet drastiskt. Det blir många kontroller men man kanske kan köra med färre antal band.

blockschema från doepfer
Bild

blockschema från paia:
Bild

vill du ha ett bra kamfilter-liknade sound så rekommenderar jag dig att testa allpassfilter (phaser), detta är mycket bra:
http://hem.bredband.net/bersyn/vcp.htm

edit: för att göra en lång post ännu längre...
Jag har också gått i dessa tankar och funderat på att göra ytmonterade filterkort som man kan använda till liknande experiment, man borde kunna trycka in ganska många band på ett europakort. Sen kan man göra ett kort med VCA:er & envelopeföljare på så kan man välja att sätta ihop multibandskompressorer, vocoders, filterbanker mm och återanvända korten mellan labbarna.


edit igen:
Hittade lite info om de vanligaste frekvenserna för bandpassfilter i olika eq och vocoderapplikationer
For an octave band EQ or analysis instrument (10 Band) the frequencies are usually as follows ...

31 63 125 250 500 1k0 2k0 4k0 8k0 16k

1/2 Octave band frequencies (20 Band) will be (typically) ...

31 44 63 87 125 175 250 350 500 700 1k0 1k4 2k0 2k8 4k0 5k6 8k0 11k 16k 20k

Finally, 1/3 Octave band instruments (30 Band) will typically follow this sequence ...

25 31 40 50 63 80 100 125 160 200 250 315 400 500 630 800 1k0 1k2 1k6 2k0 2k5 3k2 4k0 5k0 6k3 8k0 10k 12k 16k 20k

Postat: 15 oktober 2007, 12:35:44
av xxargs
JimmyAndersson skrev: Det vore kul att bygga en vocoder enligt patentet i länken för att se hur den låter, men jag skulle vilja ta det hela ett steg längre. Jag menar, det finns redan många med vocoders som låter ungefär likadant och då är det inte lika utmanade att bygga ytterligare en kopia...
hmm - tittade en gång till, oklart skrivet, men med carrier input så menar man nog att det är multifrekvensbärvåg som sänds in och som resp. filterbak filtrerar ut sin del - inte att man gör ton av brus som jag först antog även om det går teoretiskt med tillräckligt skarpa filter och stark brusskälla. Det gör att resp bärvåg kan var amplitud och frekvensmodulerad efter önskemål så länge den håller sig kvar inom sitt 1/3-dels oktav, appropå önskemål om varmt ljud. Det fins nog med info i texten ( +/- 1.0865 av f0 och Q= 7.7, samt gain 1.75) för att kunna återskapa värdena på dom två bandpassfiltrerna i serie i början resp slutet i kedjan. annars har man gjort vad man kan för att försvåra kopiering genom utelämnade komponentvärden och kretsar, som iofs till stor del går att labba ut.

Inser nu också att valet av multibärvågens individuella tonkällor är viktig för karaktären på utsignalen och täcks inte in av ovanstående kretslösning - den just bara 'kodar'

Om man låter alla tonkällor gå individuellt till resp. utgångbank istället som nu summeras ihop till gemensam buss innan utfiltrering - så kan man skippa bandpassutgångsfiltret och använda toner med bredare karaktäriskisk övertonshalt som orgeltoner etc.

---

hmm, övervägde också att smälla upp delar av detta i en spicesimulator, lite synd att spicesimulatorn jag använder (microcap) inte kan ta en wav-fil rätt av och processa detta - jag upplåter annars gärna en hel natts tuggande på datorn för att höra hur en liten snutt skulle låta :-)


tillägg:


dar303:

Om man skall göra små ytm. bandpassfilterkort, så även om korten frekvensmässigt blir fast i frekvens för sin del av vald oktav så tycker jag att man bör kunna stänga av helt individuellt resp. justera Q-värdet på något sätt elektriskt och därmed bandbredd - att också bygga för att justera filterfrekvensen elektriskt är nog att gapa över lite för mycket på en gång tror jag ...

då kan man göra en ganska tättstegad filterbank med filtrerna ställda på hög Q-värde om man vill ha fin uppdelning, och stänger av varannan eller 2/3 delar av filtrerna och låter de kvarvarande filter bredda ut sig med lägre Q-värde och större bandbredd om man vill ha grovstegad 'röst'


- och som du säger, finstegat är inte alltid bättre, men till skillnad från analoga världen så är det väldigt billig 'förbättring' när det görs i mjukvaruvärlden, man försöker få väldigt bra betalt för att ändra '16' till '128' i någon variabel och lansera det som avsevärd förbättring gentemot konkurenterna typ, medan i analoga världen så handlar det om ett par rackskåp till i utrustning för tveksamt mer användbarhet...

Postat: 15 oktober 2007, 15:16:43
av dar303
Jag förstår inte riktigt hur du menar med att skippa bandpassutgångsfiltret? Då är det ju ingen vocoder längre, en signal på en ingång analyseras och dess relativa frekvensspektrum överförs till en annan signal med annat innehåll.
Om det är mycket information runt 1000Hz i analysenheten/modulationingången/speech/mic-ingången (många namn på samma grej!) så öppnas 1000Hz-kanalen motsvarande mängd på utgången/carriern.

Lite fler specialfunktioner som man hittar ibland:
HP & LP filter längst upp/ner i frekvensbanden
Kompressor på micingången och expander på utgången
dist eller fuzz på carriern
Noise-enhet med ställbart filter
Volymkontroller på alla band


Jag snokade fram lite mer info när jag ändå var gpå G!
Bandpassfiltren brukar vara 24-48dB och här är lite fler vocoderfrekvenser:

Skyvorks vocoder:
#01 90 - 130 (Hz)
#02 130 - 190
#03 190 - 280
#04 280 - 410
#05 410 - 610
#06 610 - 900
#07 900 - 1340
#08 1340 - 1950
#09 1950 - 2800
#10 2800 - 4100
#11 4100 - 6070
#12 6070 - 8900

EMS 5000 vocoder (Vocodrarnas Rolls Royce!)
Analysis filters are 8-pole bandpass on 205, 249, 303, 367, 444, 539, 653, 791, 958, 1161, 1406, 1703, 2064, 2500, 3030, 3670,
4447, 5388, and 7888 Hz, with the other two filters being HP and LP at the band range ends. Rolloff of 24 dB/8ve, with
adjacent channel rejection of 16 dB at the neighboring center frequency.

Här finns mycket info om olika vocoders:
http://www.analogue.org/mr/sas/Vocoinfo.html

Här finns det rintningar och byggbeskrivningara på tre vocoders att använda som referens.
http://rubidium.dyndns.org/cag/

Postat: 15 oktober 2007, 15:41:44
av ucadv
eftersom DSP folket verkar vara lediga idag så ska jag göra ett försök att förklara kamfilter, alt. förvirra er ännu mera :)

Kamfilter är ett digitalt filter i sin enklaste form:

Y[0] = X[0] - a * X[n]

där X är indata, Y är utdata, 1 <= a < 0, n bestämmer frekvensen.
Om X[0] är den nuvarande insignalen så är X[1] den förra (alltså en sampel tidigare) osv.

Sätt t.ex. n till 1 och a till 1.0 så får du en dipp i mitten av frekvenskurvan, alltså runt samplingfrekvensen / 4.


Hur som helst, frekvenskurvan blir riktig ful och är INTE ALLS lämpad för vocoder som behöver en ganska så fin _bandpass_ filter.


http://en.wikipedia.org/wiki/Comb_filter

edit: ...

Postat: 15 oktober 2007, 22:50:01
av JimmyAndersson
xxargs & dar303:
Det var mycket matnyttiga inlägg! :)
Jag vaknade med migrän idag, så jag har inte funderat något mer på vocoder-tankarna, men era inlägg var en guldgruva för att få nya idéer. :)

dar303:
"Jag har också gått i dessa tankar och funderat på att göra ytmonterade filterkort som man kan använda till liknande experiment"

Det vore helt perfekt! För en tid sedan byggde jag upp en del av multibandkompressorn på labbplattor, men trots att jag har 5-6st så tog de snabbt slut...

Jag har inte riktigt bestämt mig för vilken typ av filter som vore mest användbara till vocoder och multibandkompressor. Åtminstone till den sistnämnda apparaten så skulle jag vilja ha filter som överlappar varandra så lite som möjligt (dvs har så snabb roll-off som möjligt). Har tittat lite på legendre-filter (Optimum L-filter), men har inte testat det i praktiken än, men i teorin låter det bra: En kompromiss mellan Butterworth (som har ganska lång roll-off) och Chebyshew (som har snabb roll-off, men som annars är lite "svajig").



ucadv:
"Hur som helst, frekvenskurvan blir riktig ful och är INTE ALLS lämpad för vocoder som behöver en ganska så fin _bandpass_ filter."

Själva kamfiltret är inga problem i musiksammanhang. Problemet är hur kamfiltret görs. Dvs kamfilter som är skapade med delay dämpar vissa frekvenser inom ett fast frekvensintervall. I musiksammanhang blir det hel fel med tanke på att intervallet ska vara inom oktavintervall. Eller med andra ord: Det är inte lika många Hz mellan varje halvton.

Funktionen hos ett kamfilter är ju i princip samma som hos ett antal seriekopplade bandpassfilter i olika frekvensområden.


digitaliz:
"Jo, knepet med delay *är* användbart i musiksammanhang, men du måste göra det mer än en gång! De flesta (alla?) digitala filter bygger på principen att man multiplicerar/adderar signalen med gamla värden."

Japp, men det var precis så jag gjorde. Men det hjälper inte om jag gör om proceduren flera gånger eftersom ljudet modulerades helt fel redan efter första gången. Som jag skrev ovan så dämpas hel fel frekvenser om man använder fasförskjutning som kamfilter. Det skulle alltså krävas ett kamfilter med mer "musikaliskt" val av under/övertoner, men det är nog inte direkt lätt att bygga. Så det får bli bandpassfilter ändå.

Postat: 16 oktober 2007, 09:21:14
av ucadv
jummy, klart du _kan_ använda kamfilter till ljud. men när du ändå skaffat dig ett DSP system så kan du göra mycket bättre än så!

kamfilter är _inte_ som ett gäng vanliga analoga filter i serie. du har ingen logaritmisk (12 db per oktav eller vad det nu var) sänkning av frekvensen.



vill nån lära sig mer om digitala filter så har jag fiskat upp några länkar med bra verktyg:

http://uazu.net/fiview/
http://www.purebits.com/appnote9.html
http://www.digitalfilterdesign.com/
http://www.winfilter.20m.com/

Postat: 16 oktober 2007, 10:34:29
av xxargs
dar303 skrev:Jag förstår inte riktigt hur du menar med att skippa bandpassutgångsfiltret? Då är det ju ingen vocoder längre, en signal på en ingång analyseras och dess relativa frekvensspektrum överförs till en annan signal med annat innehåll.
Om det är mycket information runt 1000Hz i analysenheten/modulationingången/speech/mic-ingången (många namn på samma grej!) så öppnas 1000Hz-kanalen motsvarande mängd på utgången/carriern.

Vad jag menar är om varje bank har sin egen ingång till varsin tonkälla/carrier för sin passande frekvens - inte som nu när allt är ihopmixat till en multiton på en gemensam buss innan - så behöver man inte längre bandpassfiltret på utgången för att 'sortera' ut rätt ton ur multiton-bärvågen.

man får då egenskapen att 'rösten' kan 'spela' med toner som på ett instrument med ganska stor övertonsbild på var ton, om man vill, och inte som nu är begränsad till det som just passerar bandpassfiltret på resp utgång..

Då har man också möjlighet att transfomera ned valda delar av röst-pitchen till bit utanför den normala utgångsbandpassfiltret tex. nära subbfrekvenser och med lämplig övertonshalt för hörbarhet som i Matrix III när AI pratade lite i slutet och avnjöts bäst i biograf med stora biografhorn (läs Riggoletto 1 i stockholm)...

(pitchtransformering kan göras på olika sätt, tog det bara som ett tänkbart exempel utan att ha provat själv först :*) )

Postat: 16 oktober 2007, 13:16:45
av dar303
jimmy: Jag skulle vilja ha ställbara band men både bandbredd, Fc och volym. Det går an med 24db filter för min del men 48db skulle nog vara bättre.
Jag skulle bygga dom med OTA:s och på så sätt få CV-styrning på parametrarna, ytmonterade lm13700 för typ 15:-/st på elfa.
Vad tror du?

xxargs: ok, det är enkelt.
Bara att göra ett brytjack mellan carrierns BP-filter och VCA:er. Det är billigt, kostar bara lika många jack som man har band och samtidigt kan man behålla orginalfunktionen på vocodern.
Det borde gå att göra rätt coola grejer om man låter vissa band ha kvar vanliga vocoderfunktionen och kör in t.ex extra bastoner i de lägsta VCA.erna.

Lite så funkar vissa vocoders som som har voiced/unvoiced, de lägger ju på brus vid S-ljud.

Postat: 16 oktober 2007, 20:32:12
av xxargs
patentskriften i början av tråden hade liknande finess - kommer dock inte ihåg om den bara bypassade högpassfiltrerat eller om den använde syntetisk brus...

Postat: 17 oktober 2007, 19:58:47
av JimmyAndersson
dar303:
"Jag skulle vilja ha ställbara band men både bandbredd, Fc och volym. Det går an med 24db filter för min del men 48db skulle nog vara bättre.
Jag skulle bygga dom med OTA:s och på så sätt få CV-styrning på parametrarna, ytmonterade lm13700 för typ 15:-/st på elfa.
Vad tror du?"


Håller med. Det är ungefär så jag har planerat till multibandkompressorn.
Det står en låda med OTA's, digitala potar, bra OP-förstärkare mm på labb-bordet. Tyvärr har den inte byggt ihop sig själv än, men så fort några andra projekt blir klara så ska jag börja rita på filter-korten. :)

Postat: 17 oktober 2007, 22:53:54
av xxargs
Dock ta en bit i taget - känns inte som det är helt trivialt att få alla OTA att tracka väldigt lika på en 48 dB bandpass filter om man skall ändra både frekvens och bandbredd, samt gain...

inte för att förta bygglädjen...

Men är det inte frestande att använda dom olika plugins som fins i alla ljudediteringsprogram etc. - det som man mödosamt får ihop analogt är förmodligen enkelt att fixa i mjukvara - om man inte är ute efter riktig realtidsanvändning där man inte ens accepterar ms i fördröjning mellan in och utgång - då är analoga system svårslagna även om man har aldrig så stor DSP-bank som tuggar...

Postat: 17 oktober 2007, 22:57:03
av dar303
Jag vet att det är svårt men det är lite av grejen faktiskt.
Jag använder inga plugins men jag vet att reaktor, normodular eller MAX/MSP gör detta i ett nafs!
"vägen är målet" liksom, jag gillar att pilla och fundera på olika lösningar!

Här finns ett klassiskt VC-bandpassfilter, dock med Vactroler istället för OTA.s så det är lite slött i kontrollerna.

http://mypeoplepc.com/members/scottnoan ... 291%20.jpg

Postat: 18 oktober 2007, 20:48:51
av xxargs
cadiumsulfid-motstånd??

Då är man i gott sällskap med vissa kända mätinstrumenttillverkare som förr började på h men idag börja på A... - där körde som också med lysdiod och Cds-motstånd i bla. hp334 (analog distorsisionsanalysator) för att kunna skruva många ställen samtidigt i sina överkorsade T-bryggor i oscillatorer och spärrfilter samtidigit när den autotunade bort inställd grundton för att lyssna på det som är kvar i form av övertoner 60 -70 dB längre ned i nivå

Postat: 18 oktober 2007, 21:07:25
av dar303
Jag vet inte om det är just cadmiumsulfid i dessa men de finns med olika responskurvor och känslighet och används mycket i t.ex optiska kompressorer och syntmoduler.
De är även ett mycket bra sätt att få spänningsstyrning på parametrar som kan vara svårtstyrda som t.ex brytfrekvensen på ett bandpassfilter.

Problemet/en feature är att de inte har så snabb responstid så gör man en snabb ändring så blir det lite fördröjning som ofta ansvänds för att integrera störningar eller få en speciell respons för att efterlikna akustiska instrument (se Buchla 292 lopass gate)

Postat: 18 oktober 2007, 21:29:45
av JimmyAndersson
Den långsamma responsen kan även användas för att lyfta fram svaga transienter. Använder man vactrolerna i en mer aktiv del i signalvägen/förstärkningen så kan man även få en ganska intressant distorsion.

Orsaken till att jag vill bygga en multibandkompressor är att jag tycker det är lättare att skruva på en fysisk apparat. (Jag har iofs mixerbord som skickar MIDI-data.) Sedan är jag inte 100% nöjd med de mjukvarukompressorerna jag har. Om man lyckas med själva konstruktionen så kan man ju få en kompressor med precis de egenskaperna som man själv vill ha.

En multibandkompressor består ju av ganska många olika delar, särskillt om den har 48dB-filter och är OTA/VCA-styrd...
För att bli lite varm i kläderna skulle man kanske kunna bygga mindre apparater först. T.ex ett 12dB-lågpassfilter och en vanlig kompressor med CV eller MIDI-styrning.