代码之家  ›  专栏  ›  技术社区  ›  user21826

播放圣诞歌曲的邮政编码[关闭]

  •  9
  • user21826  · 技术社区  · 16 年前

    有没有一种方法可以在PC或Mac上播放圣诞歌曲而不必预先录制声音文件(没有.mp3或.wav或任何声音文件)

    我记得在我的ti99/4A和appleii上可以播放声音(类似于音乐)。不确定现代计算机是否有这些能力(除了

    6 回复  |  直到 16 年前
        1
  •  7
  •   friol    16 年前

    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");
        }
    }
    
        2
  •  6
  •   Adam Bellaire    16 年前

    说到“像嘟嘟声一样糟糕”,如果你有 beep

    #!/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
    
        3
  •  3
  •   Stever B    16 年前

    codeplex上有一个C#midi工具包,位于: http://www.codeproject.com/KB/audio-video/MIDIToolkit.aspx

    声音的质量完全取决于用来播放它的midi设备,因此每台计算机的质量会有所不同。

    您可以在以下网址找到圣诞midi文件的列表: http://www.lockergnome.com/midi/

    Windows Media Player可以快速播放midi文件(我相信)。

        4
  •  3
  •   Paige Ruten    16 年前
    PLAY "e4 e4 e2 e4 e4 e2 e4 g4 c4 d4 e2"
    
        5
  •  2
  •   Chad Okere    16 年前

    动态生成PCM数据怎么样?脉冲编码调制声音只是一个模拟声音系统中的电压样本。

    DirectSound (在窗口上)和 OpenAL (跨平台)有两个库可以用来播放充满PCM数据的数据缓冲区。我以前用过DirectSound,不是用来播放数据,而是从麦克风读取数据来获得音量。

    如果您想为某个音符创建一个PCM样本,您只需计算频率(这里有一个 table ),然后在你的缓冲器里放一个正弦波。只需将不同的频率相加,就可以将它们混合在一起(确保总和小于最大音量,以避免剪辑)

        6
  •  1
  •   MusiGenesis    16 年前