回答:
これは、perl one-linerと同じプログラムで、Mac、Linux、Windowsで動作(テスト済み)しています
perl -e 'for($i=0;;$i++){
print pack("n", ((($i*($i>>8|$i>>9)&46&$i>>8))^($i&$i>>13|$i>>6)));
}' | ./play -c 1 -b 8 -e unsigned -t raw -r 8k -
「./play」コマンドは、この記事ですでに説明した「sox」ユーティリティです。
play -c 1 -b 8 -e unsigned -t raw -r 8k -
このトピックが古いことは知っていますが、最近の実用的なソリューションを見つけました。SOXはstdoutからの入力をサポートしなくなったため、現在は代替機能がありmplayer
ます。あなたはそれを使用してインストールする必要がありますHombrew.shでbrew install mplayer
。
その後、次のものに置き換えることができますaplay
。
mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -
rate=8000
カスタム周波数で変更してください。
~/.bashrc
aplayのエイリアスを作成して、PCMチップチューンを次のようにパイプすることができます。
alias aplay="mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -"
これが今日のmacOs Sierra 10.12.5でテストされ、役立つことを願っています。
aplay
Linuxでのみ利用可能なALSAが必要です。そのバイトストリームをファイルに出力してafplay
、OS X で試してみることができます(afplay
ファイルを受け入れるために適切なAIFFヘッダーを追加する必要があります。これは、生のPCMダンプを再生しないためです(ただし、そのエコーを解釈する必要があります)。
私はmpvを使用しました。オプションはmplayerに似ていますが、mprawでは--rawaudioスイッチはサポートされなくなりました。代わりにこれを行います:
echo 'c_program' | gcc and crap | mpv --cache=1024 --quiet \
--demuxer=rawaudio \
--demuxer-rawaudio-format=u8 \
--demuxer-rawaudio-channels=1 \
--demuxer-rawaudio-rate=8000 -