001
02.01.2014, 21:14 Uhr
jmueller
|
Zitat: | Achtung! Das Programm läuft nur auf echter Hardware, nicht im JKCEMU.
|
Das möchte ich mal erläutern:
Also beim Z9001 werden Töne üblicherweise über die CTC und einem nachgeschalteten Flip Flop zur Phasengleicheit erzeugt. Das funktioniert auch im JKCEMU. Zusätzlich kann mit einem Bit eines IO-Ports der eingebaute Lautsprecher an und abgeschaltet werden Je nach Schaltstellung des Flip Flops lassen sich damit auch Töne erzeugen, indem man einfach den Lautsprecher immer an und abschaltet. Dieses Prinzip verwendet das oben verlinkte Musikprogramm. Und genau da hat der Emulator z.Z. noch einen Bug. Zwar wird auch das An- und Abschalten des Lautspreches emuliert, jedoch wird das sich dadurch ändernde Audiosignal nicht an das Ausiosystem des PCs weitergereicht. Deshalb hört man da einfach nichts.
Ich habe den Fehler bei mir inzwischen behoben, d.h., das ist dann auch in der nächsten JKCEMU-Version mit drin. Wer aber trotzdem schon mal die 1-Bit-Musik im Emulator hören möchte, kann sich folgendes Video anschauen: http://www.jens-mueller.org/tmp/z9001_1bit_sound.mp4 Achtung: 75 MByte!
Die 1-Bit-Musik ist aber für einen Emulator schon eine harte Kost. Mit kurzen Impulsen in sehr schneller Folge wird die Amplitude gesteuert. Je breiter die Impulse bzw. je kürzer ihre Abstände sind, desto höher ist die Amplitude. Das Prinzip ähnelt dem eines Licht-Dimmers.
Das obrige Musikprogramm verwendet zur Amplitudensteuerung sehr sehr kurze Nadelimpulse, die kürzer sind als der Sample-Abstand bei CD-Qualität (44,1 kHz). Deshalb gehen im Emulator viele dieser Impulse verloren, so dass das ganze sich eher wie ein Kratzen anhört. Nur bei einer Sample-Rate von 96 kHz klingt die Tonausgabe im Emulator halbwegs wie die auf realer Hardware. In dem Video schalte ich die Sample-Fequenz von 22,05 über 44,1 auf 96 kHz hoch. Da kann man schön den Qualitätsunterschied hören. 96 kHz Sample-Rate kann aber leider nicht jede PC-Hardware.
Jens Dieser Beitrag wurde am 02.01.2014 um 21:16 Uhr von jmueller editiert. |