PC-8001に2重和音を演奏させようのコーナー

みなさんご存知の通り、PC-8001は、標準でBEEP音源しか持っていません。しかもこの周波数が、98のように可変ではないので、音楽を演奏することは普通はできません。

しかし、このBEEPをマシン語などで高速にON・OFFすると、なぜかそのON・OFFの周波数に合わせた音階が聞こえるのでした。

このテクニックを1歩進めることで、単音だけでなく、2重和音・3重和音も演奏できるようになります。


その方法とは、「複数ののON・OFFの波を並行して処理する」というものです。例えば2重和音だったら、異なった周波数の2つの波を考え、両方ともONのときはずっとON、両方ともOFFだったらずっとOFF、片方がONで片方がOFFだったらONとOFFを交互に実行、とします。

この簡単な処理で、PC-8001に夢の2重和音・3重和音を演奏させることができます。なお、DMAをストップさせておかないと、和音に聞こえないので注意。(DMAが機能していると、画面の転送時に処理速度が乱れるので、音が汚くなります。)


プログラム例

[BFE0=第1音、BFE1=第2音、BFE2=第3音、BFE3,4=長さ、BFE5,6,7=&h20、 BFE8,9,A=第1〜3音のコピー]として、このルーチンをCALLすると音が出ます。

	ccc:	LD IX,BFE0h
	    	LD DE,BFE5h
	    	LD HL,BFE8h
	    	LD B,3
	bbb:	LD A,(DE)
	    	OUT 40,A
	    	LD C,(HL)
	    	DEC C
		LD (HL),C
		JR NZ,ccc
		XOR 20h
		LD (DE),A
		LD A,(IX+0)
		LD (HL),A
		CP 0
		JR NZ,aaa
		LD A,0
		LD (DE),A
	aaa:	INC HL
		INC DE
		INC IX
		DJNZ bbb
		LD HL,(BFE3h)
		DEC HL
		LD (BFE3h),HL
		LD A,H
		CP FFh
		JR NZ,ccc
		RET

戻る