Guten Tag! Ich habe eine Frage: Es gibt heutzutage IC-Serie von AD, so wie AD9833. IC kann zwar Sinus ausgeben, dafür gibt es ROM mit Sinus und DAC, in IC integriert. Leider ist Sinus in ROM fest programmiert. Gibt es etwa ähnliche IC, wo auch die Möglichkeit besteht, Inhalt von Sinus-ROM genauso zu programmieren wie Frequenz? Z.B. per SPI. Z.B. gängige LCD haben die Option, 8 Zeichen frei zu programmieren. So etwas möchte ich gerne für Signalausgang bei AD9833: statt Sinus etwas anderes, nach Eigenbedarf Danke für Antwort.
Danke. Ja, so etwas. Aber diese kann ich nicht löten. Paßt leider nicht. Alles anderes genau wie ich möchte :)
>Aber diese kann ich nicht löten. Hier gibt es ein Evalutaion-Board: http://de.farnell.com/analog-devices/ad9106-ebz/ad9106-dac-waveform-gen-eval-board/dp/2254961
499,59 € Vielen Dank! Wenn ich 6 oder 8 brauche... Für Freizeit-Hobby etwas zu teuer... Ich brauche etwas Einfacheres. Eine IC, die möglich ist, zu Hause zu löten. D.h. "e" nicht kleiner als 0,8 mm - das kann ich noch relativ problemlos löten. Notfalls 0,65 mm. Wenn DIP nicht vorhanden ist. Da ich die Ausgangsfrequenzen nicht über 20 kHz brauche, kann ich notfalls ein paar ATMega benutzen. Aber ich hoffe, es gibt eine schönere Lösung.
:
Bearbeitet durch User
In welchem Frequenzbereich suchst du denn? Bzw was kann dir der AD9833 (und Konsorten) nicht bieten, was du genau suchst? Geht es nur darum die Sinustabelle anpassbar zu machen? - das ginge ansonsten mit einem externen Speicher (z.B. Einem EEPROM und einem direkt abgekoppelten AD-Wandler, welche dann extern synchronisiert getaktet werden. So als grobe Idee. Edit: bis 20kHz?! Und welche Auflösung? Aber das können eigentlich fast alle gängigen AD-Wandler. Viele gibt es auch im grobmotorikerfreundlichen DIP Package. Und dann eben per Timer-Interrupt die gewünschte Sinus-Tabelle abarbeiten.
:
Bearbeitet durch User
AD9833 ist gut. Aber außer Sinus (und Dreieck) kommt nichts raus. Wenn ich aber etwas Musikalisches brauche, ist Sinus keine Lösung. ich brauche z.B. für Gedackt 8' so etwa wie 15% Sinus 8' + 25% Sinus 2 2/3' (d.h. dreifache Frequenz) + 15% Sinus 1 3/5' (fünffach). Das für eine grobe Annäherung. Oder für Prinzipal 8' brauche ich auch eine Mischung, mit etwas mehr Obertönen. Aber weder Sinus noch Dreieck. Falls AD9833 statt Sinus-ROM RAM hätte, könnte ich bei dem Registerwechsel einfach neu ausgerechnete Tabelle aufschreiben. Mir geht es um eine mobile Lösung für ein Orgelpositiv. Leider gibt es keine fertige Instrumenten zu haben. Viscount braucht Strom, ist auch 15 kG schwer. Ich möchte gerne so etwas wie billige Yamaha-Keyboard haben, 3,5 kG mit Batterien zusammen, aber statt Pop-Rock-Mist-Klang etwas Brauchbares schaffen. Es reicht, wenn so eine Orgel eine kleine Disposition hätte, z.B. 16', 8', 4', 2 2/3' und 1 3'5' Flöten, 4' und 2' Oktave/Prinzipal und evtl eine Mixtur (falls nicht zu aufwendig). Nur für Begleitung und kleine Vorspiele. Zwei Bedingungen, die in jedem Fall angehalten werden sollten, sind: sehr leicht und Arbeit ohne Stromnetz. Leider bringt AD9833 in diesem Fall mehr Aufwand als Hilfe. Falls nichts mit programmierbarer Wave-Tabelle zu finden ist, stelle ich einfach ein paar (z.B. 6, = max. gleichzeitig klingende Töne, 6 reicht) ATmega, mit noch einer ATmega als System per SPI oder per USART verbunden. Vor vielen Jahren habe ich schon so etwas gemacht, aber viel größer. 2 man. + Pedal. Dabei ging es mir um eine Modernisierung einer elektrischen Orgel aus 60-gen. D.h. genug Strom und viel Platz. 89C2051 bediente Tastaturen und war mit einer 89C52 per MIDI verbunden. Zweite Einheit hat als Tongeneratoren 5 St. 8253 benutzt, danach Modulator mit 4009 und weiter analog wie in Vorgänger-Orgel (Ziel der Modernisierung war: eine angemessene Intonation zu erreichen und sichere Tastenfunktion. Vorgänger-Orgel hatte 6 Kontakte pro Taste, die Schallfrequenz unmittelbar schalteten. Das arbeitete nie gleichzeitig, immer oxidierte und machte auch Nebengeräusche beim Spiel). Das alles arbeitet immer noch. Nun brauche ich aber eine mobile Lösung, auch Mikrocontroller sind heute anders. Ich möchte dabei die Teile benutzen, die ich schon kenne. Keine eingebauten großen Computer oder völlig für mich neuen Mikrocontroller.
:
Bearbeitet durch User
Ich wuerde eine App wie zB Audulus 3 empfehlen. Die kann das alles schon plus vieles mehr. fuer Android, iPad, Mac & PC https://www.youtube.com/watch?v=b_tVNZgWgDw
Bitte keine Apps, keine Smartphone! Ich möchte eine Orgel!!! Eine Orgel ist ein Musikinstrument. Man spielt zwar damit, aber Musik, keine Computerspiele. Ich möchte kein Smartphone!!! Ich möchte etwas, was mit ca. max. 100 mA leben kann (ohne Verstärker natürlich). Das muß vor allem gut spielbar sein. Keine Menu (sehr wichtig!). Eingeschaltet - und gespielt. Keine Startzeiten über eine Sekunde! Tasten, Registerwippen - wie bei einer Orgel. Ich habe schon eine Yamaha ausprobiert: die Tasten sind besser, als ich dachte. Für so eine Lösung muß man sowieso mit Einbüßen rechnen. Ich möchte Gehäuse, Tasten, Batteriefach von dieser Yamaha benutzen, nur Elektronik (außer Verstärker) rausschmeißen (dort unter hundert Klängen gibt es nur 2 oder 3 ungefähr etwas brauchbaren). "Mehr" brauche ich auch nicht. Instrument soll exakt das machen, was ich von ihm möchte. Nicht etwa wie bei Microsoft-Programm. Na ja, drei MIDI-Buchsen müssen auch sein (IN, OUT und THRU). Aber kein Smartphone, soweit ich weiß, hat noch MIDI-Eingänge in normaler Größe eingebaut.
:
Bearbeitet durch User
Ein EPROM, ein CMOS-Counter, der auf die Adessleitungen geschaltet ist, und ein DA-wandler, der das in analoge Signale umsetzt. Das Eprom wird mit deiner Waveform programmiert und wenn der Zähler gestartet wird, spielt die ab. Am Ausgang des Wandlers erhält man die gewünschte Analogspannung. Fertich. Aufwand: einige Euro. Gruss Robert
Ja, das wäre eine Lösung. Aber das Gleiche kann ich mit nur einem Mikrocontroller machen. So keine Notwendigkeit, komplizierte PCB zu ätzen. Und viel kleiner alles. Ich brauche das ja mindestens sechsmal! Ich habe einfach gedacht: so etwas in PDIP20 oder SOIC20. Und so eine Lösung mit mehreren IC braucht recht viel Platz und Aufwand. Zwischen SRAM (nicht EPROM natürlich!) und Summator mit Register (nicht CMOS-Counter natürlich: sonst muß man noch irgendwo genaue Schallfrequenz bekommen!), aus 4-bit-Summator-IC zusammengesetzt, muß noch ein Multiplexer stehen (sonst wie kann ein Controller SRAM bei Datentausch adressieren?). Das alles resultiert sich (bei 20 bit Counter, das ist min. notwendig für genaue Stimmung) in mindestens 20 IC pro Kanal. Kaum noch tragbar. In einem Musikinstrument hat Elektronik praktisch nur Restplatz: Unter Tastatur, oder sonst wo noch etwas Platz bleibt... Ich habe darüber schon viel gedacht und diese Variante als nicht tauglich verworfen. Eine Zwischevariante möglich: mit AD9833 Taktsignal von Schallfrequenz x 256 gewinnen, danach 2x 4bit-Counter und SRAM... Jetzt habe ich gleich gesehen: AT 90PWM3B SOIC. Wäre das vielleicht eine Lösung? Sogar DAC 10 bit vorhanden - für AT 8 bit wohl eine Ausnahme. Es sieht zwar so aus, daß diese Mikrocontroller schon aus Programm genommen wurden und nur unlötbare Varianten bleiben - schade! 6x SOIC32 - dafür ist viel einfacher, Platz zu finden, als für 120 DIP16 oder SOIC16.
:
Bearbeitet durch User
Schön, dass wieder einmal die eigentlichen nach und nach herausgerückt werden. Aber irgendwie verstehe ich fast NICHTS von dem, was du geschrieben hast. Du willst quasi den Inhalt einer Yamaha-Orgel rauswerfen und deine eigene Orgel bauen?! Okay, kein Smartphone. Maxim B. schrieb: > Falls nichts > mit programmierbarer Wave-Tabelle zu finden ist, Doch natürlich - das habe ich doch schon geschrieben. Ein AD-Wandler, welcher aus einem Mikrocontroller Werte bekommt. Die Werte können dort nach Belieben hinterlegt werden und können Timer-gesteuert abgerufen werden. Es reicht eine Look-Up-Table mit der entsprechend gewünschten Genauigkeit und es werden dann Interrupt-gesteuert die Klänge entsprechend synthetisiert. Für einen Klang, der aus der Grundwelle, der 3ten, 5ten und 7ten Oberwelle besteht bräuchte man in diesem Falle einfach 4 Phasenakkumulatoren, welche mit den entsprechenden Faktoren multipliziert(x1, x3, x5 und x7) inkrementiert werden. Mit den Phasenakkumulatoren liest man dann die zugehörigen Werte aus der Sinus-Tabelle aus und addiert sie mit der entsprechenden Gewichtung und gibt das Ergebnis auf dem AD-Wandler (externer AD-Wandler oder per PWM, beides möglich) aus. Maxim B. schrieb: > völlig für mich neuen Mikrocontroller. Ja mit welchen uC bist du denn vertraut? - Hier wäre wohl ein DSP gar nicht mal so falsch am Werke, wenn du eine komplexe Klangsynthese betreiben willt.
:
Bearbeitet durch User
Stefan S. schrieb: > Ja mit welchen uC bist du denn vertraut? - Hier wäre wohl ein DSP gar > nicht mal so falsch am Werke, wenn du eine komplexe Klangsynthese > betreiben willt. Vielleicht einen dsPIC - AFAIK gibt es die auch gleich mit Audio-tauglichem 16-Bit DAC on Board und in Grobmotoriker-lötfreundlichen Gehäuseformen...
Ich habe letzte Zeit ATmega programmiert. Und zuerst möchte ich dabei bleiben: statt neue Familie zu erlernen, möchte ich zuerst ATmega wirklich kennen. Stefan S. schrieb: > Du willst quasi den Inhalt einer Yamaha-Orgel rauswerfen und deine > eigene Orgel bauen?! Ja, das scheint mir am vernünftigsten. Ich bekomme eine gar nicht so schlechte (wenn auch ohne Druckpunkt) Tastatur, Gehäuse mit Batterienfach, eingebaute Lautsprecher. Und das alles für nur 100 €! Und was für Musik nicht taugt - das muß natürlich weg. Meine Vorstellungen über Orgelklang sind anders, als die von Japanern. > Doch natürlich - das habe ich doch schon geschrieben. Ein AD-Wandler, > welcher aus einem Mikrocontroller Werte bekommt. Die Werte können dort > nach Belieben hinterlegt werden und können Timer-gesteuert abgerufen > werden. Ich habe gedacht, es reicht Abtasten so etwa 40 kHz. In dieser Zeit kann ich möglicherweise sogar 2 oder 3 Stimmen bearbeiten. Ich muß zuerst üben. Programmieren zur Probe und hören, ob Ergebnis noch in brauchbaren für mich Grenzen bleibt. > Es reicht eine Look-Up-Table mit der entsprechend gewünschten > Genauigkeit und es werden dann Interrupt-gesteuert die Klänge > entsprechend synthetisiert. Für einen Klang, der aus der Grundwelle, der > 3ten, 5ten und 7ten Oberwelle besteht bräuchte man in diesem Falle > einfach 4 Phasenakkumulatoren, welche mit den entsprechenden Faktoren > multipliziert(x1, x3, x5 und x7) inkrementiert werden. Ja, so etwa denke ich auch. Nur daß ich für eine Stimme nur einmal Phasenakkumulator verwenden möchte, und volle Klangspektrum durch Veränderungen in der Look-Up-Table machen. Das kann in Hauptprogramm in Hintergrung laufen. So etwa: SPI bekommt etwas von Steuereinheit, in Hauptprogramm wird gelesen, analysiert und entsprechend die Toneinstellungen geändert. Das alles in PWM-Ausgang. Dafür brauche ich AVRs, wo 64 MHz-PLL für PWM zu haben ist. Mit Interrupts von einem anderen Timer, der von externen Frequenz gesteuert wird (um die Tonhöhe homogen zu haben, da bei fast allen AVR PLL nur von RC-Oszillator arbeiten kann), wird Phasenakku betrieben. Addieren, aus der Tabelle lesen, auf Amplitudenwert multiplizieren, genauso Attack - Release machen, und zu PWM-Ausgang. Wenn 10 bit PWM mit 64 MHz Takt, das muß reichen. Es scheint übrigens sinnvoll, nicht die volle n * 8bit-Breite zu nutzen, sondern die Tabelle auf 240 statt 256 zu beschränken: so lassen sich natürliche Quinten und Terzen leichter realisieren. Die Synthesizer bekommen von Steuereinheit nur endgültige Frequenzwort, Tabellen für Schallwellen und Hüllkurveninfo. Das alles wird in Steuereinheit errechnet. So kann ich alles mögliche machen: verschiedene Stimmungen, Tonhöne abstimmen usw. Möglicherweise lohnt es sich, die Synthes-Kontroller mit Assembler zu programmieren: in C gibt es leider kein Datentyp für 24 bit, so wird zu viel Rechenleistung verschwendet.
:
Bearbeitet durch User
1N 4. schrieb: > Billiges FPGA-Board, DAC dran, Tasten dran, orgeln... Das ist Zukunftsmusik. Board selbst, Werkzeuge für Programmieren kaufen, neue IDE erlernen... Zu viel Aufwand. Irgendwann später. Das ist ja nur Hobby. Ich kann dafür nur meine Restzeit investieren. Ich möchte mindestens eine Microkontrollerfamilie gut kennen. Besser als mehrere ein bißchen kennen.
:
Bearbeitet durch User
Warum fragst du nicht die Taster einzeln ab, welcher gedrückt wurde und synthetisierst dann den Ton? Und warum willst du unbedingt nur einen Phasen-Akku? Dein Konzept habe ich noch irgendwie nicht so ganz verstanden... auch wozu du unbedingt eine 64MHz-PLL brauchst erschließt sich mir noch nicht vollends...
Maxim B. schrieb: > Da ich die Ausgangsfrequenzen nicht über 20 kHz brauche, kann ich > notfalls ein paar ATMega benutzen. Wieso nur notfalls? Bei 20kHz langweilt sich ein ATMega ja schon ziemlich. Das ist also definitiv eine Anwendung, für die ein ATMega als Zielsystem völlig OK wäre.
Stefan S. schrieb: > Und warum willst du unbedingt nur einen Phasen-Akku? Dein Konzept habe > ich noch irgendwie nicht so ganz verstanden... Weil ich die Genauigkeit der Stimmung nicht schlechter als 0,1 cent brauche. > auch wozu du unbedingt > eine 64MHz-PLL brauchst erschließt sich mir noch nicht vollends... Wenn Abtastfrequenz so um 40 kHz liegt, dann muß PWM-Frequenz deutlich darüber sein, im Verzerrungen zu minimieren. bei 64 MHz-PLL und 8 bit PWM wird PWM-Frequenz um 125 kHz sein (Phase Correct PWM Mode), Dreifaches von Abtastfrequenz. Das muß in Toleranzgrenzen bleiben (unter Berücksichtigung, daß die hochfrequente Obertöne nicht so hohe Amplitude haben).
c-hater schrieb: > Wieso nur notfalls? Bei 20kHz langweilt sich ein ATMega ja schon > ziemlich. Das ist also definitiv eine Anwendung, für die ein ATMega als > Zielsystem völlig OK wäre. Danke für Unterstützung! Ich versuche's. Das braucht aber Zeit. Mein Problem: ich habe ganz bestimmte Vorstellung über Klang einer Orgel. Vieles, was für anderen nicht zu Disposition steht, ist für mich zweitrangig (z.B. ich brauche keine 100% Imitation einer Orgel). Anderes ist für mich aber wichtig, worüber man oft gar nicht denkt (z.B. Orgelintonation. Das bestimmt die Fähigkeit einer Orgel, Gemeindegesang zu stützen. Das ist entscheidend für Qualität eines Orgelpositives). D.h. ich kann keine Muster finden, die ich nachahmen könnte. Nur einzelne Elemente, so wie Tastaturabfrage, MIDI-Implementierung u.Ä. Als Muster könnte ich Cantorum VI von Viscount nennen, aber das ist eine andere Klasse. Relativ gute Klangimitation, gute Tastatur mit Druckpunkt, aber leider 15 kG und Strom nur aus einer Steckdose. Das Instrument habe ich übrigens. Ich brauche aber eine leichte und mobile Alternative, und sehe nichts fertiges, leider...
:
Bearbeitet durch User
Warum nicht sowas: http://www.samplerbox.org/ (Raspi-Sampler) + MIDI-Keyboard (oder Doepfer CTM64) Die Samples nimmst Du direkt von einer Orgel, oder, wenn es schön "cheesy" sein voll, berechnest Du Dir in Audacity!?
... und warum geht nicht https://www.hauptwerk.com/ mit einem MiniITX Mainboard oder (leistungsfähigem) Intel NUC? Ganz bestimmt unter 15kg ;-)
Warum reitest du so auf der PWM herum? Nimm doch einfach einen externen AD-Wandler, die meisten lassen sich auch mit >1MHz SPI ansteuern und haben mehr als 8 Bit Auflösung. Dann reichen nämlich wirklich 40kHz als Abtastfrequenz und dein ATMEGA langweilig sich zu Tode. Und die Filterung wird auch deutlich einfacher bis obsolet, je nach gewünschter Reinheit des Signals.
:
Bearbeitet durch User
Und sonst nimmt man eben einen parallelansteuerbaren DAC, und klemmt ihn an ein externes Memory Interface. Das laesst sich dann als 16 bit ansprechen und laesst keine Wuensche mehr offen. Allerdings denke ich ein ATMega ist etwas auf der mageren Seite. Ein DSP haemmert die Samples per DMA raus, ohne zusaetzliche Rechenleistung zu beanspruchen.
:
Bearbeitet durch User
Sapperlot W. schrieb: > Und sonst nimmt man eben einen parallelansteuerbaren DAC, und klemmt ihn > an ein externes Memory Interface. Das laesst sich dann als 16 bit > ansprechen und laesst keine Wuensche mehr offen. Genau das habe ich weiter oben auch schon angesprochen. Aber er will ja - so mein Eindruck - die Klänge einzeln synthetisieren. Aber warum kein DA-Wandler ran darf, verstehe ich nicht. Das vorgestellte Konzept mit EEPROM und DA-Wandler ist eigentlich genau das, was der TO ursprünglich wollte. Ein IC, welches eine vorgegebene Sequenz aus einem ROM abspielt. Aber vielleicht gibt es ja neuerliche Aspekte, die doch dagegen sprechen. Sapperlot W. schrieb: > Ein DSP haemmert die Samples per DMA raus, ohne zusaetzliche > Rechenleistung zu beanspruchen. Er will nur Controller, die er schon kennt. Nichts neues.
Maxim B. schrieb: > in C gibt es leider > kein Datentyp für 24 bit Wenn man tatsächlich Assembler kann, kann man auch so einen Datentyp für geistig minderbemittelte C-Compiler auch recht leicht selber bereitstellen. Aber ich gebe zu: Ich wäre auch zu faul dazu und würde statt dessen C in den Wind schiessen und alles in Assembler machen. Hat nämlich noch viele andere Vorteile bezüglich der Performance. Insbesondere sobald Interrupts wirklich genutzt werden sollen/müssen ist man mit Asm immer weit im Vorteil. Hier rächt sich die Minimalintelligenz eines C-Compilers. Und ihm von Hand auf die Sprünge zu helfen, ist sehr viel aufwendiger als den Kram gleich selber in Asm zu programmieren. Zumal die Asm-Variante auch noch bei der nächsten Version des Assemblers mit hoher Wahrscheinlichkeit funktionieren wird, wovon man bei einem C-Compiler nicht wirklich ausgehen kann...
Maxim B. schrieb: > Wenn Abtastfrequenz so um 40 kHz liegt, dann muß PWM-Frequenz deutlich > darüber sein, im Verzerrungen zu minimieren. Das ist ein klassischer Denkfehler. Nö: man muß einfach nur dafür sorgen, dass PWM-Frequenz==Abtastfrequenz ist und das Problem löst sich in ein mathematisches Nichts auf. Bzw.: reduziert sich auf das übliche Abtasttheorem. In einer Instanz. Und ja: lustigerweise funktioniert das praktisch genauso gut, wenn die PWM-Frequenz von der Abtastfrequenz abweicht, zumindest so lange sie höher ist als diese... OMG, gibt es hier überhaupt keine mathematische Kompetenz mehr? Übrigens: ein Umsetzung eines PWM-DDS-Out mit kleinem Performance-Footprint habe ich hier selber schonmal gepostet. Sozusagen ein Abfallprodukt der Spielerei mit WS28xx-LEDs...
Danke an Alle für Ideen! Ja, es gibt noch etwas zu überlegen... Viele Varianten, wirklich... Ich lerne erst Inline-Assembler. ich kapiere noch nicht alles, braucht Zeit... c-hater schrieb: > Maxim B. schrieb: > >> Wenn Abtastfrequenz so um 40 kHz liegt, dann muß PWM-Frequenz deutlich >> darüber sein, im Verzerrungen zu minimieren. > > Das ist ein klassischer Denkfehler. Nö: man muß einfach nur dafür > sorgen, dass PWM-Frequenz==Abtastfrequenz ist Und hier liegt leider das Problem: fast alle AVRs, die PLL haben, benutzen als Referenz für PLL RC-Generator und können PLL nicht von Quarz stützen. Eine Ausnahme soll AT90PWM3B sein, aber solange ich mit allem fertig bin, wird es sicher nicht mehr zu finden (das bringt unwohles Gefühl, auf Details zu setzen, deren Produktion ausläuft)... Und Stimmgenauigkeit kann nur Quarz geben. Deshalb sehe ich mit PWM nur die Lösung: CPU und PWM von PLL getaktet, Abtastfrequenz von einem externen Referenzgenerator (für alle CPU) mit Timer0 bestimmt. Aber dann sind natürlich PWM und Abtastfrequenz asynchron. Was externe DAC betrifft: das wäre auch eine Lösung. Noch mehr: um Bit-Auflösung nicht zu verschlechtern, könnte ich Hüllkurve (und auch Intonieren) analog schaffen, mit Vref. Dafür brauche ich aber mehr AVRs, aber das ist wohl auch aus anderen Gründen besser, für jede klingende Stimme separate Mikrocontroller zu benutzen: die können langsamer getaktet werden, dadurch einige Probleme könnten vermieden werden... Nun ist das so zu überlegen, daß auch die Platte machbar bleibt (ich mache die selber). Als Beispiel: AD7524 an PORTD einer ATmega88PA, für Hüllkurve 6 bit-DAC mit Widerstandarray R-2R an PORTC (oder auch PWM, dafür reicht auch "normale" Fast-PWM ohne PLL). Kommunikation mit Steuereinheit per SPI (PORTB).
:
Bearbeitet durch User
NB. ein RC-Oszillator mit PLL kann auch auf einen Quarz gelockt werden.
Leider nicht immer. Z.B. ATtiny261A - ich habe nicht gefunden, wie CKSEL eingestellt sein muß, um PLL und Quarz zu ermöglichen. Auf der S. 25 vom Datenblatt, Tabelle 6-1 - so etwas nicht vorgesehen, auch Figure 6-3 zeigt eine solche Möglichkeit nicht.
:
Bearbeitet durch User
Jetzt hoert doch mal mit diesen Tinys auf. Durch ein paar Cents sparen gewinnt man gar nichts. Die Synchronisation eines RC zu einem Quarz geschieht zB mittels Timer2, an dem ein Uhrenquarz haengt ... dieser Timer2 mit low power clock ist glaub nur bei den Mega vorhanden. Naja. Also man laesst von diesem Clock N Zyklen vergehen, und vergleicht mit einem Timer vom RC gespiesen. zB Timer0, oder Timer1. Und regelt so den RC Oszillator nach.
:
Bearbeitet durch User
Maxim B. schrieb: > um > Bit-Auflösung nicht zu verschlechtern, könnte ich Hüllkurve (und auch > Intonieren) analog schaffen, mit Vref. Dafür brauche ich aber mehr AVRs, Was? Warum das? - Wenn du schon unbedingt die Auflösung beibehalten willst bzw. die Hüllkurve nicht in Software machen willst, so kannst du mit einem DAC die Referenzspannung des anderen DAC modulieren.
Sapperlot W. schrieb: > Jetzt hoert doch mal mit diesen Tinys auf. Welche Mega mit PLL könntest du mir empfehlen?
Maxim B. schrieb: > Weil ich die Genauigkeit der Stimmung nicht schlechter als 0,1 cent > brauche. Dann nimm einen 'Orgelratenquarz' und bleibe bei reiner Stimmung ;-) Ohne Alles genau gelesen zu haben, wie wäre es, einen schnellen µC zu nehmen, der diverse Klangfarben als Tabellen im ROM gespeichert hat. Per DMA ausgegeben stimmt das Timing auch während der µC andere Aufgaben (Tastatur einlesen) erledigt. Zur Hardware: Nucleo-Boards mit STM32F4xx.
Stefan S. schrieb: > Maxim B. schrieb: >> um >> Bit-Auflösung nicht zu verschlechtern, könnte ich Hüllkurve (und auch >> Intonieren) analog schaffen, mit Vref. Dafür brauche ich aber mehr AVRs, > > Was? Warum das? - Wenn du schon unbedingt die Auflösung beibehalten > willst bzw. die Hüllkurve nicht in Software machen willst, so kannst du > mit einem DAC die Referenzspannung des anderen DAC modulieren. Ja, so denke ich auch. Und wie wird Hüllkurven-DAC realisiert, als IC-DAC oder als PWM, ist nicht so prinzipiell. Dort geht es um Millisekunden und nicht um Mikrosekunden wie bei Schall-DAC. Ich gehe davon aus, daß einerseits die Verbindungen möglichst seriell sein müssen, um die Platte einfacher zu machen. Andererseits hat eine Mega auch mit einer Stimme genug zu tun, und das Wichtigste ist ja, immer und wieder rechtzeitig neue Byte auszugeben. AVR in DIP28 kostet so wenig, daß es sich lohnt, eher mehr AVR zu benutzen, als komplizierte 8-bit-Bus auf einer Platte auf mehreren Verbraucher zu führen. D.h. einfach AVR-Port als Register für parallele DAC, statt mehrere DAC mit eingebauten Register mit einem AVR. Wenn DAC seriell ist, dann noch einfacher mit Platte. Dann aber wohl von USART in SPI-Mode, weil echte SPI für den Austausch zwuschen AVRs notwendig ist. Das ist übrigens ein Problem bei billigen Synthesizer: je mehr Polyphonie, um so schlechter ist jede Stimme. Ich nehme an, das ist deshalb, weil alles mit einem CPU erzeugt wird. Mit mehreren Stimmen ist CPU gezwungen, jede Stimme weniger sauber zu behandeln. Für mich ist aber extrem wichtig, daß Polyphonie glasklar bleibt. Die Abhängigkeit zwischen Stimmen muß minimal sein. Ich denke, lieber AVR pro Stimme, als versuchen, alles mit einem Chip zu machen und am Ende nur Klangbrei statt Musik...
:
Bearbeitet durch User
m.n. schrieb: > Ohne Alles genau gelesen zu haben, wie wäre es, einen schnellen µC zu > nehmen, der diverse Klangfarben als Tabellen im ROM gespeichert hat. Per > DMA ausgegeben stimmt das Timing auch während der µC andere Aufgaben > (Tastatur einlesen) erledigt. > Zur Hardware: Nucleo-Boards mit STM32F4xx. Und wie wäre es, einfach einem Orgelbauer die Aufträge zu geben, in jedem Raum, wo ich spiele, eine 3-man. Orgel für nur 1,5 Mio pro Stück € zu bauen? das wäre ja noch einfacher? :) Also, ich bleibe zuerst bei AVR. Wenn ich vor 17 Jahren eine brauchbare und spielbare elektrische Orgel mit nur zwei 89C... gemacht habe, umso leichter muß das mit AVR gehen. Damals habe ich übrigens die Hüllkurven nur mit einem AD7533 und analogen Multiplexer für 15 Stimmen erzeugt. Für Hüllkurve braucht man keine besondere Geschwindigkeit. Ein Ton-Ereignis per MIDI zu schicken kostet sowieso etwa 1 ms. Dagegen kostet Hüllkurve per Software je eine (mindestens) zusätzliche mul für jede Ausgabe d.h. 40000 mal pro Stimme und Sekunde. Mit Tastatur ist gar kein Problem. Da ich sowieso offene System machen möchte, mit MIDI-Eingang, so liegt es auf der Hand, diese Einheit unabhängig von anderem zu machen. Natürlich separate AVR, und seriell (wie MIDI, nur vielleicht hier ohne galvanische Trennung, da alles in einem Gehäuse und mit gemeinsamer Stromversorgung). Algorithmus ist elementar, lohnt sich gar nicht, darüber zu reden. Die Steuerung, die den freien Stimmen die Tasten zuweist - dort etwas komplizierter, aber auch sehr einfach. Unbedingt ein FIFO für MIDI-Eingang (damals mußte ich das nachbessern, sonst kam gelegentlich beim Spielen, daß die einige Tasten stumm blieben). Na, eigentlich meine Frage am Anfang war: ich wollte so etwas wie AD9833, aber mit Möglichkeit, WAVE-Tabelle zu verändern (und auch lötbare IC!!!)...
:
Bearbeitet durch User
Maxim B. schrieb: > Und wie wäre es, einfach einem Orgelbauer die Aufträge zu geben, in > jedem Raum, wo ich spiele, eine 3-man. Orgel für nur 1,5 Mio pro Stück € > zu bauen? das wäre ja noch einfacher? :) Du, mit Deinen 0,1 cent? Wohl kaum. Maxim B. schrieb: > Na, eigentlich meine Frage am Anfang war: ich wollte so etwas wie > AD9833, aber mit Möglichkeit, WAVE-Tabelle zu verändern (und auch > lötbare IC!!!)... Was soll man denn sagen, wenn Du die Antwort nicht begreifst?
m.n. schrieb: > Was soll man denn sagen, wenn Du die Antwort nicht begreifst? Ich habe keine Antwort von dir gesehen. Du hast nur geschrieben, daß dir andere Mikrocontroller gefällt und daß du Schwebung 0,1 cent nicht hören kannst.
:
Bearbeitet durch User
m.n. schrieb: > Maxim B. schrieb: >> Und wie wäre es, einfach einem Orgelbauer die Aufträge zu geben, in >> jedem Raum, wo ich spiele, eine 3-man. Orgel für nur 1,5 Mio pro Stück € >> zu bauen? das wäre ja noch einfacher? :) > > Du, mit Deinen 0,1 cent? Wohl kaum. Was soll denn bitte dieser Vergleich? Er hat dir - wie wir alle - eine äußert probate Lösung geliefert. Auf so einem Board werkelt auch nur ein kleiner Cortex und die meisten kriegt man für weniger als als 1€. Die bieten nicht nur mehr Rechenleistung, sie haben auch eine potentere Peripherie. Und sind nicht schwerer zu beschalten als ein ATMEGA. Und lötbar sind die auch in SMD. Maxim B. schrieb: > Na, eigentlich meine Frage am Anfang war: ich wollte so etwas wie > AD9833, aber mit Möglichkeit, WAVE-Tabelle zu verändern (und auch > lötbare IC!!!)... Meine Güte. Ich gebe es bald auf. Mehrere Leute haben dir schon die Lösung genannt, wie du sie haben willst, aber die scheinst du geflissentlich zu ignorieren. Ein AD9833 ohne ROM ist einfach ein DAC. Fertig.
Maxim B. schrieb: > Also, ich bleibe zuerst bei AVR. Wenn ich vor 17 Jahren eine brauchbare > und spielbare elektrische Orgel mit nur zwei 89C... gemacht habe, umso > leichter muß das mit AVR gehen. Ja ja früher war alles besser. Die wird aber garantiert nicht deine 100ppm Genauigkeit gehabt haben und wird deine heutigen Anforderungen garantiert nicht erfüllen.
Natürlich ging damals nicht auf die heutige Genauigkeit. Aber ich habe mit der Zeit mehr Lust bekommen, die Werke aus 17. und 18. Jh. mit historischen Temperaturen zu spielen. Dann klingen sie anders, viel frischer. Ich habe auch mein Orgelpositiv in der Taufkapelle in "Neuhardt kleine Stadt" gestimmt: das bringt etwas! Mit Orgeln ist aber ein bißchen leichter: die Pfeifen ziehen sich zueinander, wegen akustischer Kupplung. Deshalb auch wenn sie alleine etwas verstimmt sind, klingen sie zusammen doch sauber. Mit Elektronik ist das leider anders, hier muß man viel sauberere Stimmung machen, als mit Akustik, um etwas überhaupt klingt. Eigentlich reicht mir, wenn mein Lieblingstest bestanden wird: Parallelen (in gleichschwebender Stimmung) spielen, z.B. Terzen und Sexten. Die Schwebungen müssen gleichmäßig nach oben wachsen, ohne hörbare Sprünge zu machen. 0,1 cent hin und her - und dann besteht das Instrument den Test schon nicht mehr. Mit 40 kHz Abtasten reicht 24 bit - Phasenakku für 0,01 cent.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.