MASF : Music Arrangement Software based on Segment File information


1. Motivation

       DirectX is a set of low-level application programming interfaces for creating games or multimedia applications. According to my interests, I naturally paid attention to components for audio programming such as direct sound and direct music.
       While studying, I found attractive characters, especially unique file formats which were originally created by ¡®DirectMusic Producer¡¯ - free application provided by Microsoft - and read by functions of direct music. Then, I made a sound application which emphasized peculiarity of file structure.

 

2. Segment file format (*.sgt)

       I focused a segment file because it is union of various information including style reference, tempo, chord, and instrument within each track. Contrasting with wave file which contains absolute value, segment file has relative value, so it makes possible the following advantages.
       First, its size is very small.
       Second, slight shifts of interior information can make noticeable sound changes. For example, if I change a value of chord root, it would generate modulation. It also can happen partly on selected chords.
       Though these benefits, there are few functions to access interior data. We can just use Buffer object which can give sound effects and Performance object which can convert data of tempo, volume, and groove level at real-time. Therefore, I made my own segment file writer and tried several variations.   

 

3. Functions

< Real-time variable >
(1) Tempo : to control tempo
(2) Master of Volume : to control volumn
(3) Groove for next block : to change groove level of next block

< Non Real-time variable >
     It is data for writing segment file. Once the data is recorded, it would be never changed .

(1) Arrangement : The greater value of slider is, the more original chord pattern convert to queer chord.
                     If you check strong radio button, changes of the chord root arise simultaneously.
(2) Scale : The default value is middle A(la).
              If you move scale slider, modulation would occur as the distance from A.
(3) Instrument : Typed number in this edit box generates random number, then, it specifies kinds of instruments.

 

4. System requirements

* OS: Microsoft Windows 2000
     (Although it is not tested with Windoes 98 and Me, I think it will also work on them.)
* To use this program, Microsoft directX runtime must be installed on your machine.
     (DX81NTENG.exe - for Windows 2000, DX81eng.exe - for Windows 98, Windows Me)
* ¡®lullaby.sty¡¯ must be set in the same directory that has the file made by user

 

 

5. Usage

¡¤ Run 'MPro.exe' on MS Windows. (It will look like the screenshot above.)
¡¤ Setting parameters for writing segment file.
    -> moving Arrangement slider, Scale slider and type integer to Instrument edit box

¡¤ If you hear segment file, click Open button and select file/ If you make segment file, click Write button and type file name.
¡¤ Click play button
¡¤ You can change Tempo, Volumn, and Groove level by moving each slider at real-time.


¡¤ MPro.exe (executable file)
¡¤ MPro.zip (source codes)

 

6. Examples

                          77.sgt                                                       11.sgt                                                          56.sgt

      

                      20W.sgt                                                     20S.sgt
  

 

7. Further plan
This application makes segment file with determined style file. As adding loader object which has getter and setter, I want to expand the limit of my program.