Forum: Digitale Signalverarbeitung / DSP / Machine Learning FM-Synthesizer Analyse


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christoph M. (mchris)


Lesenswert?

Hier gibt es einen schönen FM-Synthesizer:
https://hackaday.com/2019/10/28/worlds-smallest-midi-synth-now-even-better/

Was mich interessiert: Wie schafft man es, dass der Grundton der 
gedrückten Note entspricht?

von Signalverarbeiter (Gast)


Lesenswert?

Irgendeine Tabelle müsste existieren, die anhand der Taktfrequenz des 
Erzeugersystems und der Sollfrequenz einen Teiler berechnet. Die 
Sollfrequenz oder direkt der Teiler wiederum müssen der MIDI-NOTE 
zugeordnet werden. Da gibt es einen eindeutig definierten Zusammenhang.

Mehr dazu liefert die Suche:
Beitrag "FPGA Größe ausreichend für komplexen FM Synthesizer"

von Joe F. (easylife)


Lesenswert?

Man stellt einen Oszillator auf die der Note entspechende Frequenz ein. 
Ist es das was du wissen wolltest?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

https://de.wikipedia.org/wiki/FM-Synthese
schon 1967-1973 entwickelt und patentiert.
Ich konnte Mitte der 80er eine Weile auf dem DX7 eines Kollegen klimpern 
und habe mir danach den Wersi MK1 Bausatz gekauft. Der arbeitet nicht 
mit FM sondern mit Wellenformen im ROM und herkömmlichen 
Nachbearbeitungs-Effekten, mit 23 8-Bit Prozessoren. Die berechnen 
immerhin für die Orgel-Zugriegel eine FFT mit 16-32 Harmonischen

von Signalverarbeiter (Gast)


Lesenswert?

Christoph db1uq K. schrieb:
> schon 1967-1973 entwickelt und patentiert.

Für die Musikwelt patentiert. Gegeben hat es das schon vorher. Und der 
Sinn war eigentlich der, eben jene Oberwellen zu erzeugen mit den damals 
niederfrequenten Systemen.

Wie zu lesen ist, hat Yamaha sich das 1983 gegriffen und im DX7 verbaut. 
Soweit ist mir das auch bekannt.

Ich frage mich aber, wie das intern geht und mit welchen Taktfrequenzen 
/ Auflösungen die arbeiten. Der DX7 war doch digital, oder?

Und wie geht das hier:

"... DX7, der auch heute noch als virtueller Synthesizer von Native 
Instruments unter dem Namen FM8 angeboten wird."

Die Audioprogramme packen doch gerade 192kHz. Der Sinus der Grundwelle 
ist damit doch schon nicht 100% präzise. Wird dieser noch mit einer 
anderen Welle multipliziert, entstehen uneinheitliche Faltungsspektren, 
oder?

von Christoph M. (mchris)


Lesenswert?

Signalverarbeiter (Gast)
>Irgendeine Tabelle müsste existieren, die anhand der Taktfrequenz des
>Erzeugersystems und der Sollfrequenz einen Teiler berechnet.

Er hat eine riesige Tabelle

https://mitxela.com/projects/flash_synth

die er als "Pitch-Bend-Lookup-Table" bezeichnet. Ich hätte aber eher 
vermutet, dass die für das "Pitch-Wheel" ist, wobei mir der Aufwand 
etwas groß erscheint.

von Jaroslaw (Gast)


Lesenswert?

Christoph M. schrieb:
> (...) Ich hätte aber eher vermutet, dass die für das "Pitch-Wheel" ist, wobei 
mir der Aufwand etwas groß erscheint.

Also, ich verwende nur eine kleine Tabelle, welche Eintraege fuer 
MIDI-Notennummern (0,1,2,...,127) enthaelt. Alle dazwischen liegenden 
Frequenzen erzeuge ich mit Hilfe von linearer Interpolation.
Uebrigens: die Eintraege in der Tabelle sind bei mir keine Frequenzen 
sondern bereits Phaseninkremente fuer die DDS-Oszillatoren.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Jaroslaw schrieb:
> erzeuge ich mit Hilfe von linearer Interpolation.
ähm, du weißt schon, dass das logarithmisch laufen muss?

Signalverarbeiter schrieb:
> Wie zu lesen ist, hat Yamaha sich das 1983 gegriffen und im DX7 verbaut.

