2013-04-20 7 views
11

デルファイアプリケーションをemuleサウンドにすることができるコマンドがありますか?ここで基本的な音程と音程を選択できますか?純粋な正弦トーンを生成するためにDelphiでサウンドノートを作成するには?

+2

Windows.Beep(Frequenz、Duration_in_ms)のようなもの。 ? – bummi

+5

誰が投票しましたか?それはちょっとひどいです... – Shambhala

+0

ビープ音を試してみると、システムユニットからビープ音が鳴っているので、パラメータはありません。適切なトーン機能を得るには、winApi.Windows.beep関数を指定する必要があります。君たちありがとう! – PSyLoCKe

答えて

15

、あなたは1000ミリ秒の間、400 Hzの純粋な正弦トーンが鳴ります

Windows.Beep(400, 1000) 

を使用することができます。

実際の楽器(ピアノ、ギター、またはその他のオプション(125)のいずれか)を演奏したい場合は、MIDIを使用できます。単にあなたがMIDIシステムを初期化した後、あなたは

NoteOn(50, 127); 
Sleep(500); 
SetInstrument(60); 
NoteOn(60, 127); 
Sleep(500); 
NoteOff(60, 127); 
SetInstrument(80); 
NoteOn(70, 127); 
Sleep(500); 
NoteOff(70, 127); 
SetInstrument(90); 
NoteOn(80, 127); 
Sleep(500); 
NoteOff(80, 127); 
SetInstrument(100); 
NoteOn(90, 127); 
Sleep(500); 
NoteOff(90, 127); 
SetInstrument(12); 
NoteOn(40, 127); 
Sleep(1000); 
NoteOff(40, 127); 

MIDIプログラミングはそれほど過小評価で試すことができMMSystemユニットを使用して

var 
    mo: HMIDIOUT; 

const 
    MIDI_NOTE_ON = $90; 
    MIDI_NOTE_OFF = $80; 
    MIDI_CHANGE_INSTRUMENT = $C0; 

function MIDIEncodeMessage(Msg, Param1, Param2: byte): integer; 
begin 
    result := Msg + (Param1 shl 8) + (Param2 shl 16); 
end; 

procedure NoteOn(NewNote, NewIntensity: byte); 
begin 
    midiOutShortMsg(mo, MIDIEncodeMessage(MIDI_NOTE_ON, NewNote, NewIntensity)); 
end; 

procedure NoteOff(NewNote, NewIntensity: byte); 
begin 
    midiOutShortMsg(mo, MIDIEncodeMessage(MIDI_NOTE_OFF, NewNote, NewIntensity)); 
end; 

procedure SetInstrument(NewInstrument: byte); 
begin 
    midiOutShortMsg(mo, MIDIEncodeMessage(MIDI_CHANGE_INSTRUMENT, NewInstrument, 0)); 
end; 

procedure InitMIDI; 
begin 
    midiOutOpen(@mo, 0, 0, 0, CALLBACK_NULL); 
    midiOutShortMsg(mo, MIDIEncodeMessage(MIDI_CHANGE_INSTRUMENT, 0, 0)); 
end; 

を行います!

​​

+0

* MIDIプログラミングは非常に過小評価されています!*はい、そのような音を聞きたいからです:-) [+1 Windows.Beep] – TLama

+1

@traama:あなたは本当ですか?私は美しいと思うし、美しくて面白い音を作るのはとても簡単です。 [MIDIファイルにはスペースがありません!] –

+1

はい、私は生きているDJだったので(CDを再生するだけでは遠い)、私の期待はMIDIとは異なります;-) – TLama

関連する問題