suti wrote:
lehet lame kerdes, de mi a kulonbseg fureszfog es fureszfog kozott?
Rengeteg különbség lehet.
1.
Alaplogika ugye azt mondja, hogy egy fűrészfogjelet előállítani nagyon egyszerű - időközönként a függvény a minimumára ugrik, majd onnan egyenletesen emelkedik.
Viszont. A digitális jelnek van mintavételezési frekvenciája. Mi van tehát, ha a minimumra ugrás ideje nincs szinkronban a mintavételezési frekvenciával? Olyankor kerekítés történik (alias). Azok az oscillatorok, amik ezt nem kezelik, a legócskábbak. (kezdetleges VST-k ezeket használták... max. pedig LFO-nak jók igazán)
2.
Ettől egy fokkal jobb, ha az oscillator anti alias algoritmust használ, ami gyakorlatban egy egyszerű lineáris interpoláció. Adott hangminta értéke azzal arányos, hogy a minimumra ugrás a hangminta mely pontjánál kéne, hogy megtörténjen.
Ez a módszer elég látványosan csökkenti az alias effektet, viszont eltűntetni nem sikerül neki. Olyan, mintha a hangkártyád A/D-jén nem lenne szűrő, és átengedné azokat a frekvenciákat, amit a kártyád nem képes kezelni. Ez a szűrő a hangkártyád mintavételezési frekvenciájának a felénél dolgozik (nyquist), ami teljesen logikus Shannon tétele alapján.
Mivel ez a módszer nem szűri le a nyquist feletti frekvenciákat, azok a mintavételezési frekvencia felére tükrőződve jelennek meg a spektrumon. Ez utólag kiszűrhetetlen, a hangja pedig idegesítő. Nagyon ócska, de ezt már bekajálja rengeteksok süket ember. Synth1-ben pl. ilyen oscillator van. LFO-nak ez már pazarlás, hangra pedig ratyi. (bár CPU-t szintén nem nagyon eszik)
3.
Aminek megvalósítására és megoldására CPU sebességtől és minőségtől függően rengeteg megoldás van. A mintákat vagy előre megszűrik, és hullámtáblában tárolják, vagy BLIT-ek használatával csak a kerekítéseknél oldják meg a dolgot... a lényeg, hogy a nyquist felett nem adhat ki hangot az oscillator. Mivel itt már nem egyszerűen oscillatorról beszélünk, hanem szűrni is kell, a szűrés módszere, minősége már befolyásolja a megszólaló hangot. Ettől lesznek oscillatorok tompábbak, vagy élesebbek (a veszteség a magas tartományban jelentkezik).
Ez a módszer áll a legközelebb a tökéletes oscillatorhoz, hangja szinte minden esetben tiszta (de ha sok magas veszik el, akkor tompa és rossz). Legtisztábbat a Sylenth1 hozza, szerintem az minden szempontból tökéletes, és hihetetlen alacsony a CPU felhasználása. Kár, hogy a GUI szar.
4.
Analógszinti-utánzat. Ha mintát veszel egy analógszintetizátorról, akkor látni fogod, hogy a fűrészfog közeltsem olyan ideális, mint azt egy matematikai jeltől várnád. Egy analógszinti minden áramköre egy-egy szűrőként viselkedik, ezzel befolyásolva a végső jelalak frekvencia-tartalmát, ezáltal a hullámformáját is. Számít a hangban a fűrészfogjel iránya, domborulata, homorulata, minden egyes kis pikkenése. A jelalak pedig egyáltalán nem statikus. A magasabb frekvenciáknál közelít az ideálishoz, a mélyeknél viszont (például a 303-as négyszögjelnek) köze sincs hozzá (ott olyan a négyszög, mintha két bénácska fűrészfog szólalna meg felváltva, csak ellentétes irányba... egyiknek a minimuma a DC0, a másiknak a maximuma). Phosyconnak elég közel vannak az oscillatorai a 303-ashoz, míg szegény Minimonstanak semmi köze egy valós analóg osci karakterisztikájához, de valamit ott is bütyköltek ilyennel (attól még jó a hangja, mert szép tiszták az oscik... csak nemtom, hogy gondolták azt a hullámformát).
Szóval bazisok különbség lehet.
EDIT: 3. és 4. pontok legnagyobb hátránya, hogy nem olyan flexibilisek, mint az első kettő. Ezekkel az oscillatortípusokkal már nem triviális megoldani a pulzusszélességet, FM esetén is keletkezhetnek nem kívánatos zajok, memóriát foglal el a hullámtábla, sokat zabál az interpoláció, ... ... viszont ezek szólnak jól.