Die Frequenzmodulation, die im Nachbarthema andiskutiert, ist nicht 
exakt dasselbe, was in Musik-Synthesizern mit FM-Synthese deklariert 
ist.

Und zu dem, was Yamaha macht, besteht nochmal ein Unterschied.

Auch die im Patent ...

Christoph db1uq K. schrieb:
> schon 1967-1973 entwickelt und patentiert.
... konkret erwähnte Intention, hohe Frequenzen durch Mischung zu 
erzeugen, ist da auch eher ein Randthema.

von Jaroslaw (Gast)


Lesenswert?

J. S. schrieb:
> Jaroslaw schrieb:
>> erzeuge ich mit Hilfe von linearer Interpolation.
> ähm, du weißt schon, dass das logarithmisch laufen muss?

Mir ist sehr wohl klar dass das EXPONENTIELL laufen sollte. Da die 
relative Differenz zw. 2 benachbarten Frequenzen (bzw. 
Phaseninkrementen) in der Tabelle gering ist (0,05946), kann doch die 
lineare Interpolation eingesetzt werden. Beispiel:
2 Frequenzen im 1/4-Ton Interval stehen im exakten Verhaeltnis von
2^(1/24) = 1,02930
waehrend die lineare Interpolierung bringt
1 + 1/2*[2^(1/12)-1] = 1,02973
und der Fehler betraegt +0,04%...

von Audiomann (Gast)


Lesenswert?

Was ist denn nun genau die Leistung dieses FM-Synthesizers? Dass er 
klein und kompakt ist? Man kriegt aus China heute für 1,- (Einen Euro!) 
USB Audio-Headphone Stecker, die man direkt reinstecken kann und die 
über Windows' MIDI Player spielen.

Kommt die Qualität da ran?

Oder haben wir nur wieder etwas gebaut, was es schon gibt oder / und 
keiner braucht?

von Larry (Gast)


Lesenswert?

> was es schon gibt oder / und keiner braucht?

Synthies gibt es wie Sand am Meer.

Wenn es um den: https://mitxela.com/projects/flash_synth geht:

- Er ist in Echtzeit spielbar.
- Es ist sehr klein und leicht.
- Er wird wohl auch nicht besonders teuer sein.

Ich persoenlich ziehe einen emulierten DX7 als FM7/FM8-VST von NI
trotzdem vor. Wenn ich den mehrfach brauche, kann ich von dem
soviele Instanzen starten wie noetig. Geht dem Rechner dabei die
Puste aus, reicht ein Freeze der Spur(en).
Dabei wird die Emulation in eine Audiodatei gefroren und muss
nicht mehr berechnet werden.

von Christoph M. (mchris)


Lesenswert?

>- Er wird wohl auch nicht besonders teuer sein.

Er kostet zwischen 129 und 159 Euro. Wenn man den Materialpreis nimmt ( 
wird wohl so 15Euro sein), erscheint das ziemlich viel.
Aber: heute liegt der Aufwand in der Software und mir scheint der 
Aufwand, den die da rein gesteckt haben, ziemlich hoch.
Wenn Sie 100 Stück verkaufen, ist das wahrscheinlich schon viel und bei 
dem Preis kriegen sie die Entwicklungskosten nie rein.

von Audiomann (Gast)


Lesenswert?

Larry schrieb:
> - Es ist sehr klein und leicht.

und belegt die komplette physikalische MIDI Schnittstelle. Ok, nun 
könnte man sowas wie ein Unitor oder Steinberg IF dranhängen und 8 
Kanäle betreieben. Aber:

Christoph M. schrieb:
> Er kostet zwischen 129 und 159 Euro.

Hoppla.

Ich nehme da eine alte eMU Audity für 199,- aus der Bucht. Die brummt 
auf 16 Kanälen.

von Audiomann (Gast)


Lesenswert?

Ach, und wenn es richtige FM-Synthese sein soll, dann gibt es auch die 
Yamaha FM mit echten OPL3-Chips in Form von eMU-Soundkarten, aka 
Soundblaster AWE. Man muss gfs noch einen alten XP-Rechner mit ISA-Slots 
aufbauen, weil so uralt ist der Krempel schon.

Für den Preis von 2x 159,- kriegt man auch schon einen Behringer Synth 
und bei 3x159,- reicht es für einen Blofeldt. Und ich habe ein wenig den 
Verdacht, dass die Stenzeltruppe etwas Anspruchsvolleres 
zusammengeschraubt hat, als dieses MINI-MIDI-Ding.

