Wat is DSP nu eigenlijk precies?

WaveGuide7

Gedeactiveerd account
Lid sinds
12 november 2009
Berichten
1.152
DSP
DSP staat voor Digital Signal Processing, ofwel Digitale Signaalverwerking.
DSP kom je in de meest uiteenlopende vakgebieden tegen, niet alleen bij muziek, spraak en telecommunicatie, maar bijvoorbeeld ook bij bodemonderzoek, statistiek, radiologie (bijv. MRI), spectraalanalyse, de defensie-industrie (bv. wapengeleidesystemen), radar, sonar, computer graphics (2D-signalen), de aansturing van een hard disc en nog vele anderen. Bij al die vakken en toepassingen gaat het om de analyse en bewerking van "fluctuerende grootheden" ofwel signalen, "trillingen".

Audio-DSP
Achter alle knopjes, achter alle modules van een digitale synth, zoals toongeneratoren, LFO's, ADSR's, modulators en filters, achter alle effecten die je op een audioprocessor aantreft, bijv. delay, chorus, galm etc gaan DSP-technieken schuil. Daarnaast horen ook spectrum-analyzers en alle daarop gebaseerde technieken tot DSP, zoals de fasevocoder. Het is heel erg moeilijk om een onderwerp te noemen dat niet op een of andere manier een plaats heeft in of gerelateerd is aan de algemene theorie van de digitale signaalverwerking.

DSP en Synthforum
Veel discussies op het synthforum zijn gedoemd om te verzanden omdat het vaak heel moeilijk is om een bepaald geluidseffect precies onder woorden te brengen. Je kunt bijvoorbeeld zeggen: "d'r zitten braampjes op het geluid", en mensen zullen dan wel ongeveer snappen dat er is niet helemaal OK is, maar wàt precies, blijft onduidelijk als er geen voorbeeld is bijgevoegd. Als iemand zegt: "haal het geluid door een low pass filter", dan kun je daar niet veel mee, want er bestaan oneindig veel soorten low pass filters. Ook als je de precieze instellingen van jouw synth of effectmachine bijvoegt, is het geluid wel precies na te maken voor mensen die zelf over jouw apparatuur beschikken, maar zelfs dan blijft vaak onduidelijk wat er technisch nu eigenlijk gebeurt, want de beschrijving van instellingen in handleidingen is vaak heel summier en bewust gesteld in een niet-technisch jargon. Dat is zowel om de niet-technische gebruikers tegemoed te komen als uit bescherming van het produkt zelf.

Voorbeelden:
  • op Yamaha's DX7 kun je de amplitude van modulatoren instellen in een bereik van van 0 - 99. Die 99 blijkt overeen te komen met een werkelijke modulatie-index van ongeveer 13,07...
  • op een Roland synth kun je de Cut-Off instellen in een bereik van 0 tot 100. Er wordt geen eenheid opgegeven (in elk geval is die natuurlijk niet Hz!) en het blijkt dat de instel-schaal niet-lineair is.
Wil je effectief met elkaar kunnen praten over klankopwekking en geluidseffecten dan kun je niet om die technische laag, de eigenlijke DSP, heen.
Deze draad is bedoeld om je op dreef te helpen met DSP en duidelijk te maken wat je ermee kunt.
Post hier jouw ervaringen met, jouw vragen over DSP. Ken je interessante sites, inleidende boeken? Bespreekt ze hier! Deze discussie kan uiteindelijke uimonden in een samenvattend artikel voor Synthwiki.
 
het ontgaat mij even wat precies je idee achter deze draad is.

Je hebt het over dsp's terwijl een hipassfilter op een roland systeem 100 ongeveer hetzelfde doet als een hipassfilter op een jp 8000. Dus waarom de link naar dat voorbeeld ?

Ik zie geen onderscheid tussen digitale (dsp) en analoge gear.
Ziet eruit als een copy paste verhaal.

Half offtopic, ik heb net een DSP kaart gekocht :mega:
 
Je hebt het over dsp's terwijl een hipassfilter op een roland systeem 100 ongeveer hetzelfde doet als een hipassfilter op een jp 8000. Dus waarom de link naar dat voorbeeld ?

Ik zie geen onderscheid tussen digitale (dsp) en analoge gear.
Ziet eruit als een copy paste verhaal.

Ik denk dat deze topic niet gaat over het feit dat je bijv. met een analoge LFO hetzelfde kan doen met een digitale LFO, maar eerder de techniek erachter wil blootleggen. Wat zijn de fudamenten van de discipline, en hoe kan je er creatief met omgaan. Net zoals de beginnende electronica-threads.
(edit: Terwijl electronica hier op het forum vaak als een leuke bijhobby wordt gezien ivm synthesizers, is er er weinig te vinden over de digitale variant, of wordt er vaak negatief over gesproken. Misschien dat deze thread meer mensen kan aanmoedigen om creatief te zijn "in the box".)
 
