有没有办法在没有预先录制的声音文件的情况下在PC或Mac上播放圣诞曲调? (没有.mp3或.wav或其他声音文件)
我记得我的TI 99 / 4A和Apple II声音(类似音乐)可以播放。不确定现代计算机是否具备这些功能(除了哔声)。
答案 0 :(得分:7)
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");
}
}
答案 1 :(得分:6)
说到“像嘟嘟声一样糟糕”,如果你的linux盒子上安装了beep,你可以运行以下shell脚本(与Jeremy Ruten的回答一样):
#!/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
答案 2 :(得分:3)
是的,你可以玩midi。
Midi本身不编码声音,它编码用于播放音乐的信息;音调,音调,强度等
在Codeplex上有一个C#midi工具包:http://www.codeproject.com/KB/audio-video/MIDIToolkit.aspx
声音的质量完全取决于用于播放它的midi设备,因此从计算机到计算机的质量会有所不同。
您可以在http://www.lockergnome.com/midi/
找到一个很好的圣诞节midi文件列表Windows Media Player可以像Quick Time一样播放midi文件(我相信)。
答案 3 :(得分:3)
PLAY "e4 e4 e2 e4 e4 e2 e4 g4 c4 d4 e2"
答案 4 :(得分:2)
如何快速生成PCM数据? PCM - 脉冲编码调制 - 声音只是模拟声音系统中的一堆电压样本。
想一个发言者。当声音播放时,它会振动。如果你拿一把尺子并以比声音频率更快的速度测量扬声器的位置怎么办?你会得到一个波形的图片。这正是PCM数据的样子,每个测量值都存储为8位或16位int。频率,例如44khz是每秒的样本数。 CD使用44khz采样频率和16位采样。
DirectSound(在Windows上)和OpenAL(跨平台)是两个库,可用于播放充满PCM数据的数据库。我过去使用过DirectSound,不是为了播放数据,而是从麦克风读取数据以获得音量。
如果您想为某个音符创建PCM样本,只需计算频率(这里是table),然后在缓冲区中放入正弦波。您可以通过添加它们来混合不同的频率(确保总和小于最大音量,以避免削波)
答案 5 :(得分:1)
MIDI是一个选项,虽然在PC上它通常听起来几乎和哔声一样糟糕。