von Christoph M. (mchris)


Lesenswert?

>Ach, und wenn es richtige FM-Synthese sein soll, dann gibt es auch die
>Yamaha FM mit echten OPL3-Chips in Form von eMU-Soundkarten, aka
>Soundblaster AWE.

Warum sind die besser als der obige MiniSynth?

von Audiomann (Gast)


Lesenswert?

Christoph M. schrieb:
> Warum sind die besser als der obige MiniSynth?

Weil sie - was FM-Synthese angeht - mehrere Operatoren haben, ein 
standardisierte Funktion MIDI-AUDIO, es massenhaft alternative FONTs 
gibt ...

... uns sie 15,- in der Bucht kosten, kompletten Treibersupport haben 
und dazu noch ein echte digitale Schnittstelle, die ich ins Mischpult 
bekomme, um mit diesen herrlichen Syntch auch was anfangen zu können.

Mit welcher neu erdachten HW einer auch immer daher kommen mag, sie wird 
nicht besser oder billiger sein, als die in Silizum gegossene 
Technologie.

Was die anderen Geräte von B und W anbelangt: Den B habe ich schon 
gehört und der Blofeld ist sowie schon über jeden Zweifel erhaben.

von Larry (Gast)


Lesenswert?

> zwischen 129 und 159 Euro

Da duerften sich die Verkaufszahlen recht uebersichtlich halten.
Aber ich bin sicher, dass die Chinesen bald die ersten Klone
fuer ein Zehntel liefern konnen.
Vielleicht nicht so extrem miniaturisiert, aber dafuer noch
mit einem zweiten Prozessor der sich um USB-Midi kuemmert.

> ... uns sie 15,- in der Bucht kosten

Im Abverkauf konnte man schon damals eine AWE32 fuer 18 Euro kaufen.
Den digitalen Ausgang erreicht der OPL-Chip im uebrigen m.W. nicht.
Der ist dem Emu vorbehalten. Wer Sampler mag, ist mit einer AWE32
und einem Altrechner recht gut bedient.

von Christoph M. (mchris)


Lesenswert?

Audiomann (Gast)
>Mit welcher neu erdachten HW einer auch immer daher kommen mag, sie wird
>nicht besser oder billiger sein, als die in Silizum gegossene
>Technologie.

Wir haben das Jahr 2019 und die ARM F4x haben Floating Point. Wenn der 
Algorithmus bekannt ist, kann man die FM-Synthese zusammen mit vielen 
anderen Algorthmen für Kosten nahe Null einführen.
Bis jetzt sehe ich kein stichhaltiges, nachvollziehbares Argument für 
den Einsatz eines OLP3 Chips.
Soweit meine Ohren als Messgerät taugen, kling der MiniSynth ziemlich 
perfekt.

von Michael W. (Gast)


Lesenswert?

Christoph M. schrieb:
> die ARM F4x haben Floating Point. Wenn der
> Algorithmus bekannt ist, kann man die FM-Synthese zusammen mit vielen
> anderen Algorthmen für Kosten nahe Null einführen.

Arbeiten die überhaupt mit floating Point? Ich nehme an, nicht. Die 
haben doch ganz sicher interne Auflösungsbegrenzung, oder arbeiten die 
analog?

von Christoph M. (mchris)


Lesenswert?

>Arbeiten die überhaupt mit floating Point?
Hast Du die Beschreibung gelesen?
https://mitxela.com/projects/flash_synth
1
The lookup tables were designed as follows:
2
* A 512 byte (128 * float32) table for base frequencies in equal temperament
3
* A 32kB (8192 * float32) table as a sine wave lookup (more on this in a bit)
4
* A 64kB (16384 * float32) table for pitch bending. The entire table covers +/- one semitone, and offers the highest resolution pitchbending possible.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Christoph M. schrieb:
> and offers the highest resolution pitchbending possible.
Was heißt hier "highest possible"?

Bezogen worauf?

Pitchbending z.B. geht ja theoretisch beliebig genau und wenn man float 
stringent durchzieht (-rechnet), gibt es da keine Auflösungsthematik, 
die von der Klangerzeugung ausginge. Das kommt - wenn - von der 
Beschränkung der Controller. Ich denke, dass aus Rechenzeitgründen 
einfach sehr viel in Tabellen gemacht wird, statt es wie üblich zu 
rechnen. Genauer wird es dadurch aber sicher nicht.