Laatst gewijzigd:
Wat ik me afvraag, er zijn interfaces die dsp aan sturen.
Moet ik daarbij denken aan software matige effecten, die dan door de interface worden processed?
(in plaats van de processor cpu van de computer)
Of gaat het daarbij om interne effecten?
Dacht dat er dsp ondersteunende kaarten zijn, maar geen effecten aan boord hebben?
 
DSP hard of soft: geen prinicpieel onderscheid

DSP hard of soft: geen prinicpieel onderscheid

het ontgaat mij even wat precies je idee achter deze draad is.

Je hebt het over dsp's terwijl een hipassfilter op een roland systeem 100 ongeveer hetzelfde doet als een hipassfilter op een jp 8000. Dus waarom de link naar dat voorbeeld ?

jugjug heeft hierboven al iets gezegd over de bedoeling van deze draad. En let wel: de draad gaat over "DSP", niet over "DSP's"! Met dat laatste bedoel je uitsluitend hardware die signaalverwerkende handelingen uitvoert. Met DSP bedoel je precies die handelingen zelf!

Waaruit bestaan DSP-bewerkingen?
Als een "digitaal signaal" niet anders is dan een lange reeks samples (=getallen!), dan kan DSP alleen maar bestaan uit getalbewerkingen, dus berekeningen. Omdat er meestal sprake is van nogal specifieke berekeningen, die je bovendien niet aan de CPU kunt overlaten zodra er sprake dient te zijn van een realtime toepassing, dan is het zinvol om speciale hardware te ontwerpen voor het DSP-werk. Die hardware noem je dan "DSP-kaarten" of simpelweg "DSP's".
DSP zelf is een kookboek dat vertelt welke soort berekening je op een rij samples (= geluids-getallen) moet uitvoeren om bijvoorbeeld de hoge tonen erin af te zwakken of te versterken. Zo'n reken-recept is dus niets anders dan een wiskundig geformuleerde procedure.

Voorbeeld:
je kunt één enkele sample (puls) met een heel simpele formule zodanig bewerken dat je een pure sinusgolf krijgt! Die formule beschrijft niets anders dan de werking van een (twee-polig) filter, zoals je dat in elke digi-synth aantreft. Er staan in die formule twee getalletjes, waarmee je de reso-frequentie en de Q van dat reso-filter regelt.
Als je in een forumdiscussie die twee getallen opgeeft, heb je volstrekte duidelijkheid en eenduidigheid over het klinkende effect van het reso-filter; misverstanden zijn uitgesloten. Je hoeft niet meer te vragen: "welke gear gebruik jij?", want die formule is de gear!!
Dat laatste kun je ook heel letterlijk opvatten. Het is in principe mogelijk om een geluidssignaal te openen in een spreadsheet en de "reso-formule" in een veld in te voeren, zodat je spreadsheet zich gaat gedragen als het reso-filter van je synth.

Ik zie geen onderscheid tussen digitale (dsp) en analoge gear.
Ziet eruit als een copy paste verhaal.

Nou, dat is dan een compliment voor de DSP-mensen die jouw digi-gear hebben ontworpen:), want er gaapt wel degelijk een diepe, diepe theoretische kloof tussen analoog en digitaal. Ook die zullen we in deze draad moeten bespreken, maar het is geen eenvoudig onderwerp en het heeft niet zo'n hoge prioriteit.

Ronaldoz:
Wat ik me afvraag, er zijn interfaces die dsp aan sturen.
Moet ik daarbij denken aan software matige effecten, die dan door de interface worden processed?
(in plaats van de processor cpu van de computer)
Of gaat het daarbij om interne effecten?
Dacht dat er dsp ondersteunende kaarten zijn, maar geen effecten aan boord hebben?

Meestal zal DSP-hardware beschikken over een of andere user-interface. Die doet dan niet veel meer dan wat de meeneem-Chinees in de winkel (CPU) doet: papiertjes doorsturen naar de keuken (DSP-kaart) waar het eigenlijke werk gebeurt. Wel is het zo dat de CPU in de winkel razensnel is en bijvoorbeeld honderden berichten per seconde naar de keuken kan sturen. Daarmee kan bijvoorbeeld realtime interactie met de muis worden gerealiseerd.
De DSP-kaart zelf is niets anders dat "gestolde" DSP-theorie. Het maakt in principe helemaal niet uit of je iets nu hard- of softwarematig doet. Alleen de snelheid van hardware is natuurlijk veel hoger en dat is bij geluidstoepassingen wel erg belangrijk. Maar er bestaat geen fundamenteel onderscheid tussen DSP-hard en -soft.
 
 
 
