Aujourd'hui, nous allons parler d'une étude qui examine le son et la musique en termes de mathématiques et de programmation. Cette approche nous permet d'apprécier la nature multiforme de tout ce que nous avons l'habitude d'écouter sur le chemin du travail ou à la maison. Nous allons essayer d'énoncer les principaux points en termes 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,
.