Gerade bei der FM nach Yamaha style sind die Phasenfehler infolge von 
Rundung sehr relevant, weil sie sich über die Stufen hin verstärken. Die 
Emulationen in float, die man in den PC-Audio-plugins verwendet, haben 
dieses potenzielle Defizit nicht. Jedenfalls nicht, wenn sie passend 
ausgeführt sind.

Die interessantere Frage ist, wie es in den Original-Chips gemacht wurde 
und inwieweit ein (zu) genaues Rechnen dem nahe kommt.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Audiomann schrieb:
> Mit welcher neu erdachten HW einer auch immer daher kommen mag, sie wird
> nicht besser oder billiger sein, als die in Silizum gegossene
> Technologie.
Das ist irgendwo richtig, aber eine in "Silizum gegossene Technologie" 
unterliegt ja auch immer den Optionen und Randbedingungen zum 
Designzeitpunkt und der liegt bei Yamaha-FM-Chips schon etwas länger 
zurück. :D

Abtastraten, Operatoren, Auflösungen und digitale Vektorbreiten 
orientierten sich an den damaligen Möglichkeiten und bei Musikelektronik 
war es immer auch schon eine Frage der Bezahlbarkeit, welche die Limits 
vorgab. Das galt auch für eine Waldorf PGP. Wellenformen brauchen 
Speicher - sehr viel Speicher! Daher war die FM Synthese mit ihrer 
Vielzahl an Möglichkeiten eine prima Alternative, weil sich durch den 
Eingriff in die Phase mit nur wenigen Parametern sehr viel machen ließ.

Ob das zeitgemäß ist, bleibt dahin gestellt. Die FM-Klänge haben so ihre 
Eigenheiten, die sich auch negativ auswirken, weswegen da bei Weitem 
nicht alles geht und gut klingt und einiges auch zufällig gut und 
schlecht ist. Am Ende ist das vor Allem ->Einstellungssache :-)

> Mit welcher neu erdachten HW einer auch immer daher kommen mag, sie wird
> nicht besser oder billiger sein, als die in Silizum gegossene
> Technologie.
Billiger sicher nicht, aber besser geht ohne Weiteres:

Man baut einen OPL4 mit 4 Operatoren und seinen Grundwellenarten nach 
und rüstet ihn dann mit 2 weiteren OPs sowie einer Zwischenfilterung 
aus, welche die Phasenmodulation der Folgestufe beeinflusst. Flux hat es 
neue Funktionen.
http://www.96khz.org/oldpages/fmsynthesis.htm

Dann addiere man offsets und Gain-Faktoren, um das zu trimmen und nutze 
ein variables feedback aus jeder Stufe, um Ringmodulationen mit 
unterschiedlichen Frequenzbetonungen zu schaffen. Schon das kann 
erheblich mehr, als die alten Yamaha-Chips. Um es noch weiter zu toppen, 
nimmt man einfach eine Kaskadierung vor und baut eine FM-Synthese mit 8 
und 12 Operatoren:
http://www.96khz.org/htm/fmsynthesis2.htm

Und um die Frage aus der benachbarten Thematik zu beantworten:
Beitrag "Re: FPGA Größe ausreichend für komplexen FM Synthesizer"

Ja, Spartan 2 reicht. Spartan 3 und Cyclone II reichen sogar für mehrere 
davon, bzw, einen 8-stufigen als echte pipeline, sodass jede Taste ihren 
eigenen FM-Synthesizer hat, der unabhängig von den anderen läuft und 
parametriert werden kann. Mit etwas Geschick kann man die Parameter so 
steuern, dass die Elongation der Phasenmodulation immer zum Ton passt, 
also sowas wie 1/3 zu 2/3, was dazu führt, dass immer die erste 
Oberwelle entsteht.

von Martin K. (mkmannheim) Benutzerseite


Lesenswert?

Audiomann schrieb:
> Was die anderen Geräte von B und W anbelangt: Den B habe ich schon
> gehört und der Blofeld ist sowie schon über jeden Zweifel erhaben.
Beim Waldorf gehe ich noch mit, aber beim "Boog"?

Beitrag "Re: Grundlagen Tonerzeugung in der Analogtechnik"

von Andi (Gast)


Angehängte Dateien:

Lesenswert?

Martin K. schrieb:
> Beim Waldorf gehe ich noch mit, aber beim "Boog"?

