2013-05-09 7 views
7

JavaのMIDI機能についてはあまりよく分かりませんが、実際、それはまったく私をうんざりさせます。しかし、私は何をしたいのですかちょうどは、1つのメモを再生する単純なアプリケーションを構築します。MIDI初心者 - 1つの音符を再生する必要があります

Javaサウンドを使用して単一のMIDIノートを再生する方法は?

これはウェブ上でのサポートはほとんどなく、私は全く犠牲になっています。

+4

これまでのチュートリアルはどのようなものでしたか?どのように動作していませんか? –

+2

[Javaサウンド情報]からリンクされているリソースを参照してください。ページ](http://stackoverflow.com/tags/javasound/info)。また、MIDIチューンを再生する短いソースもあります。 –

+1

SierraとBatesの "Head First Java"には、このためのサンプルコードがあります。 –

答えて

7

これは本当に古い質問ですが、初心者のプログラマとしては、これをどうやって行うのか非常に難しい時があったので、次のようなhello-world-styleプログラムをJava他の誰かを助けるために単一のMIDIノートを演奏すること。

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歳で作成された非勤務のコードです。これは驚くほど - 私が見つけた最も有益なものでした。

あなたに最高の運があります。 乾杯。

関連する問題