рдХреИрд╕реЗ рдорд╢реАрди рд╕реАрдЦрдиреЗ рд╕реЗ рдЖрдкрдХреЛ рд╕рдВрдЧреАрдд рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ



рдЖрдЬ рд╣рдо рдПрдХ рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЧрдгрд┐рдд рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдзреНрд╡рдирд┐ рдФрд░ рд╕рдВрдЧреАрдд рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХреА рдмрд╣реБрдореБрдЦреА рдкреНрд░рдХреГрддрд┐ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдШрд░ рдкрд░ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдмрддрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

, , , - , . .

, . , .


( ┬л┬╗). , тАУ , . .

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

All Articles