Forum: Mikrocontroller und Digitale Elektronik Midi Files am AVR abspielen


von Willi (Gast)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

wenn du midi abspielen willst brauchst du einen DSP. Ein AVR kann das
bei weitem nicht
Thomas

von Willi (Gast)


Lesenswert?

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

von Benedikt (Gast)


Lesenswert?

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.

von Rahul (Gast)


Lesenswert?

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.

von Willi (Gast)


Lesenswert?

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

von Benedikt (Gast)


Lesenswert?

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.

von Michael (Gast)


Lesenswert?

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...

von Willie (Gast)


Lesenswert?

@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

von Michael (Gast)


Lesenswert?

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

von Willie (Gast)


Lesenswert?

Mal so btw: Könnt für simple sounds nicht den pwm verwenden, also sinus
funktionen erzeugen?

von Alisa 1387 (Gast)


Lesenswert?

"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...

von anonym (Gast)


Lesenswert?

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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nennt sich WaveBlaster. Die Module gibt es ab und zu bei Ebay.

von Simon Küppers (Gast)


Lesenswert?

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.

von TravelRec. (Gast)


Lesenswert?

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.

von Ingo Henze (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.