Die Moog-Kopie ist ja kein FM-Synthesizer. Da hat Behringer andere im 
Programm, meine ich.

audiorolf schrieb:
> Herausgekommen sind aber bisher nur sehr billige Kopien der Originale.
Was auch nicht verwunderlich ist, weil die Firma mit dem großen B 
tatsächlich sehr viel in China bauen lässt, damit es "schön billig" ist. 
Lustig finde ich, dass selbst die schon kopiert werden, wie vor einiger 
Zeit in einem chinesischen Musik-Forum gepostet wurde.
Thread-Titel: 乐器 合成  声音发生器  对照  欧洲模式

Die Dinger werden in China und Hongkong mehr oder weniger unter und auch 
über der Ladentheke offen gehandelt. Auch bei Alibaba sind sie schon 
aufgetaucht. Angeblich hat der mehr Funktionen und dafür kein USB ... 
und auch keine FM-Synthese :-)

Von meiner Seite (Hobbyymusiker, aber immerhin) wäre noch hinzuzufügen, 
dass FM Synthese auch ziemlich out zu sein scheint.

von Rolf S. (audiorolf)


Lesenswert?

Andi schrieb:
> Die Moog-Kopie ist ja kein FM-Synthesizer.

FM-Modulation kannst du mit jedem analogen Synthesizer herstellen, der 
einen Ringmodulator hat und im Signalpfad davor einen Offset addieren 
kann. Die Masche ist doch immer Signal + Modulation -> neue Phase als 
Modulator für Folgestufe.

von de Kölsche Jong (Gast)


Lesenswert?

Dabei pflanzt sich aber der Fehler immer weiter fort und bei mehreren 
Stufen wie sie z.B. bei der Yamaha-FM benutzt wird, dann kommt ein 
n-facher Fehler heraus.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Andi schrieb:
> Die Moog-Kopie ist ja kein FM-Synthesizer.

und das Dingens im Bild sollte wohl auch eher eine Dave Smith Kopie 
werden, nehme ich an.

von Audiomann (Gast)


Lesenswert?

Andi schrieb:
> Thread-Titel: 乐器 合成  声音发生器  对照  欧洲模式
Wenn doch nur mein Mandarin etwas besser wäre ...

Jürgen S. schrieb:
> und das Dingens im Bild sollte wohl auch eher eine Dave Smith Kopie
> werden, nehme ich an.
Bei dem Gerät im Bild handelt es sich um den Behringer Model-D, eine Art 
remake des MiniMoog: https://de.wikipedia.org/wiki/Moog_Minimoog

Ist aber nur optisch identisch :-)

von Andreas F. (chefdesigner)


Lesenswert?

Audiomann schrieb:
> Andi schrieb:
>> Thread-Titel: 乐器 合成  声音发生器  对照  欧洲模式
> Wenn doch nur mein Mandarin etwas besser wäre ...
Man preist die Qualität dieses ausgefallenen Produktes an!

de Kölsche Jong schrieb:
> Dabei pflanzt sich aber der Fehler immer weiter fort und bei mehreren
> Stufen wie sie z.B. bei der Yamaha-FM benutzt wird, dann kommt ein
> n-facher Fehler heraus.
Wieviele Stufen hat so ein FM-Modulator? Die Auflösung sollte sich so 
ausweiten lassen, dass das kein Problem ist.

Christoph M. schrieb:
>>Arbeiten die überhaupt mit floating Point?
> Hast Du die Beschreibung gelesen?
> https://mitxela.com/projects/flash_synth
... und dann gibt es noch den Typ "double".

von Hochfrequenzler (Gast)


Lesenswert?

Christoph db1uq K. schrieb:
> https://de.wikipedia.org/wiki/FM-Synthese
> schon 1967-1973 entwickelt und patentiert.
Das ist alles Musik-Frequenz-Modulation, nehme ich an, denn 
Frequenzmodulation gab es schon "geringfügig" früher ;-)
Wie kann / konnte man das eigentlich noch patentieren?

Andreas F. schrieb:
> Wieviele Stufen hat so ein FM-Modulator?
Inwiefern braucht der mehrere Stufen? Ist das dann ein y=sin ( a sin ( b 
x) )?
Macht das überhaupt Sinn?

von Audiomann (Gast)


Lesenswert?