Je geeft dus antwoord op je eigen vraag en deelt dat met ons.
OK :okdan:

Het topic had beter kunnen heten: De grote DSP draad (of iets dergelijks). Nu lijkt het alsof je de vraag aan mede forummers stelt.
 
Je geeft dus antwoord op je eigen vraag en deelt dat met ons.
OK :okdan:

Het topic had beter kunnen heten: De grote DSP draad (of iets dergelijks). Nu lijkt het alsof je de vraag aan mede forummers stelt.

ikzelf werk inderdaad al zo'n kleine 20 jaar met DSP en kan er hele verhalen over afsteken. Ik heb dat inmiddels op synthwiki ook al in de nodige topics gedaan. Maar ik ben daar niet tevreden over en denk dat ik mijn doel voorbijschiet en dat mijn bijdragen aan wiki te weinig forumleden aanspreken. Als je echt een goed verhaal wilt maken, dan moet dat zo veel mogelijk aansluiten bij de vragen die er bij forumleden leven. Om daar achter te komen dient deze draad.
 
.. Omdat er meestal sprake is van nogal specifieke berekeningen, die je bovendien niet aan de CPU kunt overlaten zodra er sprake dient te zijn van een realtime toepassing, ..

Ik krijg toch aardig wat realtime gedaan op m'n CPU'tje.

Vraag: een filter op een soft synth is dat in de regel een 'realtime' berekening gebaseerd op de genoemde samples danwel nummers (IIR filter) of wordt er gebruik gemaakt van wavetables oid? Bij een discussie die ik recent had claimde iemand het laatste.
 
Laatst gewijzigd:
Ik krijg toch aardig wat realtime gedaan op m'n CPU'tje.
De huidige computer processors kunnen heel wat aan, maar voor bepaalde berekeningen, bvb. delingen of cijfers achter de komma, is hun strukturele opbouw niet zo goed geoptimaliseerd als bij dsp-processors.
Ze kunnen (wel haast) hetzelfde maar hebben er meer moeite mee, om de taak te volbrengen.
Vraag: een filter op een soft synth is dat in de regel een 'realtime' berekening gebaseerd op de genoemde samples danwel nummers (IIR filter) of wordt er gebruik gemaakt van wavetables oid? Bij een discussie die ik recent had claimde iemand het laatste.
Het kunnen beiden zijn maar een 'realtime berekening die als resultaat een gefilterde versie van de genoemde nummers of het signaal, vormt' lijkt me veel minder hardware te vergen, eens die berekening met een goede code wordt uitgevoerd. Vanaf dan kan elke signaal door die 'filter-berekening' gehaald worden. Bovendien hoeft de code maar miniem aangepast te worden om een ander filterinstelling uit te voeren. Er hoeft geen extra hardware of software voorzien te worden dan de geluidsbron zelf (we hoeven geen signaal te bewaren, tijdelijk of voorgoed). M.a.w. we kunnen evengoed een microfoon signaal toevoeren, de filter-werking is direct uitvoerbaar.

