Purer Sägezahn (kleiner Versuch)

ZH

|||||
Mir ist gerade ein kleines Programm in die Haende gefallen, das ich vor zwei Jahren mal geschrieben habe. Ich habe mir ueberlegt, wie wohl ein "reiner" Saegezahn klingen wuerde, denn die meisten virtuell analogen Synths versuchen ja, den "analogen Saegezahn" bzw. generell analoge Wellenformen nachzuahmen. Dementsprechend habe ich mir vorgestellt, dass ein "reiner/perfekter" Saegezahn ziemlich kuenstlich klingen wuerde.

Aus diesem Grund hab ich ein kleines Programm geschrieben, das ein WAV erzeugt mit einer Saegezahn-Bassline, welche absolut "sauber" ist, ohne analogen "Drift" oder wie man das nennen mag. Aber eigentlich finde ich, dass das gar nicht so schlecht klingt. Hier das WAV-File (die Bassline entspricht uebrigens dem Musikstueck "Sonnenuntergang" von Mikron64): http://www.christian-gleinser.de/stuff/out.wav

Das Programm (in Python geschrieben) gebe ich euch auch, vielleicht habt ihr Lust damit rumzuspielen: http://www.christian-gleinser.de/stuff/wavtest.py.txt

Was mich interessieren wuerde: Gibt es euren Wissens nach Synthesizer, die ebenfalls solche "perfekten" Wellenformen verwenden? Findet ihr dass es gut klingt, oder denkt ihr sofort "oh Gott"? Sind die Filter beim Klang das wichtige (hier im Beispiel natuerlich nicht vorhanden), und die Wellenformen gar nicht so wichtig? Ich weiss eigentlich selbst nicht so genau, worauf ich hinaus moechte, aber ihr koennt ja einfach mal eure Gedanken dazu schreiben. Bin halt wie gesagt grad wieder auf das Programm gestossen und finde nach wie vor, dass der Sound im daraus resultierenden WAV eigentlich gar nicht so unbrauchbar klingt.
 
ZH schrieb:
Aus diesem Grund hab ich ein kleines Programm geschrieben, das ein WAV erzeugt mit einer Saegezahn-Bassline, welche absolut "sauber" ist
Ja, aber ohne Aliasing-Filter. Und der Zyklus wird immer auf ein komplettes Sample gerundet. Dadurch fällt das Aliasing nicht so auf ;-) Dein Ansatz wäre dadurch aber in der Praxis nicht brauchbar. (Die Anzahl möglicher Tonhöhen, würde zu höheren Frequenzen immer wie kleiner)

Aber unbeachtet dessen klingt es schön knarzig in dieser Lage ;-) :supi:
 
Netter Versuch. Mit dem Code kann ich schon was anfangen ("import array" kannst Du auch weglassen). Ganz interessant, daß das wave-Modul auch richtige Bass-Linien erzeugen kann, wußte ich gar nicht. Gibt's da auch einen Filter?

Zum Thema: Für mein Empfinden klingen die ungefilterten Sägezähne immer sehr, sehr ähnlich. Es muß wohl der Filter sein, der die größten Klangunterschiede ausmacht.

Ansonsten fällt mir immer, wenn ich meine BS2 in Cubase aufnehme, auf, daß das, was man im Audiofenster sieht (etwa auch nach dem Mixdown in Audacity), immer sehr "smooth", "harmonisch", "rund" aussieht. Mehr als bei dem Mixdown von Softsynths. Ob das was zu bedeuten hat, weiß ich nicht. Aber ich glaube, es ist ein gutes Zeichen. :)
 
Die Bassline wird erzeugt indem ich die Sample-Daten selbst schreibe, hat also nichts mit dem Wave-Modul zu tun. Ich generiere quasi die einzelnen Samples, die fuer eine Saegezahn-Wellenform notwendig sind, in der entsprechenden Frequenz.

@ weird fish, stimmt, auf sowas habe ich nicht besonders drauf geachtet. Habe den Code jetzt auch nicht nochmal genau angeschaut, gut moeglich dass da auch generell Denkfehler drin sind oder sowas. Aber ja, fuer die eine Bassline hats gereicht und ich finde es klingt irgendwie fett.
 
Solche geometrisch perfekten Formen werden gern auch als "naive" Schwingung bezeichnet. Das ist nicht menschlich wertend gemeint, sondern beruht auf dem Umstand, das es einfach zu machen ist, schön / richtig aussieht, aber massiv unter Aliasing leidet. Damit sind nicht die "schönen" Artefakte digitaler Klangerzeugung gemeint, sondern im Extremfall komplett falsche Tonhöhen - und Spektren, die nichts mehr mit einem Sägezahn zu tun haben.

Wenn man das explizit haben will oder nur Bässe erzeugen möchte ist es okay, ansonsten kann man sowas eigentlich nur in Systemen mit variabler Samplerate (oder irrsinig hoher Samplerate ab einigen MHz aufwärts) halbwegs sauber abspielen. Prinzipiell enstehen an der Sprungstelle unendlich hohe Frequenzen, die sich zwischen der halben Samplerate und "0" munter hin- und herspiegeln. In Systemen mit fester Samplerate haben diese Spiegelungen auf fast allen Tonhöhen keinen harmonischen Bezug zum eigentlichen Signal und das Ergebnis ist ein inharmonischer und metallischer Klang. Bei tiefen Noten wird das vor allem durch das Orginalsignal noch halbwegs kaschiert, da die Energie in den oberen Bändern beim Sägezahn gemäß "amplitude = 1/ bandnummer" immer geringer wird.

