- $00 Tempo
-
- bpm (1~255)
Beats per Minuteを指定する。
全channelでひとつの変数を共有している。
0だと曲が進行しない。
ex. BPMを150にしたい場合
.db CcTempo,150
- $01 GateTime
-
- note_gate_time lo
- note_gate_time hi
note_gate_timeを指定する。
Note前方から数えてnote_gate_time分、NoteのReleaseが早まる。
スタッカートのような使い方を想定。
ex. GateTimeを16分音符分にしたい場合
.db CcGateTime
.dw WHOLE_NOTE_LENGTH/16
- $02 ReleaseTime
-
- note_release_time lo
- note_release_time hi
note_release_timeを指定する。
Note後方から数えてnote_release_time分、NoteのReleaseが早まる。
ex. ReleaseTimeを4分音符分にしたい場合
.db CcReleaseTime
.dw WHOLE_NOTE_LENGTH/4
- $03 VolumeEnvelopeAttack
-
- volume_envelope_attack_address lo
- volume_envelope_attack_address hi
Attack用VolumeEnvelopeのLabel Addressを指定する。
Label以降の記述で、volume_envelope値として使用可能な範囲は0~15.
ex. Attack用VolumeEnvelopeを指定する場合
.db CcVolumeEnvelopeAttack
.dw .volume_attack
.volume_attack
.db Literal+3,$07,$0A,$0D,Fill+127,$0F,JumpTo,-2
- $04 VolumeEnvelopeRelease
-
- volume_envelope_release_address lo
- volume_envelope_release_address hi
Release用VolumeEnvelopeのLabel Addressを指定する。
Label以降の記述で、volume_envelope値として使用可能な範囲は0~15.
ex. Release用VolumeEnvelopeを指定する場合
.db CcVolumeEnvelopeAttack
.dw .volume_release
.volume_release
.db Fill+127,$02,JumpTo,-2
- $05 DutyEnvelopeAttack
-
- duty_envelope_attack_address lo
- duty_envelope_attack_address hi
Attack用DutyEnvelopeのLabel Addressを指定する。
Label以降の記述で、duty_envelope値として使用可能な範囲は0~3.
ex. Attack用DutyEnvelopeを指定する場合
.db CcDutyEnvelopeAttack
.dw .duty_attack
.duty_attack
.db Fill+3,$01,Fill+127,$02,JumpTo,-2
- $06 DutyEnvelopeRelease
-
- duty_envelope_release_address lo
- duty_envelope_release_address hi
Release用DutyEnvelopeのLabel Addressを指定する。
Label以降の記述で、duty_envelope値として使用可能な範囲は0~3.
ex. Release用DutyEnvelopeを指定する場合
.db CcDutyEnvelopeRelease
.dw .duty_release
.duty_release
.db Fill+127,$03,JumpTo,-2
- $07 PitchDetune
-
- pitch_detune (-128~127)
pitch_detune値を指定する。
正の値だと周波数が下がり、負の値だと周波数が上がることに注意。
ex. 周波数を少し下げたい場合
.db CcPitchDetune,1
- $08 PitchEnvelope
-
- pitch_envelope_address lo
- pitch_envelope_address hi
PitchEnvelopeのLabel Addressを指定する。
Label以降の記述で、pitch_envelope値として使用可能な範囲は-128~127.
正の値だと周波数が下がり、負の値だと周波数が上がることに注意。
ex. PitchEnvelopeを指定する場合
.db CcPitchEnvelope
.dw .pitch
.pitch
.db Literal+1,-1,Fill+2,0,Literal+1,-1,Fill+2,0,Literal+1,1,Fill+2,0,Literal+1,1,Fill+2,0,JumpTo,-16
- $09 PitchEnvelopeDelay
-
- pitch_envelope_delay_time lo
- pitch_envelope_delay_time hi
pitch_envelope_delay_timeを指定する。
NoteOn以降、pitch_envelope_delay_time分、PitchEnvelopeの開始を遅延できる。
ex. PitchEnvelopeの開始を付点4分音符分遅延させる場合
.db CcPitchEnvelopeDelay
.dw WHOLE_NOTE_LENGTH/2*3/4
- $0A NoteTranspose
-
- note_transpose (-95~95)
note_transpose値を指定する。
Keyを変更できる。
ex. Keyを半音下げたい場合
.db CcNoteTranspose,-1
- $0B NoteEnvelopeAbsolute
-
- note_envelope_absolute_address lo
- note_envelope_absolute_address hi
絶対NoteEnvelopeのLabel Addressを指定する。
NoteTranspose, PitchEnvelope, PitchDetuneと併用可能。
NoteEnvelopeRelativeとは排他制御であり、NoteEnvelopeAbsolute読込み時にNoteEnvelopeRelative無効となる。
Label以降の記述で、note_envelope値として使用可能な範囲は33~127.
note_envelope値として0を指定すると、NoteOn時のNoteNumberで周波数設定される。
ex. 絶対NoteEnvelopeを指定する場合(Noteの先頭のみKick、その後にBass音を鳴らす)
.db CcNoteEnvelopeAbsolute
.dw note_absolute
.note_absolute
.db Literal+8,72,64,56,52,48,44,40,36,Fill+127,0,JumpTo,-2
- $0C NoteEnvelopeRelative
-
- note_envelope_relative_address lo
- note_envelope_relative_address hi
相対NoteEnvelopeのLabel Addressを指定する。
NoteTranspose, PitchEnvelope, PitchDetuneと併用可能。
NoteEnvelopeAbsoluteとは排他制御であり、NoteEnvelopeRelative読込み時にNoteEnvelopeAbsolute無効となる。
Label以降の記述で、note_envelope値として使用可能な範囲は-95~95.
note_envelope値は、NoteOn時のNoteNumberに対し相対指定する。
ex. 相対NoteEnvelopeを指定する場合(NoteOn時のNoteNumberをroot音としてmaj7を鳴らす)
.db CcNoteEnvelopeRelative
.dw note_relative
.note_relative
.db Literal+6,0,4,7,11,7,4,JumpTo,-7
- $0D JumpWithRepeat
-
- jump_with_repeat_address lo
- jump_with_repeat_address hi
- jump_repetition (1-255)
Jump先のLabel Addressと繰返し回数を指定する。
Jump先でReturnFromJumpが実行される毎にjump_repetitionが減算され、0になるとJump元に戻る。
無限ループにしたい場合はReturnFromJumpを実効しなければ良い。
ex. 同じフレーズを2回繰返す場合
.db CcJumpWithRepeat
.dw .riff
.db 2
.riff
.db 42,$7A,42,$7A,42,$7A,42,$7A,42,$7A,42,$7A,40,$7A,40,$7A,CcReturnFromJump
- $0E ReturnFromJump
-
no operand
JumpWithRepeat参照
- $0F ReturnFromMacro
- no operand