Jaroslaw schrieb:
> Also, ich verwende nur eine kleine Tabelle, welche Eintraege fuer
> MIDI-Notennummern (0,1,2,...,127) enthaelt. Alle dazwischen liegenden
> Frequenzen erzeuge ich mit Hilfe von linearer Interpolation.
Warum linear? Die Frequenzen der Musiknoten sind doch eher 
logarithmisch/exponentiell, oder?

> Uebrigens: die Eintraege in der Tabelle sind bei mir keine Frequenzen
> sondern bereits Phaseninkremente fuer die DDS-Oszillatoren.
Das ist aber doch irgendwie dasselbe, oder? Je höher die Frequenz, desto 
höher das Inkrement. Und in dem Fall sind beide ja wirklich linear. 
Meines Wissens ist das doch eine simple DDS. Man addiert kontinuierlich 
das Inkrement und bekommt einen Phasenvektor, der an der 360°-Grenze 
umklappt. Für eine FM-Modulation müsste nun nur noch das Inkrement 
manipuliert werden.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Wenn man eine technische Frequenzmodulation durchführen möchte, für z.B. 
einen Radar-Chirp, dann ist ein lineares Verhalten manchmal durchaus 
sinnvoll. Auch für messtechnisches Anwendungen, wie Jitter-Erzeugung 
wird oft genug eine lineare Modulation benutzt.

Bei der Musik möchte man aber in der Tat eine symmetrische Elongation 
der Note, jenachdem, welches Instrument man imitieren will. Ein analoger 
Synth und eine Theremin funktionieren z.B. so (auch, weil sie so 
eingestellt sind, wenn sie mit log Spannungsprofil arbeiten). Eine 
Gitarrensaite wiederum produziert bei einer gleichmäßigen Fingerbewegung 
beim Vibrato aber kein perfektes Dehen und Verkürzen der Saite so, dass 
das Vibrato exakt stimmt. Auch das der menschlichen Stimme ist etwas 
ungenau.

Zwischenwerte bekommt man daher mit der geometischen Mitte (Wurzel 
(a*b)) und vereinfachend mit einem quadratischen Ansatz.

von Eins N00B (Gast)


Lesenswert?

Hochfrequenzler schrieb:
> Andreas F. schrieb:
>> Wieviele Stufen hat so ein FM-Modulator?
> Inwiefern braucht der mehrere Stufen? Ist das dann ein y=sin ( a sin ( b
> x) )?
> Macht das überhaupt Sinn?

Ja, je nachdem, welche Topologie (aka. Algorithmus) man so einstellt.
Und ja!

Randnotiz: Warum sind hier eigentlich in jedem fkin Thread zu einem 
Projekt diese „auf Ali gibt es das aber schon für 1€“-Nöhlen?

Das war vermutlich Hobby, Wayne interessiert’s, ob es das schon woanders 
gibt?

von Eins N00B (Gast)


Lesenswert?

Achso: DX7-Emulatoren muss man nicht bei NI kaufen, dexed ist auch ganz 
cool: https://asb2m10.github.io/dexed/

von Jaroslaw (Gast)


Lesenswert?

Hallo,

Audiomann schrieb:
> Jaroslaw schrieb:
>> Also, ich verwende nur eine kleine Tabelle, welche Eintraege fuer
>> MIDI-Notennummern (0,1,2,...,127) enthaelt. Alle dazwischen liegenden
>> Frequenzen erzeuge ich mit Hilfe von linearer Interpolation.

> Warum linear? Die Frequenzen der Musiknoten sind doch eher
> logarithmisch/exponentiell, oder?

Wie ich im Oktober 2019 (mit meinem schwachen Deutsch) versucht habe zu 
erklaeren, es ist praktisch egal ob die Frequenzen, die einen Halbton 
auf 100 Cents teilen, eine arithmetische (an+1)=a(n)+d oder eine 
geometrische a(n+1)=a(n)*q Reihe bilden.
Dies gilt natuerlich nicht fuer die Frequenzen der exakten Halbtoene.


>> Uebrigens: die Eintraege in der Tabelle sind bei mir keine Frequenzen
>> sondern bereits Phaseninkremente fuer die DDS-Oszillatoren.

> Das ist aber doch irgendwie dasselbe, oder? Je höher die Frequenz, desto
> höher das Inkrement. Und in dem Fall sind beide ja wirklich linear.
> Meines Wissens ist das doch eine simple DDS. Man addiert kontinuierlich
> das Inkrement und bekommt einen Phasenvektor, der an der 360°-Grenze
> umklappt. Für eine FM-Modulation müsste nun nur noch das Inkrement
> manipuliert werden.