In heute gängigen Systemen mit fester Samplerate (DAW und die meisten Synths und Sampler) muss man das Signal bandlimitieren, wenn man diese negativen Effekte vermeiden oder wenigstens reduzieren will. Der Sägezahn sieht dann eher wie eine Wellenlinie aus und wird in den höchsten Lagen immer mehr zum Sinus. Das hat erst mal weniger mit "Drift" oder "Analogemulation" im Sinne von "Nachbildung alter Hardware" zu tun als mit dem Versuch, einen Sägezahn zunächst mal in allen Lagen nach Sägezahn klingen zu lassen - und nicht nach Digitalunfall. Aber wie gesagt, wenn man das so möchte, warum nicht? Bei FM beschwert sich auch niemand drüber. :D
 
Bandlimitierung heisst in diesem Fall? Ein Tiefpassfilter mit 20 kHz? Oder wie genau muss man sich das vorstellen?

Wie wuerde sich denn eigentlich dann z.B. eine "naive Schwingung" im kritischen Hz-Bereich von einer digitalen Aufnahme eines analogen Saegezahns im wesentlichen unterscheiden? Oder ist auch hier dann der Filter letztendlich das, was den Unterschied macht?
 
ZH schrieb:
Bandlimitierung heisst in diesem Fall? Ein Tiefpassfilter mit 20 kHz? Oder wie genau muss man sich das vorstellen?

Wie wuerde sich denn eigentlich dann z.B. eine "naive Schwingung" im kritischen Hz-Bereich von einer digitalen Aufnahme eines analogen Saegezahns im wesentlichen unterscheiden? Oder ist auch hier dann der Filter letztendlich das, was den Unterschied macht?

Nein, der Filter käme zu spät, die Welle muss schon bei der Erzeugung bandlimitiert werden.

Die Aufnahme eines Sägezahns aus einem Synth ist bandlimitiert, dort wird vor der Digitalisierung gefiltert.
Das geht in dem Fall, weil das Signal analog ist und nicht schon aliast.
Würde man erst digitalisieren und dann filtern käme der Filter zu spät.

Dein Sägezahn (hab ihn nicht angehört) aliast auch im Bass, nur hört man es da nicht weil die Obertöne mit -6dB/Okatve abfallen.
 
Cyclotron schrieb:
Das hat erst mal weniger mit "Drift" oder "Analogemulation" im Sinne von "Nachbildung alter Hardware" zu tun als mit dem Versuch, einen Sägezahn zunächst mal in allen Lagen nach Sägezahn klingen zu lassen - und nicht nach Digitalunfall.
Digitalunfall- für mich das Wort des Tages!
 
starling schrieb:
... nur hört man es da nicht weil die Obertöne mit -6dB/Okatve abfallen.

Man hört es nicht weil die regulären Obertöne so dicht zusammenstehen, dass das Aliasing von ihnen verdeckt wird.
Man hört es, wenn man die Frequenz moduliert, weil dann die Amplituden der regulären Obertöne durch die Überlagerung mit dem Aliasing moduliert werden. Das klingt dann Chorus-artig.

Deswegen fällt komplett fehlendes Anti-Aliasing (wie z.B. beim Korg Z1, Virus) auch nur begrenzt auf: sobald man mehrere Oszillatoren hat, einen Chorus verwendet und noch x andere Konstellationen, wird es mehr oder weniger verdeckt.
 
Und ich dachte Du wärst wegen Besserwisserei raus hier...

Ja, ist beides richtig. Das mit dem Abfall der Obertöne ist aber ein wichtiger Grund, wenn sie nicht abfallen würden,
wären die gespiegelten genau so laut wie die regulären und dann würde der Abstand der Teiltöne das auch nicht maskieren können.
 
:achso: ... stimmt, das ist natürlich notwendig.

Andere Folgerung daraus: wenn die Obertöne nicht oder kaum abfallen, wie bei schmaler Pulswelle oder Sync-Sounds, dann hilft auch Oversampling nur gar nicht/wenig.

starling schrieb:
Und ich dachte Du wärst wegen Besserwisserei raus hier...
... ich müsste eigentlich Klamotten packen ... und das prokrastiniere ich gerne ...
 
ZH schrieb:
Bandlimitierung heisst in diesem Fall? Ein Tiefpassfilter mit 20 kHz? Oder wie genau muss man sich das vorstellen?

fast. der witz ist, dass man die wellenform mit einer viel hoeheren rate (so im mhz bereich) erzeugt, dann alles rausfiltert was rumnervt (mit besagtem tiefpass), und dann auf die ausgaberate runtersampled. (das ist dann naeherunsweise so, als wuerde man eine "perfekte analoge" welle samplen)
vorteil: ist einfach.
nachteil: je hoeher das oversampling ist, desto besser klingts, und braucht entsprechend mehr rechenleistung...
wird aber durchaus so gemacht, wenn ich mich richtig erinnere beim nord lead (dem ersten?), und auch bei den digitalen oszillatoren von mutable instruments, und bestimmt noch
vielerorts mehr. ich mach das auch gerne so.
 


Neueste Beiträge

News

Zurück
Oben