ISE575 / EE675 / CSCI575
/ PSYCH675
Final
Project : Macro and Micro musical attributes controller
ChangHyun
Kim
Electrical Engineering Ph.D.student
Because
computer music generated from the stochastic or statistical model is hard to
understand and untouchable to me, I wanted to design a program, which uses my
piano playing as an input data. And I want to transform or change some musical
attributes in my piano performance. During this semester, I learned that
chaotic mapping1 can change existing classical music into very
plausible variation piece, Gershwin’s music and Bach’s music. Also,
I guess that many other statistical models, for example Gibbs Sampling2,
can give me a satisfactory variation of my performance input. By the way, these
models generate notes or transforms musical attributes microscopically. So I
want to add some more musical attributes, which I can control in my music
performance macroscopically. Volume and tempo contour drawing program makes me
possible to do it.
Program
Description
I
developed two UI programs. First, recording and variation UI program. Second,
volume and tempo contour drawing program. Both of them used

[Fig1. Recording and Variation UI
program]
[ADAPTER SETUP] attribute have two setup
options for

[Fig2. Tempo and Volume Contour drawing
Program]
Figure 2 shows tempo and volume contour
control program. There are total 5 buttons, [TEMPO],[VOLUME],[CLEAR],[PLAY] and
[STOP]. X-axis is the time axis,
starting from 0 to the end of the piece(measurement: millisecond). Y-axis is
the tempo and volume axis. In tempo control, red pen will draw from the bottom,
which is mapped to the value of 0.1, to the uppermost, which is mapped to the
value of 10. In volume control, blue pen will draw from the bottom, which is
linearly mapped to the value of -40, to the uppermost, which is mapped to the
value of 40.
1. MIDI Recording/Variation program
|
STEP1.
Select Input and Output ports from the Adapter Setup by clicking [SET]
buttons each. After clicking the [SET] button, you can check the status
message in the status box. |
|
|
STEP2. Push [RECORD] button for
recording performance. In this moment, the progress bar moves quickly. This
means now recording. Push [PLAY] button for hearing the performance you
recorded right before. Click [STOP] button whenever you want while recording
or playing. |
|
|
STEP3. VARIATION part currently has not
implemented yet. |
|
2. Volume and Tempo Contour drawing
program
|
STEP 1. Click the [TEMPO] button. That
gives you red pen for drawing the tempo contour. STEP 2. Click mouse left button for
each turning point before clicking the end point. STEP 3. Click mouse right button for
the end point. |
|
|
STEP 4. Click the [VOLUME] button. That
gives you blue pen for drawing the volume contour. Do the Step from 1 to 3
again. |
|
|
STEP 5. Click the [Play] button, when
you draw both red and blue lines on the black board. While playing, you can
immediately stop the playing by clicking [STOP] button. STEP 6. Click the [CLEAR] button, if
you want to redraw the [TEMPO] and [VOLUME] contour. |
|
Technical
Challenges
-
a set of open source audio signal
processing and algorithmic synthesis classes written in the C++ programming
language.
-
Using
RtMidi class for midi input and output
-
Composed
of three chunks, header chunk, track chunk and data chunk.
-
For
changing the volume and tempo, data chunk’s event messages should be
changed.
-
Note
On 0X90, 0X91, Soft Pedal 0xB0, 0xB1 and
trash 0xF8, 0xFE
I
currently finished almost all of user interface programming. However, there are
two variation models, which I have not implemented yet.
Darrell Conklin (2003). Music
Generation from Statistical Models. In Proceedings of the AISB 2003 Symposium
on Artificial Intelligence and Creativity in the Arts and Sciences,
Aberystwyth,
Diana S. Dabby (1996). Musical
variations from a chaotic mapping. Chaos: An Interdisciplinary Journal of
Nonlinear Science, June 1996, Vol.6, Iss.2, pp.95-107.
Visual
C++6 Perfect guide 2nd Edition
http://ccrma.stanford.edu/software/stk/
http://www.music.mcgill.ca/~gary/rtmidi/
http://www.sonicspot.com/guide/midifiles.html
Download