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.