Answers:
这是与perl一线式相同的程序,可在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
以将您的PCM Chiptune传递给管道,如下所示:
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上播放。(您可能需要添加适当的AIFF标头afplay
以接受文件,因为它不会播放原始的PCM转储(或者从字节流出来)该回声应被解释)。)