Changes

NRTDRV MAN EN SYNTAX HEADERS

5,673 bytes added, 11:28, 21 July 2018
headers2
You do not need it usually because #J_KEYOFF is set as default. If you want enable key on while fast forwarding, use #J_KEYON header.
 
==headers2==
 
#MEMO <str>
 
Insert 1 line memo into music data.
 
#MIX_ASL <num1>,<num2>,<num3>
 
Sets volume balances between sound sources during playing music on ASLPLAY.
 
<num1> is OPM#1, <num2> is OPM#2 and <num3>is PSG.
 
The range is from 0 to 999. 100 is default value of OPM and 160 is of PSG.
 
This header is only for ASLPLAY and not valid for playing on real X1 or X1 emulators.
 
[example]
#MIX_ASL,,100
Set 100 to PSG volume.
 
Actually 1/100 of this value is set with "---adjvol" option.
 
#MIX_HOOT <num1>,<num2>,<num3>
 
Sets volume balances between sound sources during playing music on hoot.
 
<num1> is OPM#1, <num2> is OPM#2 and <num3>is PSG.
 
The range is from 0 to 999. 192($C0) is default value of OPM and 288($120) is of PSG. If parameters are omitted, default value is applied.
 
This header is only for hoot and not valid for playing on real X1 or X1 emulators.
 
[example]
#MIX_HOOT ,,100
Set 100 to PSG volume.
 
#MIX_OPM1 <num>
 
Sets volume balances of OPM#1 during playing music on hoot.
 
This is prepared only for compatibility with old versions of NRTDRV.
Use #MIX_HOOT header in ordinary case.
 
#MIX_OPM2 <num>
 
Sets volume balances of OPM#2 during playing music on hoot.
 
This is prepared only for compatibility with old versions of NRTDRV.
Use #MIX_HOOT header in ordinary case.
 
#MIX_PSG <num>
 
Sets volume balances of PSG during playing music on hoot.
 
This is prepared only for compatibility with old versions of NRTDRV.
Use #MIX_HOOT header in ordinary case.
 
#NOTE_OPTIMIZE_OFF
 
Does not optimize sequential strokes and outputs sound as is.
 
#NOTE_OPTIMIZE_ON is default.
 
#NOTE_OPTIMIZE_ON
 
Converts sequential strokes to repeats and reduces size of music data.
 
#NOTE_OPTIMIZE_ON is default and you do not need to define it.
Use it if you want define it explicitly.
 
[example]
#NOTE_OPTIMIZE_ON
A l8 ccccdeee ff4fgggg a1
Same as "A l8 [4c]d[3e] ff4f[4g] a1".
 
#OCTA_X
 
Changes relative octave sign to popular way in X1/X680x0. "<" is increase octave and ">" decrease.
 
#OCTAVE_REV
 
It is equivalent to #OCTA_X
 
#OPM_WAIT
 
Makes appropriate wait while writing to OPM register. Use it when you need certain register access for example playing on real machines e.g.
 
Never use it with OPM16 unsupported hoot. It might cause freezing OS.
 
#OPM_NOWAIT
 
Does not make any waits while writing to OPM register.
 
Use it with OPM16 unsupported hoot. It might avoid freezing OS.
 
#OPM_NOWAIT is default and you do not need to define it.
Use #OPM_WAIT if you want define it when you need wait.
 
#OPM_REV
 
Exchanges first and second tracks of OPM. Track A-H are OPM#2 and I-P are OPM#1.
 
#OPM8
 
Selects "X1 general driver" (OPM8 + PSG3).
 
Use it when you do not use second OPM or OPM16 unsupported version of hoot.
 
This header is only for hoot and not valid for playing on real X1 or X1 emulators.
 
#OP_REV
 
Reverts operator mask, VOP command, operator 2 and operator 3 when OPM tone parameters are directly set.
M1/C1/M2/C2 are set when this header is defined, M1/M2/C1/C2 is set when omitted.
Note that OPM tone setting syntax is not changed.
 
#PROGRAMMER <str>
 
Defines the name of MML programmer.
 
#PSG_CORE <num>
 
Select PSG core when hoot plays music.
0 means fmgen and other than 0 means MAME's AY-3-8910 core.
 
Output volumes are different between cores and modify with #MIX_PSG if you need.
 
This header is only for hoot and not valid for playing on real X1 or X1 emulators.
 
#P_REV
 
Exchange "p" command and "P" command. And changes pn command to capital character ("PN") and change PP command to small character ("pp").
 
It is useful when porting MML from other music driver.
 
#Q_MODE <num>
 
Define execution of q command and Q command.
 
Values are listed below. Default value is 0.
 
0:Calculation is executed on driver.
1:Exchange dined length of q command with rest on compiler.
2:Exchange dined length of Q command with rest on compiler.
3:Exchange dined length of q and Q command with rest on compiler.
 
Specifying anything other than 0 decreases the amount of computation by the driver.
It is useful when the load at the real machine is high.
 
File size of the music data increases. It makes return to "q8Q0" at the top of each driver macros.
 
Key on processing is changed to
light wait mode on driver when 1 or 3 is set.
 
Enforced legato with Q command cannot be valid when 2 or 3 is set.
 
[example]
#Q_MODE 1
A q4c8q8d8q4e8
Same as "A q8c16r16d8e16r16"
 
[example]
#Q_MODE 2
A Q1c4d4Q5e4f4Q9g4
Same as "A Q0c4-#1r#1d4-#1r#1e4-#5r#5f4-#5r#5g4-#9r#9"
 
 
#Q_MAX <num>
 
Defines maximum (denominator) value of q command. 8 is default.
 
Changes to special mode which can be set gate time count with q command when it is 255.
 
1 or 3 must be set with #Q_MODE header.
 
If you want define another value to certain track, use QM command.
 
Denominator for whole song is defined with #Q_MAX header and define only track which you want to change denominator with QM command.
 
[example]
#Q_MODE 1
#Q_MAX 32
A q32 cdef
Lengthen sound till the end of specified length.
A q16 gab>c
Lengthen sound half of specified length.
 
[example]
#Q_MODE 1
#Q_MAX 255
Makes key off at 10 count irrespective to the length of note.
 
 
#Q_REV
 
Exchange "q" command and "Q" command. And change QM command to small character ("qm").
It is useful when porting MML from other music driver.
 
#REPLACE_TRACK <str>,<str>
 
Exchanges track <str> and <str>. If you want exchanges multi-tracks define with multiple line.
 
It is convenient when you want to play OPM16 music on OPM8 environment. Move unremarkable part to track in OPM#2.
 
[example]
#REPLACEb I _TRACK A,O
#REPLACE_TRACK B,P
 
Exchanges track A and O. Exchanges track B and P.
== continue ==