Dies ist eine alte Version des Dokuments!


1-Bit-Musik

Bekannt und vielfach anzutreffen ist eine monophone Tonausgabe, wie z.B. bei der Funkamateur-Melodieklingel.

Durch Pulsweitenmodulation (PWM) ist es möglich, bei entsprechend hoher Trägerfrequenz auch mehrere Töne gleichzeitig erklingen zu lassen. Für Computer wie den ZX81 wurde das in verschiedenen Spielen genutzt, es gibt aufgefeilte Engines, die einen bis zu 7-stimmigen Klang incl. Schlagzeug produzieren können.

Im Buch von Rolf-Dieter Klein: „Mikrocomputer selbstgebaut und programmiert“, Franzis-Verlag, 2. Auflage 1984, habe ich eine passende Routine und auch 2 Musiken gefunden, die ich auf den Z9001 umgesetzt habe (anderes Ansprechen der Tonausgabe, andere Grundfrequenz). Die Sound-Routine erlaubt 4stimmige Tonwiedergabe!

Als Besonderheit ist beim Z9001 zu beachten, dass der Beeper original über die CTC mit nachfolgendem D-Flip-Flop angesteuert wird. Durch ein nachfolgendes NAND-Gatter wird der Beeper zugeschaltet (Schaltungshinweise siehe Kassetteninterface). Für die PWM-Sound-Ausgabe wird dieses NAND-Gatter zweckentfremdet und über den zugehörigen PIO-Ausgang der Beeper ständig ein- und ausgeschaltet. Damit ein Ton zu hören ist, muss das der CTC nachfolgende D-Flip-Flop so gesetzt sein, dass das NAND-Gatter „durchlässig“ wird. Das erfolgt ggf. durch die Erzeugung eines einzelnen Impulses der CTC.

Aufgrund dieser Tonerzeugung hört man nur Töne am Beeper, aber nichts am Kassettenausgang!

Für den ZX Sprectrum gibt es einige 1-Bit-Engines, die vielfältigen Sound erzeugen können. Die Anpassung an den Z9001 ist relativ einfach, allerdings müssen Tohhöhen und Tonlängen an den geringeren Systemtakt angepasst werden.

Ein interessantes PC-Windows-Programm ist Beepola. Mit diesen Programm können Musikstücke mit einem Tracker programmiert werden, es werden 9 (?) verschiedene Engines unterstützt, und Beepola erzeugt Assembler-Quelltext!

das Stück „L'autre valse d'Amelie“ der Gruppe „irrlicht Project“ wurde mit Beepola umgesetzt.

  • z9001/software/musik.1388874999.txt.gz
  • Zuletzt geändert: 2014/01/04 22:36
  • von volkerp