Ja, es stimmt. Es geht darum dass ich in der Tabelle bereits fertige 
Phaseninkremente habe, was Rechenaufwand im Echtzeit erspart.
Und das mit der Modulation der Inkremente stimmt auch.
Bequemer ist allerdings, die Phase statt den Phaseninkrement zu 
modulieren (PM statt FM). So war's auch gemacht in den 
Yamaha-DX-Synthesizern.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Jaroslaw schrieb:
> das mit der Modulation der Inkremente stimmt auch
Das wäre auch die 2. Abteilung, wenn man es linear macht, d.h. die 
Änderung würde mit dem zweifachen Integral die Änderung der Amplitude 
eingehen. Wenn man das so macht, müssen die Inkremente auch negativ sein 
können (?)

Man könnte die Frequenzen auch komplett berechnen, wenn man eine 
exponentielle Tabelle benutzt. Dann stimmt auch das Vibrato. Bei meinen 
frühen Synthesizern habe ich das so gemacht. Allerdings waren die auch 
aufgebaut, wie Orgeln und es mussten alle Frequenzen für alle Tasten 
erzeugt werden, was durch Iteration bei Multiplikation mit 185/196 
erreicht wurde - ausgehend vom Inkrement für die höchste Note. Das 
Vibrato kann man dann jeweils mitnehmen indem man es einmal am Start 
vorbelegt.

von Rolf S. (audiorolf)


Lesenswert?

Larry schrieb:
> Ich persoenlich ziehe einen emulierten DX7 als FM7/FM8-VST von NI
> trotzdem vor.
Und was kostet der? Wieviel Rechenleistung benötigt er? Was kostet er 
damit anteilig am PC? Was ich so an DX7-Emulationen kenne, sind sie 
entweder schlecht oder verbraten einen Haufen Rechenleistung. Auch wenn 
man 50 Stück laufen lassen kann und sich der Preis damit runterteilt, 
sind es bei heutigen PC-Kosten immerhin noch 20,- .. 50,- pro Stimme. 
Nimm die Kosten für 2-3 Stimmen und du bekommst einen gebrauchten 
DX7!!!!

von Rolf S. (audiorolf)


Lesenswert?

Jürgen Schuhmacher schrieb:
> Um es noch weiter zu toppen, nimmt man einfach eine Kaskadierung vor
> und baut eine FM-Synthese mit 8 und 12 Operatoren:
> http://www.96khz.org/htm/fmsynthesis2.htm
Kann man sagen, wieviel Chipfläche der benötigt und was diese dann 
kostet? FPGAs sind doch noch teuer, als so ein ARM.

: Bearbeitet durch User
von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Je nach Ausbau und Umfang benötigt mein FM zwischen 5% und 10% eines 
Artix 100. Der kostet mit umliegender HW rund 200,- dass man MIDI und 
AUDI mehrkanalig drin hat. Macht also auch 20,- bis 40,- Euro. 
Allerdings braucht der FM nur zwischen 16 bis 48 Takte je nach Umfang. 
Für das, was der DX7 macht, rechne ich 32 Takte. Macht bei 786kHz Rate 
immerhin 8 Stimmen. Eine Stimme kostet also unter 5,-

Die kleinen Projekte, wie der Flashsynth, rechnen aber im Leben keine 
768kHz, sind also viel ungenauer - kosten aber pro Stimme mehr.

Ein ARM ist am Effektivsten:

Für (m)einen FM8OP fallen rund 16x8 Schritte an. Macht bei einem 
1GHz-ARM und gleicher Rate etwa 16 Stimmen, wobei noch Verwaltung und IO 
hinzukommt. Ich schätze 10 Stimmen. Dass die real mehr rechnen, liegt 
einfach daran, dass sie die Abtastrate runternehmen und damit aber auch 
ungenauer werden.

Es läuft auch hier auf immer die gleiche ultima ratio hinaus:

Alles, was man mit einem Prozessor hinbekommt, sollte man auch mit einem 
Prozessor machen. Das gilt auch im Allgemeinen für Klangsynthese. Was 
man eben nicht mehr so einfach hinkriegt, ist ein 256-Stimmen breites 
digitales Mischpult um allerlei Oberwellen und Teilwellen dynamisch 
zusammen zu mischen und dabei mehrere Micro-Controller-basierte Synths 
herzunehmen und extern zu verschalten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.