Tag: 音乐

我的function或主要问题是什么?

除了我的“播放”function之外,我的所有代码都按照我希望的方式工作。 我正在尝试让程序读取“记录”function创建的.txt文件,然后回放说明。 不幸的是,当用户按下P以播放他们记录的音符时,它只是不断弹出相同的菜单而不是前进到程序的下一步。 任何帮助高度赞赏,它可能是一些小的,但我一直在努力,我正在努力解决自己的问题。 #include “aservelibs/aservelib.h” #include #include #include float mtof(int note, float frequency); FILE play(void); FILE record(void); FILE record2(void); int main() { FILE *textFilePointer; FILE *textFilePointer2; int counter = 0; char user; do { printf(“Press A to Record 1st Melody (A), B to Record 2nd Melody (B)\nP to Play Melodies (P):”); scanf(” %c”, &user); […]

从头开始的WAV文件合成 – C.

最近我在CS 101课堂上看到了一个video讲座,它启发我开始使用C语言中的WAV文件格式。我今天的项目一直是使用简单的数学正弦函数创建声音。 尽管有几个障碍,我的程序现在可以接受几个输入(波的频率,波的幅度,采样率等)并创建包含指定音高的wav文件。 但是,在我的电脑扬声器上播放这些音调时,会发出一种奇怪的,有节奏的砰砰声,这种声音会随着采样率的变化而变化。 在较高的采样率下,弹出声音的频率增加并变成恼人的呜呜声。 奇怪的是,弹出的声音在具有相同文件的不同计算机上是一致的。 下面我将发布用于生成WAV文件的代码。 任何可能导致这种现象的见解都将受到赞赏。 这可能只是我某处的一个愚蠢的错误。 🙂 #include #include #include #include #include #include struct WAVHeader { char ChunkID[4]; uint32_t ChunkSize; char RIFFType[4]; }; struct FormatHeader { char ChunkID[4]; uint32_t ChunkSize; uint16_t CompressionCode; uint16_t Channels; uint32_t SampleRate; uint32_t AvgBytesPerSec; uint16_t BlockAlign; uint16_t SigBitsPerSamp; }; struct DataHeader { char ChunkID[4]; uint32_t ChunkSize; }; void […]