www.mikrocontroller.net

Forum: Projekte & Code PlayMe! (Atmel Tiny85 - 1bit D/A Musikgenerator)


Autor: Alex S. (byteman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
High

weil ich gerne Musik selber mache und mit Microcontrollern bastele habe 
ich mir mit einem Atmel Tiny85 (8KB Flash) einen kleinen Musikgenerator 
zusammengebastelt den ich 'PlayMe!' genannt habe. Es spielt 1 bit 
codierte Musiksamples ab.

Das Ding funktioniert so:
- erstmal komponiere ich einen 1,445 Sekunden langen Loop (1 Takt bei 
166 BPM)
- dieses kurze Musikstück wandele ich dann mit dem BTc Sound Encoder in 
eine 1 bit codierte Datei um. Leider macht das BTc Programm nur PIC 
assembler code deshalb habe ich mir mit Blitzbasic 1.91 einen kleinen 
umwandler Programmiert der aus dem PIC code dann Atmel code macht.
- diesen Atmel code füge ich dann hinten an mein PlayMe! Musikgenerator 
Programm an.
- als hex Datei kann es nun mit einem high voltage Programmiergerät auf 
den Tiny85 geschoben werden.

So, nun kann man mit dem gerät spielen. Es gibt fünf Taster. Einer für 
die veränderung der Abspielgeschwindigkeit und mit den restlichen vier 
Tastern können je nach Tastenkombination verschiedene Punkte und Längen 
innerhalb des komponierten Musikloops angesprungen werden.
Je nach Übung, Tastenkombination und schnelligkeit der Tastenwechsel 
entsteht  dadurch ein neues Lied. Natürlich erfolgen alle Tastenwechsel 
automatisch im Takt der Musik.

Bilder, Schaltplan, alle meine Programme mit Sourcecode, Test wav 
Dateien, eine MP3 Demo, eine ausführliche Beschreibung und das BTc 
Programm sind im Anhang. Weil die Datei zu gross ist (3MB) konnte ich 
sie nicht direkt hier im Forum anhängen deshalb habe ich sie hier 
hingepackt:

http://www.file-upload.net/download-1473092/PlayMe...

Na dann viel spass
Audiooxyd

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das MP3 ist cool! Selbst komponiert? :-)

Autor: Alex S. (byteman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^_^ danke.
Ja, hab ich selber gemacht.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit was macht man das?

Versuch schon ewig einen Einstieg zu finden ...

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr nettes Teil, überlege mir das auch zu bauen, vorallem wegen dem 
geringen Hardwareaufwand.

Zur Funktion: Sehe ich das richtig, dass man am PC ein kleines Lied 
macht, das anschliessend in PIC- Code wandelt, und daraufhin in 
AVR-Code. Nun hängt man diesen Code an dein Programm an und flasht alles 
auf den µC. Mit den Tasten kann man nun das Lied langsamer oder 
schneller laufen lassen und Vorwärts oder Rückwärts im Lied springen.
Passt das so?

Gruß, Steffen

Autor: Alex S. (byteman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Gast
was meinst du?
meinst du den kurzen loop? das hab ich mit "propellerhead reason" 
gemacht.
oder meinst du das fertige mp3? das hab ich mit meinem "PlayMe!" gemacht
"computerartigestimme an" >>> "keine effektive antwort möglich... 
zuwenig input" "computerartigestimme aus" ^_^


@ Steffen
Dankeschön ^_^
Ja, alles richtig erkannt!
solange man den einen taster drückt (portb5 am pin eins) dann wird das 
abspielen langsamer in 16 abstufungen und springt dann wieder auf 
schnelles abspielen. den taster kann man auch drücken während man 
gleichzeitig andere tasten drückt.
die anderen tasten verändern die aktuelle abspielposition und 
abspiellänge zum beispiel:
- nur taste 1 gedrückt (portb1) >>> vom ersten bis zweiten achteltakt 
wird wiederholt (der ganze loop hat acht achteltakte).
- taste 3 (portb3) und 4 (portb4) zusammen gedrückt >>> vom fünften bis 
achten achteltakt wird wiederholt.
usw.
ich habe versucht die tastenkombinationen halbwegs sinnvoll zu den 
achteltakten zuzuordnen.

aber nicht vergessen: es wird ein "high voltage" programmiergerät 
gebraucht
sonst kann man die langsamer/schneller taste nicht verwenden!

viel spass beim nachbau
Audiooxyd

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, genau ... "propellerhead reason" war die richtige Antwort :-)

Danke!

Wie lang machst du sowas schon?

Autor: Alex S. (byteman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Gast
reason benutze ich seit es das gibt (ich glaube seit 2002) musik mache 
ich aber schon länger und mit microcontrollern bastele ich seit ca. 2 
jahren.

viele grüsse
Audiooxyd

Autor: Alex S. (byteman)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
High

damit das Umwandeln der '.wav' Datei in den '1 Bit-Code' einfacher geht 
hat mein Bruder jetzt ein schönes Programm geschrieben das direkt aus 
der '.wav' Datei den '1 Bit-Code' für das 'PlayMe!' generiert.

Das Programm mit Sourcecode (für Pure Basic 4.3) und eine Anleitung habe 
ich zu diesem Beitrag angehängt.

Anleitung:
- oben im Menü wird die '.wav' Datei geöffnet.
- wenn man mit der Maus in den weissen Bereich klickt dann kann man die 
angezeigte Position verschieben.
- mit der 'Leertaste' wird der '1 Bit-Code' abgespielt. Wenn die 
'Leertaste' gedrückt gehalten wird dann kann man mit den drei 
Schiebereglern den '1 Bit-Code' an die original '.wav' Datei anpassen 
dabei zeigt der 'Error' Wert (unten rechts) an wie weit der '1 Bit-Code' 
von der '.wav' Datei entfernt ist. Kleinerer 'Error' Wert = bessere 
Ähnlichkeit.
- mit dem 'Volume' Schieberegler wird die Lautstärke der '.wav' Datei 
verändert. VORSICHT !!! Übersteuerungen hören sich schrecklich an und 
führen zu aussetzern und knacken im '1 Bit-Code' !!!
- oben im 'File' Menü kann man den 'PlayMe!' Atmel Code dann abspeichern 
('Export PlayMe).


viel Spass
Audiooxyd

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.