Bij gebruik van wavetables dient voor elke 'immitatie filtering' een andere reeks van 'samples danwel nummers = wave tables = tabel met golfvormen' voorzien te worden. Vraag is of er dan wel 'realtime iets gefilterd' wordt, die tabellen kunnen evengoed vooraf reeds gevuld zijn. Zodoende de wavetables techniek vraag veel opslagplaats, is qua realtime mogelijkheden heel beperkt en als filtermethode weinig efficient. (persoonlijk vind ik zo'n 'wavetables-opzet' als filtermethode idioot, maar ik weet ook niet over welke 'soft synth' het gaat hé... :stupid)

Verder is het ook mogelijk dat er toch nog iets anders bedoeld wordt :
In de berekeningsmethode voor de realtime filtering kunnen echter ook 'eenvoudige wavetables' gebruikt zijn, die hebben dan weer minder
met het signaal zelf te maken. Het nut en de werking daarvan is ... voor later...
 
Ik krijg toch aardig wat realtime gedaan op m'n CPU'tje.

Dat zou heel goed kunnen. De CPU's van nu zijn qua snelheid heel goed te vergelijken met de DSP-processoren van bijv. 10 jaar terug.

Vraag: een filter op een soft synth is dat in de regel een 'realtime' berekening gebaseerd op de genoemde samples danwel nummers (IIR filter) of wordt er gebruik gemaakt van wavetables oid? Bij een discussie die ik recent had claimde iemand het laatste.

Een filter is een berekening op basis van twee groepen getallen:
(1) de samples van het het inputsignaal;
(2) de zg. filtercoëfficiënten. Dat zijn getallen waarmee je het filter specificeert. Een filter heeft minimaal 1 filtercoëfficiënt (er bestaat in theorie geen maximum aantal). Het reso-filter in het voorbeeld van bericht #5 heeft twee filtercoëfficiënten.

Een wavetable gebruik je o.a. voor het opwekken van tonen, niet voor filterberekeningen.

Of een bewerking al dan niet in realtime mogelijk is hangt alleen af van de snelheid van de processor waarmee je de berekening uitvoert, niet van de vraag om welke bewerking het gaat.
 
 
 
...

Verder is het ook mogelijk dat er toch nog iets anders bedoeld wordt :
In de berekeningsmethode voor de realtime filtering kunnen echter ook 'eenvoudige wavetables' gebruikt zijn, die hebben dan weer minder
met het signaal zelf te maken. Het nut en de werking daarvan is ... voor later...

Helder! Dank en ben benieuwd.
 
sample-waarden en sample-(rang)nummers

sample-waarden en sample-(rang)nummers

Er wordt hierboven gesproken over "samples" en "nummers". Je kunt gauw in de war raken over wat er precies bedoeld wordt. Daarom wordt er in de digitale audio en signaalverwerking een onderscheid gemaakt tussen sample-waarden en sample-rangnummers. Zie figuur.

attachment.php
 

Attachments

  • samplewaarden en rangnummers.jpg
    samplewaarden en rangnummers.jpg
    27,7 KB · Bekeken: 133
Ik zie het nut van deze draad wel.

Regelmatig zie/hoor je vragen over DSP. Fabrikanten lopen er ook graag mee weg, maar bv de ene DSP kaart is de andere niet.
Zo heb je fabrikanten die de naam DSP in de type-aanduiding gebruiken. Maar welke DSP is dat dan? Vaak wordt dan aan het klanktechnisch bewerken van het signaal gedacht, maar dat hoeft niet zo te zijn. Het kan ook alleen het processen (doorsturen) van het signaal zijn van de analoge input richting je sequencer.
En zo ontstaat er voor klanten nog wel eens verwarring over wat voor/welke DSP nu eigenlijk bedoeld wordt. Maar dat lees je dan pas in de specs van het apparaat. Maar als iemand nu zelf niet weet wat hij zich eronder voor moet stellen, is dit zeer nuttig denk ik.
 
geluidskaarten en DSP

geluidskaarten en DSP

arnomusicman:
(...) Zo heb je fabrikanten die de naam DSP in de type-aanduiding gebruiken. Maar welke DSP is dat dan?
Kun je een voorbeeld geven van zo'n fabrikant?
 
arnomusicman:
Vaak wordt dan aan het klanktechnisch bewerken van het signaal gedacht, maar dat hoeft niet zo te zijn. Het kan ook alleen het processen (doorsturen) van het signaal zijn van de analoge input richting je sequencer.
Een audio-kaart verricht allerlei taken die nodig zijn om een geluid uit je boxen te laten komen.

Daarin zijn drie stadia te onderscheiden:
  1. De AD-converter zet een continu, "analoog" signaal dat op de analoge input van de audio-kaart staat om een digitaal signaal dat puur uit getallen ("samples") bestaat.
  2. de eigenlijke DSP (Digital Signal Processing) bewerkt uitsluitend getallen en is dus een pure rekenmachine / computer. In deze draad gaat het over de vraag: over wat voor soort bewerkingen (berekeningen!) hebben we het dan? Welke berekening moet ik uitvoeren om aan de geluidssamples die de AD-converter aanlevert het effect van een laagdoorlaatfilter of een delay toe te voegen? Het maakt daarbij geen wezenlijk verschil of die DSP-taak wordt uitgevoerd door een gespecialiseerde DSP-chip of door de CPU van je PC. Alleen de snelheid, de rekenkracht van een DSP-chip is veel groter dan die van de CPU en ontlast bovendien de CPU. Het is net als met hersencellen: hoe meer je ervan hebt des te sneller en veelzijdiger het rekenwerk dat je ermee kunt uitvoeren. Maar hoe snel of langzaam zo'n proces verloopt staat los van de vraag waar het hier om draait: welke berekeningen moet ik uitvoeren om galm, distorsie, fade-in, flanging, equalizing etc. te maken? Moet ik Optellen? Of delen? Of misschien eerst worteltrekken en dan dubbelklutsen en dwarsbakken?
  3. de DA-converter zet het digitale signaal dat DSP heeft berekend weer om in een continu, analoog signaal dat op de analoge output van de audio-kaart staat.
Een fabrikant mag een audio-kaart alleen maar aanduiden met "DSP", als dat stadium (2) inderdaad in hardware-vorm op de kaart aanwezig is. Het kan natuurlijk heel goed zijn, inderdaad, dat in sommige toepassingen een echte DSP-kaart alleen maar even AD- en DA- hoeft te doen. Net zoals je een heel dure synth alleen eventjes gebruikt om een enkel sinustoontje van 1 sec. te maken.
 
 
 
 
Wil je effectief met elkaar kunnen praten over klankopwekking en geluidseffecten dan kun je niet om die technische laag, de eigenlijke DSP, heen.

Dat lijkt me onzin, al was het alleen maar omdat de toevallige technische laag (digitaal of niet) maar bar weinig te maken heeft met de klank van het eindresultaat. Je kunt bijvoorbeeld prima over een filter praten door enkel te kijken naar de frequentierespons (en desnoods soms de fase-respons). Daar heb je geen DSP voor nodig; desnoods meet je wat eruit komt in plaats van het te berekenen of je kijkt gewoon in het manual. Maar zelfs dat boeit vrijwel niemand, want wat een 24dB lowpass-filter doet moet je zelf horen. Een filter is hier dan ook niet een berekening op basis van twee groepen getallen; een filter is een ding met een input en een output dat een bepaalde frequentie-respons (en fase-respons) heeft. Jouw stelling gaat alleen op voor digitale filters, maar die kun je in het geval van de gemiddelde synthesizer uberhaupt niet onderscheiden van een analoog filter.

We slagen er hier op synthforum daarom volgens mij prima in om effectief over klankopwekking en geluidseffecten te praten terwijl het gros waarschijnlijk de ballen verstand heeft van complexe getallen, laat staat DSP-technieken. Gek he!;)

