録音済みのサウンドファイルがなくても、PCまたはMacでクリスマスの曲を再生する方法はありますか?(.mp3や.wavなどのサウンドファイルはありません)
TI 99 / 4Aで、Apple IIのサウンド(音楽に似ている)を再生できたことを覚えています。最近のコンピューターにこれらの機能があるかどうかはわかりません(ビープ音は別として)。
Java の「ジングルベル」(いつものように肥大化)、JFugueを使用し、管状のベルとシロフォン (ポリフォニック!) を使用:
import org.jfugue.*;
public class JingleBells
{
public static void main(String[] args)
{
Player player = new Player();
player.play("T170 "+
" V0 I[XYLOPHONE] C4q C4q C3h C4q C4q C3h C3q B3q A3q G3q C4h "+
" V1 I[TUBULAR_BELLS] E5q E5q E5h E5q E5q E5h E5q G5q C5q D5q Eqh "+
" V2 I[XYLOPHONE] G3h G2q G3q G3h G3h");
}
}
「ビープ音と同じくらい悪い」といえば、 Linuxボックスにビープ音がインストールされている場合は、次のシェルスクリプトを実行できます(ジェレミー・ルーテンの回答と同じ流れで):
#!/bin/sh
beep -f 659 -l 400
sleep 0.05
beep -f 659 -l 400
sleep 0.05
beep -f 659 -l 800
sleep 0.05
beep -f 659 -l 400
sleep 0.05
beep -f 659 -l 400
sleep 0.05
beep -f 659 -l 800
sleep 0.05
beep -f 659 -l 400
sleep 0.05
beep -f 783 -l 400
sleep 0.05
beep -f 523 -l 400
sleep 0.05
beep -f 587 -l 400
sleep 0.05
beep -f 659 -l 800
はい、MIDIを演奏できます。
Midiは、サウンド自体をエンコードするのではなく、音楽の再生に使用される情報をエンコードします。ピッチ、トーン、強さなど。
codeplexにはC#midiツールキットがあります:http://www.codeproject.com/KB/audio-video/MIDIToolkit.aspx
サウンドの品質は、それを再生するために使用されるMIDIデバイスに完全に依存するため、コンピューターごとに品質が異なります。
あなたはクリスマスmidiファイルの素晴らしいリストを見つけることができます:http ://www.lockergnome.com/midi/
Windows Media Playerは、Quick Timeと同様にMIDIファイルを再生できます(私は信じています)。
PLAY "e4 e4 e2 e4 e4 e2 e4 g4 c4 d4 e2"
オンザフライで PCM データを生成するのはどうですか? PCM - Pulse Code Modulated - サウンドは、アナログ サウンド システム全体の電圧サンプルの集まりです。
スピーカーを考えてみてください。音が鳴ると振動します。定規を使って、音の周波数よりも速い速度でスピーカーの位置を測定したらどうなるでしょうか? 波形の画像が得られます。これはまさに PCM データがどのように見えるかであり、各測定値は 8 ビットまたは 16 ビットの整数として保存されます。周波数、たとえば 44khz は 1 秒あたりのサンプル数です。CD は 44khz のサンプリング周波数と 16 ビットのサンプルを使用します。
DirectSound (Windows 上) とOpenAL (クロス プラットフォーム) は、PCM データでいっぱいのデータ バッファーを再生するために使用できる 2 つのライブラリです。データを再生するためではなく、マイクからデータを読み取って音量レベルを取得するために、過去に DirectSound を使用しました。
特定のノートの PCM サンプルを作成したい場合は、周波数を計算して (ここに表があります)、正弦波をバッファーに入れます。異なる周波数を追加するだけでミックスできます (クリッピングを避けるために、合計が最大音量よりも小さいことを確認してください)。
MIDIはオプションですが、PCでは通常、ビープ音とほぼ同じくらい悪い音になります。