04 - Config Manual
File Structure
a) This directory contains the Initialisation Files which are read when executing the Software.
This .ini files contain a description how to config the fret and the notes.
b) Graphics resources used by the default .ini files
c) Audio resources used by the default .ini files
Config Files
The root Config file 'config.ini' is the first ini file read.
config.ini
Rockband.ini
Solfege.ini
DtxMania.ini
RockbandFlat.ini
It indicates which file to read to initialize the fret and the notes. This file is usefull to quickly swap between differents configuration. In futur I will use this file to display a combo box to swap between config at run time.
In this exemple, the software will run Rockband.ini at startup.
Fret Config Commands
A command must start with '#' and finish with ':' , after the command only 1 value is read.
Comments must start with ';' or C++ style "//"
Image file, any images that DirectX can handle ( .bmp, .jpg, .png, etc. ) , PNG with Alpha channel ( transparency ) are managed.
Audio file, any audio file that DirectShow can handle, so you have to install the codecs if they are not standard in windows ( .wav , .mp3, .ogg with codec in download section , etc. )
I'm using RockBand.ini as example.
Background Color Commands
#BackGroundColorRed:
25
; Red Componnent for Background Color
#BackGroundColorGreen:
0
// Green
#BackGroundColorBlue:
50
// Blue
To set the background color red,green,blue components.
Audio and Video Lag
#VideoLag:
-50
// in ms
#AudioLag:
0
// in ms
VideoLag : To configure how many milliseconds lag between video and game engine. If you feel that when the notes are passing under the valid bar, that the sound and audio are desynchronised, you can tweek this value, positive and negative numbers are accepted.
AudioLag : not implemented yet. Useless until I implement Midi input read.
Fret Config
TrackLaneCount : Number of lane to configure the fret with.
TrackLaneWidth : Width of each lane.
NoteWith : Width of each note.
#TrackLaneCount: 5
#TrackLaneWidth: 1.4
#NoteWidth:
1.2
FretAnglePitch : Pitch angle in degree with the vertical, 90 will be flat ( so impossible to see ), 0 will look the fret from above.
FretAngleRoll : Roll angle in degree, 0, the fret will face you, 90 the fret will face left.
FretZoom : Distance with the Fret, bigger number, the smaller will be the fret on the screen
FretTimeScale: Default time scale at which the notes are scrolling, bigger number = faster
FretImage : Image to display on the fret.
LaneImage : Image to display for each Lanes
FretLength : Length of the fret to display
FretValidOffset : Position of the validation bar
#FretAnglePitch:
75
#FretAngleRoll:
00
#FretZoom:
100
#FretTimeScale:
20
#FretImage:
blackFretGrayEdge.png
#LaneImage:
void.png
#FretLength:
128
#FretValidOffset:
10
Note Config
There is several objects in Midi Drum Cover Partner ( MDCP ), objects can be any combination of game mechanics, graphics and sound,
Here the list of Objects type :
PLAY_WAV : play a sound ( wav , ogg, mp3, etc. )
PLAY_BGM : play a sound as background music, this sound will be used to synchronised the fret scrolling with the audio, all songs must have one.
BPM_VALUE : change the current BPM
MEASURE_RATIO : change the measure length, also known as time signature in music.
HAND_LEFT : the not should be played with left hand
HAND_RIGHT : right hand
VALID_TIME : the validation note, place ate the FretValidOffset
MEASURE_TIME : a bar for each measure/bars
BEAT_TIME : a bar for each beat, in standard 4/4 songs, you should see 1 measure bar followed by 3 beat bars.
then we have the drum note Objects, self explanatory
SNARE
HIHAT_CLOSED
HIHAT_OPEN
RIDE
CYMBAL_LEFT, CYMBAL_RIGHT ( aka Crash Cymbal )
BASS ( aka Kick pedal )
TOM_HIGH
TOM_MEDIUM
TOM_LOW ( aka Floor tom )
For each object you can configure them with several commands :
NoteType : indicate which note you want to config, you should not config the same note twice. So for example, SNARE should appears only once.
NoteLane : at wich lane on the fret the note should be displayed
NoteMeshType : How the note is displayed
- CONE ( 3D )
- BOX ( 3D )
- CYLINDER ( 3D )
- QUAD ( 2D )
NoteImageFile : image file that will be textured on the NoteMesh.
NoteSoundFile : default sound for this note, in Midi file format, no audio file is present for the notes, so this sound will be played. Most DTX Files have an audio file for each note.
NotePriority : priority of the note on the lane, smaller is higher priority, so if you have a HIHAT_CLOSED on lane 2 and TOM_HIGH on lane 2 also, the note with biggest priority will be displayed on lane 2, and the other note will go on NoteOptionalLane
NoteOptionalLane : see NotePriority
NoteScaleX, NoteScaleY, NoteScale Z : to scale this note , so it will be multiply to the FretNoteWidth value ( X = row, Y = lane, Z = vertical to the fret ).
Small example :
#NoteType: SNARE
#NoteLane: 1
#NoteMesheType: BOX
#NoteImageFile: 3DTomRed.png
#NoteSoundFile: SnareHard.wav
#NotePriority: 1
#NoteOptionalLane: 1
#NoteType: HIHAT_CLOSED
#NoteLane: 2
#NoteMesheType: CONE
#NoteImageFile: 3DCymbalYellow.png
#NoteSoundFile: HHClosed.wav
#NotePriority: 1
#NoteOptionalLane: 2
Objects PLAY_WAV, PLAY_BGM , BPM_VALUE, MEASURE_RATIO, there is nothing to config because they are pure game mechanics.
Objects HAND_LEFT, HAND_RIGHT, VALID_TIME, MEASURE_TIME, BEAT_TIME are pure graphics.