Echt verstand van DSP-technieken heb je pas nodig als je zelf een digitaal filter gaat ontwerpen en in flink mindere mate bij delay-based effecten (flanger, chorus, phaser). Voor de rest van de reguliere klankopwekking in een digitale synthesizer zijn DSP-technieken nodeloos ingewikkeld. Het is immers niet veel meer dan een golfvormpje berekenen en wat vermenigvulden en optellen en aftrekken. Zolang je het niet per se met DSP-chips wil doen, kan iedere jan boeren lul met een ietsie pietsie verstand van wiskunde en programmeren zo een complete synthesizer-zonder-filter uit zijn mouw schudden.

Bovendien denk ik niet dat je hier eventjes kunt uitleggen wat nou de crux van DSP is; dat is veel te ingewikkeld en vereist een zeer grondige basis in de wiskunde. Daarom helpt het dus ook echt totaal niet bij effectief praten over klankopwekking en geluidseffecten.
 
uiterst merkwaardige reactie van iemand die in z'n profiel bij "interesses" schrijft:
Interesses dsp theorie, software synthesizer development...
 
Om maar een ervaring te delen: dspguide.com vond ik een goed punt om mee te beginnen. Ikzelf heb verder geen ervaring met dsp behalve dan dat boek en wat wikipedia artikelen, maar wat betreft synthesizers programmeren begrijp ik nu wel hoe ik filters kan programmeren, fourier transformaties kan uitvoeren etc. (Natuurlijk zijn alle concepten niet even uitgebreid behandeld, maar volgens mij voldoende voor een goede start. Zeg ik, zonder verder enige ervaring maargoed..)
 
Ik vind dit een heel interessant en nuttig onderwerp, het is imho altijd nuttig om iets van de achterliggende techniek te begrijpen van dingen die je liever zonder na te denken gewoon gebruikt...

En als je het niet wil weten hoef je het ook niet te lezen!
 
uiterst merkwaardige reactie van iemand die in z'n profiel bij "interesses" schrijft:
Interesses dsp theorie, software synthesizer development...

En toch ben en blijf ik van mening dat DSP-theorie absoluut niet noodzakelijk is "effectief met elkaar kunnen praten over klankopwekking en geluidseffecten". Neemt niet weg dat het gaaf, interessant en extreem nuttig is. En ook zeker wel de moeite waard om hier uitgebreid over te kletsen. Maar pretenderen dat je er niet om heen kunt om hier effectief mee te kunnen praten over klankopwekking vind ik nogal onnodig uit de hoogte doen.
 
Wow, nice dat je dit allemaal zo met ons deelt! Ik vind het interessant om te lezen, bedankt!
 
Back
Top