Hallo. Das Thema gabs hier glaub ich schon öfter, ich kam aber nicht weiter. also mein Gedanke ist folgender: Ich hab nen Atmega ( meinetwegen den Mega16 ). Der soll midifiles abspielen können, die er Beispielsweise über den Uart reinbekommt. Wie kann ich einen avr sounds generieren lassen? Es müssen nicht dringend midi files sein. Und wie komm ich dann vom avr zum Lautsprecher? Es gibt ja auch den alten C64 SID ( 6581 ist das glaub ich ) Chip. Habt ihr Ahnung mit den Umgang von den Chip? Gruß Willi
Was heist DSP? Kennst du dich mit dem Thema besser aus? Kennst du den SID 6581 Chip? Leider sind mir über seine Funktionsweise noch keine DAten bekannt. Willi
Ich hab mir mal sowas mit einem 8051 gebaut: Von einer Soundkarte hatte ich den OPL Synthesizer abgelötet. Zum Glück ist im PC Bereich alles abwärtskompatibel, also das nächstbeste Datenblatt gesucht und ein paar Beispielprogramme für den PC. Da die ganzen direkten Hardwarezugriffe über den COM Port auf den uC weitergeleitet, also im Prinzip die Soundkarte nach außen verlagert. Und es geht. Einen kompletten Midi Dekoder habe ich leider noch nicht auf einem uC hinbekommen, da es alleine 3 verschiedene Midi Standarts gibt.
DSP = digital signal processing, also irgendwelche analogen Signale digitalisieren, verrechnen und wieder ausgeben. Die einfachste Anwendung ist, den AVR irgendwelche Töne generieren zu lassen, je nach dem, was für Daten reinkommen. das wäre monophonie. Polyphonie erfordert mehrere Tongeneratoren.
Das mit dem OPL Chip und der Polyphonie hört sich schon recht gut an. Mich interessieren beide. ( BTW: Meine Mikrocontrolle programmiere ich unter C ) @Benedikt: Hast du noch einen Schaltplan oder Die Software dafür? @Rahul: Wie lässt du dem die Töne generieren Angenommen ich empfange die Daten mit dem Uart (als interrupt oder Signal), nimm dann ein unsigned char in und mach dann in=UDR; Was stell ich jetzt mit dem "in" an? Das Signal direkt an irgendeinen Port schmeisen und von nem anderen chip zu einem Audiosignal umwandeln lassen? Willi
Einen Schaltplan habe ich nicht, aber da ist nicht kompliziertes dran: 8bit digitale Daten rein, Audio raus. http://www.fee.vutbr.cz/~arnost/opl/opl3.html.iso-8859-1 Ein Problem ist allerdings, wie man aus den einzelnen Noten die entsprechenden Register einstellt. Dazu findet man im Netz einige Beschreibungen, ist aber alles ziemlich kompliziert.
Was meinst Du denn mit Abspielen? - Möchtest Du direkt einen Klangerzeuger bauen oder willst Du einfach nur die MIDI-Befehler zur richtigen Zeit senden? - Letzteres dürfte mit einem AVR möglich sein...
@Michael: Ich habe schon vor, nen Klangerzeuger zu bauen, hab aber im mom aber eben keine Ahnung, wie man sowas realiesieren kann. Mir würde wiegesagt Midi files vorschweben. Am liebsten wär mir es eben, wenn ich die midi dateien entweder über 8bit oder dem uart rausschicke und dann ein anderer chip waveforms drauf macht. Mit ner alten Soundkarte denk ich schon, das die helfen kann, hab aber leider keine Ahnung, wie man mit sowas umgeht. Danke für die Antworten, btw. Gruß Willie
Hallo Willie, da habe ich mal was von Atmel gesehen: Low-power Single-chip Synthesizer with Effects The ATSAM2193 provides a single-chip, low-cost MIDI sound system. Equipped with a serial and a parallel MIDI input, it provides state-of-the-art sound synthesis using a full GM sound set together with a range of compatible effects. Its low power consumption makes it ideal for all battery-powered applications such as portable Karaoke or any other device using MIDI synthesis. (Es gibt auch einen anderen Chip mit MIDI und MP3 Player.) Du kannst ja mal rauskriegen was der ATSAM2193 so kostet, würde mich auch interessieren. Gruß Michael P.S: Siehe auch http://www.atmel.com/dyn/resources/prod_documents/doc2699.pdf
Mal so btw: Könnt für simple sounds nicht den pwm verwenden, also sinus funktionen erzeugen?
"Der soll midifiles abspielen können, die er Beispielsweise über den Uart reinbekommt. Wie kann ich einen avr sounds generieren lassen? Es müssen nicht dringend midi files sein." Es können gar keine MIDI-Files sein, denn MIDI-files sind kein Sound sondern nur Steuerungs-Daten. Zum SID kann ich http://www.ucapps.de empfehlen...
Ein sehr guter Ansatz für einen MIDI-Klangerzeuger ist ein MIDI-Klangerzeuger... Das soll jetzt kein Joke sein. Ganz alte ISA-Soundkarten für den PC hatten so kleine shuttle-Boards mit WaveTable-sounds. Da ist die ganze Geschichte schon komplett. Sogar GM-128 also 128 Instrumente. Da geht MIDI rein und sound kommt raus. Braucht nur Stromversorgung. Damit kann dann ein AVR richtig Musik machen. In einer alten Elektor gabs mal ne Bauanleitung dazu. In Netz sollte aber auch die Anschlussbelegung zu finden sein. Richtige Sounds nur mit dem AVR gehen zwar auch, aber das ist schwerer und klingt meist nicht so gut. z.B. Wavetable im exteren Speicher, PWM-Sound, Rechteck+Filter
Wie wärs wenn man nen DAC nimmt um damit die Töne zu erzeugen ? Ich denk mal 16 Bit müssten dicke reichen um ne Sinus zu erzeugen. Man muss halt nur ne Sinuswelle erzeugen mit unterschiedlichen Periodenzeiten. Braucht natürlich ne entsprechend Hohe Frequenz um die Abtastrate zu erreichen.
Nujaa, es gibt da ja noch so lustige Funktionsgeneratoren Marke MAX xyz, die man digital ansteuern kann und die dann Waves in der entsprechenden Form und Frequenz erzeugen (monofon, iss klar, müssen halt mehrere ´ran) und es gab da mal vor einiger Zeit YAMAHA Soundchips in ATARI-Computern?! Vielleicht ein Ansatz. Die Digitalrechnerei und die Portgeschichten kann der AVR ja dann managen.
Oder von einer alten Soundblaster 16 den Yamaha OPL-3 Chip (YMF262) recyceln , und den passenden D/A-Wandler (YAC512) nicht vergessen :-). Aber Achtung, nicht jede SB16 hatte auch den OPL-3 drauf. Auf dem Modell CT1740 ist er vorhanden, falls jemand bei eBay auf die suche geht... Gruß Ingo
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.