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
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.