mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Synthesizer Signalgenerator


Autor: Sean (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

und zwar bin ich gerade dabei einen Synthesizer zu entwerfen 
(Musikinstrument).

Dazu benötige ich ein Signal (wahlweiße Dreieck, Rechteck, Sinus oder 
Sägezahn), welches ich danach durch verscheidene Filter, Effekt, etc. 
durchschicke.

Allerdings gibt es eine Sache die mich etwas verwirrt.

Werden mehrere Tasten gedrückt, werden bei käuflichen Synthesizern auch 
mehrere Signale überlagert.
Wie wird das in der Praxis gelöst?

Ich kann schlecht für jede Taste einen Signalgenerator vorsehen. Ob ich 
später die Einzelne Taste direkt als Trigger verwende, oder über Midi 
arbeite, weiß ich jetz noch nicht. Wohl eher Midi.

Gib es die Möglichkeit "intelligent" ein einziges Signal zu generieren, 
dass sich aus verschiedenen Frequenzen zusammensetzt?

Danke,

Gruß Sean

Autor: David P. (chavotronic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Synthesizer haben aus diesem Grund eine bestimmte Anzahl X an Stimmen.
Mit 5 Stimmen kann zB wenn 6 Tasten gedrückt werden der 6te Ton  nicht 
erzeugt werden. Manche monophone Synthesizer können i.d.T. nur einen Ton 
gleichzeitig erzeugen.

Autor: Ingo W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Werden mehrere Tasten gedrückt, werden bei käuflichen Synthesizern auch
> mehrere Signale überlagert.
> Wie wird das in der Praxis gelöst?

Meistens gibt es einen Pool von Generatoren, die den angeschlagenen 
Tasten dynamisch zugewiesen werden, das ist auch ein wichtiges 
Kaufargument ("Anzahl der Stimmen", manchmal über 100). Oft werden auch 
für einen Ton mehrere Generatoren benötigt:
http://de.wikipedia.org/wiki/Orgel#Register
mfG ingo

Autor: David P. (chavotronic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt Synthesizer an denen man die Verteilung der Stimmen einstellen 
kann. zB benutzt man dann 3 oder 4 Stimmen um seinen Ton zu erzeugen. 
Dann brauchst du schon mindestens 12 Stimmen (Also auch 12 Generatoren).
Mein guter alter DX7 hat davon 16.
Ich glaube eine Polyphonie Analog aufzubauen macht sicher keinen Spaß.

Autor: Sean (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wollte bei mir 3 Oszillatoren verwenden.
Da ich maximal 10 Finger habe, heißt das, dass ich wohl 30 Oszillatoren 
verwenden muss. Da das heute alles digital geht, und analog ein riesen 
Aufwand ist, werde ich das wohl auch digital machen. Mathematisch istes 
doch möglich, ein Signal, dass sich aus mehereren Signalen 
zusammensetzt, zu errechnen.
Dafür wird aber etwas mehr Rechenleistung nötig sein...

Mal sehen ob wer vieleicht noch eine idee hat.

Danke soweit

Autor: Sean (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast nen DX7? Verkaufst du den zufällig ?

Autor: David P. (chavotronic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage ist eher..wieviele Finger sind gleichzeitig gedrückt?5-6 halte 
ich für möglich. Mehr aber eher nicht?

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, früher war das so. Es gab dann irgendwann auch große Logikgräber 
für die Zuordnung von Tastendrücken zu verfügbaren Oszillatoren/Filtern.

Heutzutage werden Synthesizer nur noch selten diskret aufgebaut, sondern 
auf Prozssor-/DSP-Basis realisiert. Dort wird die Zahl der polyphonen 
Klänge vor allem durch die Rechenleistung bestimmt.

Autor: David P. (chavotronic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo aber genau deshalb waren die ersten PolySynths sauteuer.
ucapps.de ist eine Seite die du dir mal anschauen solltest.

Autor: Jobst M. (jobstens-de)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
David P. schrieb:
> Die Frage ist eher..wieviele Finger sind gleichzeitig gedrückt?5-6 halte
> ich für möglich. Mehr aber eher nicht?

Ein Ton kann noch ausklingen, wenn der Finger gar nicht mehr auf der 
Taste ist. Da kann man schnell mal >10 Stimmen benötigen.

Wenn man mit der Hand über die Klaviatur 'wischt' werden es auch schnell 
noch mehr.

Analog stelle ich mir allein schon die Prioritätslogik, mit der die 
Oszillatoren den Tasten zugewiesen werden, als Herausforderung vor.
Solange die Tasten immer schon nacheinander gedrückt werden, ist das 
kein Problem - da kann man die reihum zuweisen. Was ist aber, wenn eine 
Taste dazwischen dauernd gehalten wird?


Gruß

Jobst

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jobst M. schrieb:
> Ein Ton kann noch ausklingen, wenn der Finger gar nicht mehr auf der
> Taste ist. Da kann man schnell mal >10 Stimmen benötigen.

Seit es MIDI gibt, muß ein Synth auch deutlich mehr Stimmen wiedergeben 
können, als 1 oder 2 Spieler Finger haben. Stichwort: Expandermodus.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sean schrieb:
> Gib es die Möglichkeit "intelligent" ein einziges Signal zu generieren,
> dass sich aus verschiedenen Frequenzen zusammensetzt?

Man könnte einen Controller mit Look-Up-Tables der verschiedenen 
Wellenformen füllen und diese mit verschiedenen Abtastraten durchackern 
und auf verschiedenen (PWM oder DAC)-Kanälen ausgeben. Ich könnte mir 
vorstellen,
dass der XMega sowas könnte...

Autor: Ralph Berres (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht könnte man die Hammond Orgel ( M100 B3 usw ) auch als analog
mechanischer Synthesizer auffassen. Bei diesen Orgel wurde für jeden Ton
( wirklich für jeden Ton ) ein Zahnrad spendiert vor welcher dann eine 
Spule als Tonabnehmer gesessen hat. Dadurch hatte die Hammond soviel 
Stimmen wie Tasten. Die Signalform der Töne wurde duch die Form der 
Zahnräder bestimmt. Mit Hilfe von Zugriegel konnte man dan die Signale 
der Zahnräder mischen, und so den Hammondtypischen Sound erzeugen.
Selbst das Tremolo war mechaniscg gelöst, mit Hilfe eines vielgliedrigen 
Allpasses, dessen Antapfungen über einen sich drehenden Schlaifers 
abgetastet wurde. Und dann gab es noch die rotierende Lautsprecher.

Ralph Berres

Autor: Freies Elektron (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Den elektronischen Orgeln, egal ob von Hammond oder von sonstigen 
Herstellern, lag bis Ende der 80er-Jahre eine andere Schaltungstechnik 
zu grunde als die Tonerzeigung der Synthesizer.

El. Orgeln waren immer auf allen Tasten polyphon spielbar, mit bis zu 9 
Chören(Fußlagen) pro Taste.

Durch Klangformung wie: Sinus(Flötentöne), Rechteck(gedackt, z.B. 
Klarinette), Sägezahn(Trompete, String), Vibrato, Tremolo, WahWah, 
Repeat, Percussion usw., wurde ein abwechselungsreiches Klangbild 
erzeugt.

Diese Orgeln hatten zwar ein volumiöses Klangbild, allerdings kam die 
Effektgestalltung nie an die Möglichkeit eines Synthesizers heran.

Eine WERSI-Selbstbauorgel aus den 70ern, zwar von schlechter 
Bildqualität aber zum reinhören reicht es:
Youtube-Video "FRANZ LAMBERT KONZERT TEIL 1 - WERSI GALAXIS-HELIOS-SN1 "Weisser Traum""

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht interessant:

27C3: DIY synthesizers and sound generators
http://events.ccc.de/congress/2010/Fahrplan/events...
http://mirror.fem-net.de/CCC/27C3/mp4-h264-HQ/27c3... 
(H.264 Video)

Autor: Ralph Berres (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Freies Elektron schrieb:
> Den elektronischen Orgeln, egal ob von Hammond oder von sonstigen
>
> Herstellern, lag bis Ende der 80er-Jahre eine andere Schaltungstechnik
>
> zu grunde als die Tonerzeigung der Synthesizer.

Nur das die hammond den Ton durch Abtastung von Zahnscheiben mit einer 
Spule erzeugt haben ( deswegen der charakteristische Klang der Hammond 
), und die rein elektronischen Orgeln der damaligen Zeit,
wenn man Glück hatte, mit 12 Sinusoszillatoren die dann mit Flip Flops 
in der Frequenz runtergeteilt wurden. Es lagen als Quellsignale auf 
jeden Fall Rechtecksignale vor, die dann gefiltert wurden. ( Bei Hammond 
waren es annähernd sinusförmige Signale). Einzige Ausnahme war die 
Phillips Philicorda, die hatte Sägezahngeneratoren mit Hilfe von 
Glimmlampen.

Alle diese Elektronenrgeln der frühen Generation hatten den Nachteil das 
die 12 Muttergeneratoren sich gerne gegeneinander Verstimmt haben und 
nicht langzeitstabil war. Das änderte sich erst später, als die 
Muttergeneratoren durch einen Synthesizer ersetzt wurden, die natürlich 
auch ein Rechtecksignal erzeugt haben.

Ralph Berres

Autor: Freies Elektron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph Berres schrieb:
> Alle diese Elektronenrgeln der frühen Generation hatten den Nachteil das
> die 12 Muttergeneratoren sich gerne gegeneinander Verstimmt haben und
> nicht langzeitstabil war. Das änderte sich erst später, als die
> Muttergeneratoren durch einen Synthesizer ersetzt wurden, die natürlich
> auch ein Rechtecksignal erzeugt haben.

Ja ja, das war die ständige Diskussion in der damaligen Zeit.

Es ist immer noch richtig: Die Phasenlebendigkeit der Zahnradgeneratoren 
ist unübertroffen.

Autor: Kakadu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Einzige Ausnahme war die Phillips Philicorda,

Die Hohner Orgeln in den 60ern hatten Sägezahn-Vibratoren (weiß schon 
garnicht mehr, wie die genau bezeichnet werden), die abgeleitet vom 
Muttergenerator oktavenweise synchronisiert wurden. Die Funktion war 
zeitweise zufällig :-)

@Sean
Der Minimoog war nur einstimmig spielbar. Er war auf keinen Fall 
überladen und virtuos spielbar. Vielleicht wäre das auch ein Ziel? 
Retro-Moog :-)

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mich interessiert es auch wie digitale Synthesizer (sagen wir mal etwas 
älter... z. B. Casio VZ-1, Yamaha DX-7, Roland D-50) Mehrstimmigkeit 
erreichen. D. h. wie sehen in der Praxis die Algorithmen aus, die bei 
mehreren, zu unterschiedlichen Zeitpunkten gedrückten Tasten die 
zugehörigen Töne generieren? Unabhängig davon, ob dann jeweils ein 
Sample (bei den Romplern) oder eine synthetisch generierte Welle 
(Sägezahl, Rechteck etc.) abgespielt wird.

Kann jemand entsprechende Links, pdfs etc.?

Danke schon mal im voraus.

Gruß
Max

Autor: Steffen Warzecha (derwarze)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein poyphoner Sythie mit analoger Klangerzeugung war zB der Korg 
Polysix.
Der hatte 6 Oszillatoren und auch die Filter und VCA waren 6fach 
vorhanden.
Zusätzlich war noch eine analoge Chorus/Phaser-Einheit eingebaut.
War bedienbar wie ein Analogsynthie (al a Minimoog) aber die 
Einstellungen konnten gespeichert, es konnten 32 Presets verwendet 
werden die man auch mit einen normalen Kasettenrecorder zusätzlich 
archivieren konnte.
Das Analogteil ist nicht sehr kompliziert mit heutigen Teilen 
nachzubauen, die Schaltpläne und Servicemanuals gibt es im Netz.
Möglicherweise findet sich bei synthesizerarchiv.de was.

Kakadu schrieb:
> Vielleicht wäre das auch ein Ziel?
>
> Retro-Moog :-)

Habe schon des längerem die Idee, nur so aus Spass, den im Miniformat zu 
bauen oder, was bei den heutigen preiswerten Bauteilen auch ginge, ihn 
als quasi-polyphones Teil zu bauen.
Allerdings sollte man sich von der original Keyboardelektronik (sehr 
instabil) trennen und diesen Teil digital aufbauen. Vor 25 Jahren hab 
ich das mal, allerdings einstimmig, in eimem Moog-Nachbau so gemacht.

Autor: Michael Roek (mexman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Steffen,


> Ein poyphoner Sythie mit analoger Klangerzeugung war zB der Korg
> Polysix.
> Der hatte 6 Oszillatoren und auch die Filter und VCA waren 6fach
> vorhanden.

ja genau....... so einen habe ich auch noch hier stehen...seufz....
Man wird alt.....


Gruss

Michael

Autor: Steffen Warzecha (derwarze)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael,

is ja toll, läuft der noch? Oft verabschiedet sich ja die Batterie auf 
der Prozessorplatine.
Für das Teil wird ja bei Ebay noch einiges geboten, ist halt ein 
Klassiker der vor MIDI Generation (soll da aber ein Nachrüstkit geben 
wie ich vor längerer Zeit hörte).
Machte Spass damit zu spielen da man ja immer direkten Zugriff auf den 
Sound hatte, mit dem dx7 war das nicht so einfach.

Autor: Hobbyorganist (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mich interessiert das Projekt, speziell das Thema Tongereration und 
Polyphonie. Wer liest hier von den Autoren noch mit?

Konkret zu Eingangsfrage:

Wie erzeuge ich mit einem Microcontroller am Einfachsten Polyphonie?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hobbyorganist schrieb:
> Mich interessiert das Projekt, speziell das Thema Tongereration und
> Polyphonie. Wer liest hier von den Autoren noch mit?
>
> Konkret zu Eingangsfrage:
>
> Wie erzeuge ich mit einem Microcontroller am Einfachsten Polyphonie?

Indem du bespwsw. 6 Oszillatoren, 6 Filterstufen, 6 Hüllkurven, etc. 
hast. Nennen wir der Einfachheit halber eine komplette Kette eine 
'Stimme'. Dann hast du 6 Stück davon.
Ganz am Ende werden dann alle 6 (bzw. so viele wie benutzt werden) 
zusammengemischt und gehen auf den Verstärker.

Am anderen Ende brauchst du eine Auswahllogik, die einer neu gedrückten 
Taste eine dieser Stimmen zuweist. Im Idealfall ist das eine, die gerade 
frei ist, schlimmstenfalls musst du eine der gerade benutzten Stimmen 
abwürgen, damit die die Tonerzeugung für die neu gedrückte Taste 
übernimmt. Da kannst du deiner Kreativität freien Lauf lassen, ich würde 
zb. die Stimme nehmen, deren Signalamplitude nach der Hüllkurve am 
weitesten 'zu gemacht' hat - also die leiseste.

Ansonsten:
Das Stichwort zur Signalerzeugung in den Oszillatoren lautet DDS. Damit 
werden die aufgebaut. Filter kann man fürs erste auch weglassen (wenn 
man sowieso mit gesampelten Sounda arbeitet) und die Hüllkurve ist im 
Grunde ja nichts anderes als die Multiplikation eines zeitlich 
geeigneten Wertes mit den jweiligen Amplitudenwert aus dem Oszillator.


Erster Schritt.
Erst mal alles beiseite lassen, sich in DDS einlesen und einen 
entsprechenden Generator samt Lookup-Table für zb einen Sinus 
programmieren.

Autor: Jürgen Schuhmacher (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke, es geht um dieses Thema des Orgelbaus mit einem 
Microcontroller. Dort hatte ich gerade ein Beispiel einer Tongeneration 
gepostet. Diese ist nicht ganz so trivial, aber mit Microcontrollern 
locker zu machen. Das beantwortet auch gleich diese Frage:

Max schrieb:

> mich interessiert es auch wie digitale Synthesizer (sagen wir mal etwas
> älter... z. B. Casio VZ-1, Yamaha DX-7, Roland D-50) Mehrstimmigkeit
> erreichen. D. h. wie sehen in der Praxis die Algorithmen aus, die bei
> mehreren, zu unterschiedlichen Zeitpunkten gedrückten Tasten die
> zugehörigen Töne generieren?

Das Stichwort heisst: Notenklau! Man muss die physikalischen 
Tastenaktionen in Start-Stop- Ereignisse umwandeln und dann 
ereignisgesteuert die Noten virtuellen Klangkanälen zuordnen, welche die 
scheinbar physikalischen Stimmen realisieren. Die Zahl der Stimmen ist 
ja bei Microcontrollern und PC-Software von der Rechleistung und der 
Komplexität abhängig und in Sachen Echtzeit limitiert. Daher werden ab 
einem bestimmten Punkt Noten einfach gekillt und durch neue ersetzt. Je 
nach Typus des Synths, kann man die Notenklaustrategie auch 
beeinflussen. An der Stelle beissen sich viele Hobbysynthprojekte die 
Zähne aus und auch ich habe etwas basteln müssen, bis es in meinem 
damaligen DSP lief, ohne Aussetzer zu generieren.

Autor: Ehemaliger Waldörfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen Schuhmacher schrieb:
> kann man die Notenklaustrategie auch
> beeinflussen. An der Stelle beissen sich viele Hobbysynthprojekte die
> Zähne aus und auch ich habe etwas basteln müssen, bis es in meinem
> damaligen DSP lief, ohne Aussetzer zu generieren.

Hallo Jürgen, mit welchem DSP hast Du Dein System aufgebaut und wie hast 
Du das konkret gelöst? Das liest sich so, als hättest Du eine spezielle 
Strategie?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

falls Jürgen Dir nach einem Jahr nicht mehr antwortet, schau halt etwas 
weiter in die Vergangenheit... ;)

http://www.discretesynthesizers.com/nova/intro.htm

Gruß aus Berlin
Michael

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Konkret zu Eingangsfrage:
>Wie erzeuge ich mit einem Microcontroller am Einfachsten Polyphonie?

Du kannst sie programmieren.

Entweder so wie bei meinem SID:
http://www.roboterclub-freiburg.de/atmega_sound/at...

Oder mit einem ARM LPC1114 mit mehr Rechenpower ( mehr Stimmen ).
http://www.hobby-roboter.de/forum/viewtopic.php?f=...

Oder mit vielen Attiny13, wenn Du es einfach haben willst:
http://www.hobby-roboter.de/forum/viewtopic.php?f=5&t=73

Oder Du machst es einfacher, nimmst einen Arduino und die MOZZI LIb:
http://playground.arduino.cc/Main/ArduinoSynth

Autor: Jürgen Schuhmacher (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ehemaliger Waldörfer schrieb:
> allo Jürgen, mit welchem DSP hast Du Dein System aufgebaut und wie hast
> Du das konkret gelöst? Das liest sich so, als hättest Du eine spezielle
> Strategie?

Ursprünglich eine käufliche Audioplattform mit dem TI TMS 320 DSP, 
später auf der Basis von 56301 in einer Chameleon der ehemaligen Firma 
Soundart. Beides inzwischen tote Pferde :-)

Eine spezielle Strategie? - Weiss ich nicht, ich hatte ein message qeue 
mit virtueller Kanalzuordnung. Arg viele Optionen, wie man das lösen 
kann, sehe ich auf einer Prozessorplattform nicht. Die Herausforderung 
ist dann eher, es in Assembler zu lösen. Beim späteren FPGA-System war 
das kniffeliger.

Wie man an den links von Chris sieht, hat sich einiges getan, seit 
damals :-)

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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