mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP 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.
Autor: Christoph M. (mchris)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Signalverarbeiter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Joe F. (easylife)
Datum:

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

Autor: Christoph db1uq K. (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Signalverarbeiter (Gast)
Datum:

Bewertung
-2 lesenswert
nicht 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?

Autor: Christoph M. (mchris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jaroslaw (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jaroslaw (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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%...

Autor: Audiomann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Larry (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph M. (mchris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Audiomann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Audiomann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph M. (mchris)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Audiomann (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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.

Autor: Larry (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph M. (mchris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus W. (elektrowagi78) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Christoph M. (mchris)
Datum:

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

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin K. (mkmannheim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Andi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.