c语言实现数字简谱作曲程序代码

#include
#include
#include

#define base 440.0 // 基准音 A4
#define max 15 // 最多可以生成的音符数

int main(void)
{
srand((unsigned int) time(NULL)); // 初始化随机数种子

int notes[max] = {0}; // 存储随机生成的音符数组
int duration[max] = {0}; // 存储随机生成的音符时长数组

for (int i = 0; i < max; i++) {
notes[i] = rand() % 8; // 随机生成一个音符
duration[i] = rand() % 3 + 1; // 随机生成一个时长(1~3)
}

printf(“数字简谱:”);
for (int i = 0; i < max; i++) {
switch (notes[i]) {
case 0: printf(“1”); break;
case 1: printf(“2”); break;
case 2: printf(“3”); break;
case 3: printf(“4”); break;
case 4: printf(“5”); break;
case 5: printf(“6”); break;
case 6: printf(“7”); break;
case 7: printf(“0”); break;
}
}
printf("\n");

printf(“音频时长:”);
for (int i = 0; i < max; i++) {
printf("%d “, duration[i]);
}
printf(”\n");

printf(“音频播放:”);
for (int i = 0; i < max; i++) {
double freq = base * pow(2.0, (double) notes[i] / 12.0); // 将数字简谱中的音符转换为频率
int length = duration[i] * 500; // 将时长转换为毫秒
printf("%dHz x %dms, ", (int) freq, length);
}

return 0;
}

你可能感兴趣的:(c语言,开发语言)