不同歌曲的播放起來有快有慢,是因為拍子(Beat)的演奏速度不同所導致。拍子的速度稱為Tempo,常使用的單位是「拍子/minute」,也就是一分鐘演奏幾個拍子。



Tempo Statement

Tempo Statement用來控制拍子的演奏速度,在Csound中又稱為「t Statement」,因為要設定出一組Tempo,需要用到t Statement。格式如下:

t 0 p1 [p2 p3 [p4 p5 [p6 p7 ...]]]

  • p1:歌曲起始的Tempo。如果設為120,就代表這個歌曲一開始的演奏速度為一秒兩拍。
  • p2n p2n+1(n>=1):設定Tempo要在第幾拍的時候變化。p2n為第幾拍,p2n+1為要轉變的Tempo。

Csound在演奏樂器時,參數p3(duration),其實是代表一個音符要演奏幾拍,1是1拍,0.5是半拍。

下面是一個Csound範例,合成出部份「癡心絕對」這首李聖傑的歌。有設定Tempo,所以聽起來會感覺忽快忽慢的。

<CsoundSynthesizer>
	<CsOptions>
	</CsOptions>
	
	<CsInstruments>
		sr = 44100 ;sample rate
		ksmps = 16 ;samples in a control period
		nchnls = 1 ;number of channels
		0dbfs = 100 ;value of 0db
		
		instr 1
			;p4=pitch
			;p3=duration		
			 							
			ifreq = cpspch(p4) ;convert pitch to frequent
			av linen 100, 0.1, p3, 0.1 ;ring the amplitude
			a1 oscil av, ifreq, 1 ;oscillate f1
			out a1 ;output
		endin
	</CsInstruments>
	<CsScore>
		f1 0 16384 10 1 0 -0.11111 0 0.04 0 -0.02041 0 0.01235 0 -0.00826 0 0.00592 0 -0.00444 0 0.00346 0 -0.00277 0 0.00227 0 -0.00189 0 0.0016 0 -0.00137 0 0.00119 0 -0.00104 0 0.00092 0 -0.00082 0 0.00073 0 -0.00066 0 0.00059 0 -0.00054 0 0.00049 0 -0.00045 0 0.00042 0
		t 0 108 20 60 40 200 90 108 ;Tempo
		;ins	strt	dur	pitch
		i1	0	0.5	8.00
		i1	+	0.5	8.02
		i1	+	0.5	8.04
		i1	+	0.5	8.04
		i1	+	0.5	8.04
		i1	+	0.5	8.04
		i1	+	0.5	8.04
		i1	+	0.5	8.02
		i1	+	0.5	8.07
		i1	+	1.5	8.02
		i1	^+3.5	0.5	8.00
		i1	+	0.5	8.00
		i1	+	0.5	9.00
		i1	+	1	9.00
		i1	+	0.5	9.00
		i1	+	0.5	8.09
		i1	+	0.5	8.04
		i1	+	0.5	8.09
		i1	+	1.5	8.07
		i1	^+3.5	0.5	8.07
		i1	+	0.5	8.07
		i1	+	1	8.09
		i1	+	0.5	8.04
		i1	+	1	8.04
		i1	+	0.5	8.04
		i1	+	0.5	8.04
		i1	+	0.5	8.09
		i1	+	0.5	8.07
		i1	+	0.5	8.07
		i1	+	0.5	8.09
		i1	+	2	8.00
		i1	^+2.5	0.5	8.05
		i1	+	0.5	8.04
		i1	+	0.5	8.05
		i1	+	0.5	8.04
		i1	+	0.5	8.05
		i1	+	1	8.04
		i1	+	0.5	8.00
		i1	+	1	7.09
		i1	^+1.5	0.5	8.04
		i1	+	1.5	8.02
		i1	^+5	0.5	8.00
		i1	+	0.5	8.02
		i1	+	0.5	8.04
		i1	+	0.5	8.04
		i1	+	1	8.04
		i1	+	0.5	8.04
		i1	+	0.5	8.02
		i1	+	0.5	8.07
		i1	+	1.5	8.02
		i1	^+3.5	0.5	8.00
		i1	+	0.5	8.00
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	1	9.00
		i1	+	0.5	8.09
		i1	+	0.5	8.04
		i1	+	0.5	8.09
		i1	+	1.5	8.07
		i1	^+3.5	0.5	8.07
		i1	+	0.5	8.07
		i1	+	1	8.09
		i1	+	0.5	9.00
		i1	+	1.5	9.00
		i1	^+2	0.5	8.09
		i1	+	1	8.07
		i1	+	1	8.11
		i1	+	1	9.00
		i1	+	0.5	8.07
		i1	+	0.5	8.07
		i1	+	0.5	9.04
		i1	+	0.5	9.04
		i1	+	0.5	9.04
		i1	+	0.5	9.05
		i1	+	0.5	9.04
		i1	+	0.5	9.02
		i1	+	0.5	9.00
		i1	+	5.5	9.02
		i1	^+7.5	0.5	9.00
		i1	+	0.5	9.02
		i1	+	0.5	9.04
		i1	+	0.5	9.04
		i1	+	0.5	9.04
		i1	+	0.5	9.05
		i1	+	0.5	9.04
		i1	+	0.5	9.02
		i1	+	0.5	9.02
		i1	+	0.5	9.00
		i1	+	1	9.02
		i1	+	0.5	9.02
		i1	+	0.5	9.07
		i1	+	1	9.02
		i1	+	0.5	9.00
		i1	+	0.5	8.11
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	0.5	9.04
		i1	+	0.5	9.04
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	0.5	8.09
		i1	+	1	8.11
		i1	+	0.5	8.11
		i1	+	0.5	9.04
		i1	+	1	8.11
		i1	+	0.5	8.09
		i1	+	0.5	8.07
		i1	+	1	8.09
		i1	+	0.5	8.09
		i1	+	0.5	8.09
		i1	+	1.5	9.05
		i1	+	0.5	9.05
		i1	+	1	9.04
		i1	+	0.5	9.07
		i1	+	1.5	9.00
		i1	+	0.5	8.09
		i1	+	0.5	8.07
		i1	+	0.5	8.09
		i1	+	0.5	8.09
		i1	+	0.5	8.09
		i1	+	0.5	9.05
		i1	+	0.5	9.05
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	0.5	8.09
		i1	+	1	9.02
		i1	^+2.5	0.5	9.00
		i1	+	0.5	9.00
		i1	+	0.5	9.02
		i1	+	0.5	9.04
		i1	+	0.5	9.04
		i1	+	0.5	9.04
		i1	+	0.5	9.05
		i1	+	0.5	9.04
		i1	+	0.5	9.02
		i1	+	0.5	9.02
		i1	+	0.5	9.00
		i1	+	1	9.02
		i1	+	0.5	9.02
		i1	+	0.5	9.07
		i1	+	1	9.02
		i1	+	0.5	9.00
		i1	+	0.5	8.11
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	0.5	9.04
		i1	+	0.5	9.04
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	0.5	8.09
		i1	+	1	8.11
		i1	+	0.5	8.11
		i1	+	0.5	9.04
		i1	+	1	8.11
		i1	+	0.5	8.09
		i1	+	0.5	8.07
		i1	+	1	8.09
		i1	+	1	8.09
		i1	+	1.5	9.05
		i1	+	0.5	9.05
		i1	+	1	9.04
		i1	+	0.5	9.07
		i1	+	1.5	9.00
		i1	+	0.5	8.09
		i1	+	0.5	8.07
		i1	+	0.5	8.09
		i1	+	0.5	8.09
		i1	+	0.5	8.09
		i1	+	0.5	9.05
		i1	+	1	9.05
		i1	+	0.5	9.00
		i1	+	0.5	9.00
		i1	+	1	9.00
		i1	^+3	1	8.11
		i1	+	2	9.00
		e
	</CsScore>
</CsoundSynthesizer>

癡心絕對Tempo檔案下載