sound.c

来自「号作品是一个简单的全屏小游戏」· C语言 代码 · 共 66 行

C
66 行
字号
#include <allegro.h>
#include "sound.h"

void set_patch(int channel, int prog)
{
   unsigned char msg[2];

   msg[0] = 0xC0+channel;
   msg[1] = prog;

   midi_out(msg, 2);
}



void set_pan(int channel, int pan)
{
   unsigned char msg[3];

   msg[0] = 0xB0+channel;
   msg[1] = 10;
   msg[2] = pan / 2;

   midi_out(msg, 3);
}



void note_on(int channel, int pitch, int vel)
{
   unsigned char msg[3];

   msg[0] = 0x90+channel;
   msg[1] = pitch;
   msg[2] = vel / 2;

   midi_out(msg, 3);
}



void note_off(int channel, int pitch)
{
   unsigned char msg[3];

   msg[0] = 0x80+channel;
   msg[1] = pitch;
   msg[2] = 0;

   midi_out(msg, 3);
}


   
void sound(){
    int channel = 0;
    int patch = 116;
    int pitch = 60;
    
    set_patch(channel, patch);
    set_pan(channel, MID(0, 127, 127));
    note_on(channel, pitch, MID(0, 255, 127));
    note_off(channel, pitch);
    rest(140);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?