рдЖрдЬ рд╣рдо рдПрдХ рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЧрдгрд┐рдд рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдзреНрд╡рдирд┐ рдФрд░ рд╕рдВрдЧреАрдд рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХреА рдмрд╣реБрдореБрдЦреА рдкреНрд░рдХреГрддрд┐ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдШрд░ рдкрд░ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдмрддрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред, , , - , . .
, . , .
( ┬л┬╗). , тАУ , . .
(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,
.