Hoy hablaremos de un estudio que analiza el sonido y la música en términos de matemáticas y programación. Este enfoque nos permite apreciar la naturaleza multifacética de todo lo que estamos acostumbrados a escuchar en el camino al trabajo o en casa. Intentaremos establecer los puntos principales en palabras simples., , , - , . .
, . , .
( «»). , – , . .
(128 ) – . , , (). 2^14x2^7. (0 <= n, m <= 127), .
/ ( , ). , (127), (300 ).
, . «» , «»; [ *127+ ][ ].
«» ( ) .
, , MIDI- ( .mid), , Java Sequencer. :
public Learn(String midiName) {
try {
Sequence sequence = MidiSystem.getSequence(new File(midiName));
int id[] = {0, 0, 0};
int nArr[][] = new int[2][2];
for(Track track : sequence.getTracks()) {
for(int i = 0; i < track.size(); i++) {
MidiEvent event = track.get(i);
MidiMessage message = event.getMessage();
if(message instanceof ShortMessage) {
ShortMessage sm = (ShortMessage) message;
if(sm.getCommand() == NOTE_ON) {
int key = sm.getData1();
for(int j = 0; j < 2; j++) {
if(id[j] == 2) {
id[j] = 0;
Score.updateWeight(nArr[j][0], nArr[j][1], key);
} else {
nArr[j][id[j]++] = key;
}
}
}
}
}
}
cnt++;
} catch(InvalidMidiDataException|IOException e) {
e.printStackTrace();
}
}
: ( ) , . , Java Math.random(). , ( ) , Math.random().
Synthesizer – , .

, Markov composer,
.