MIDI новичок - нужно сыграть одну ноту

Я не очень много знаю о функции MIDI в Java. На самом деле, это совершенно сбивает с толку меня. однако я хотел бы просто создать простое приложение, которое будет играть одну ноту.

Как воспроизвести одну MIDI-ноту с помощью Java Sound?

Поддержка этого в сети практически отсутствует, и я в полном недоумении.

2 ответа

Я знаю, что это действительно старый вопрос, но, как начинающему программисту, мне было очень трудно понять, как это сделать, поэтому я подумал, что поделюсь следующей программой hello-world-style, которая заставляет Java воспроизводить один Midi Note, чтобы помочь кому-либо еще начать.

import javax.sound.midi.*;

public class MidiTest{

    public static void main(String[] args) { 
      try{
        /* Create a new Sythesizer and open it. Most of 
         * the methods you will want to use to expand on this 
         * example can be found in the Java documentation here: 
         * https://docs.oracle.com/javase/7/docs/api/javax/sound/midi/Synthesizer.html
         */
        Synthesizer midiSynth = MidiSystem.getSynthesizer(); 
        midiSynth.open();

        //get and load default instrument and channel lists
        Instrument[] instr = midiSynth.getDefaultSoundbank().getInstruments();
        MidiChannel[] mChannels = midiSynth.getChannels();

        midiSynth.loadInstrument(instr[0]);//load an instrument


        mChannels[0].noteOn(60, 100);//On channel 0, play note number 60 with velocity 100 
        try { Thread.sleep(1000); // wait time in milliseconds to control duration
        } catch( InterruptedException e ) { }
        mChannels[0].noteOff(60);//turn of the note


      } catch (MidiUnavailableException e) {}
   }

}    

Приведенный выше код был в основном создан путем вырезания, вставки и возни с кодом, найденным в нескольких онлайн-учебниках. Вот самые полезные уроки, которые я нашел:

http://www.ibm.com/developerworks/library/it/it-0801art38/ Это отличный учебник и, вероятно, содержит все, что вы ищете; однако, это может быть немного подавляющим вначале.

http://patater.com/gbaguy/javamidi.htm Особенности неработающего кода, написанного 15-летним. Это было - удивительно - самое полезное, что я нашел.

Удачи вам. Приветствия.

Ну вот:

Информация о тегах MIDI в стеке

  1. Непонятные MIDI
  2. Учебник по Oracle
  3. Доступ к MIDI
  4. МИДИ Синтез
Другие вопросы по тегам