/*******************************/ /* キーボードピアノ(Beep音) */ /*******************************/ #include #include #include #include void main( ) { int n,nO=-1; // キー番号 int Hz; // Beep音周波数 system("cls"); // 画面消去 printf(" \n"); printf(" |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n"); printf(" | キーボードピアノ(Beep音) |\n"); printf(" | ※Shiftキーを押すと1オクターブ上がります |\n"); printf(" | ※長押しはできません |\n"); printf(" | |\n"); printf(" *:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*\n"); printf(" | | \n"); printf(" |----,----,----,----,----,----,----,----,----,----,----,----| \n"); printf(" |ソ#|ラ#| |ド#|レ#| |ファ#|ソ#|ラ#| |ド#|レ#| \n"); printf(" | A | S | D | F | G | H | J | K | L | ; | : | ] | \n"); printf(" '----'----'----'----'----'----'----'----'----'----'----'----' \n"); printf(" | ラ | シ | ド | レ | ミ | ファ | ソ | ラ | シ | ド | レ | \n"); printf(" | Z | X | C | V | B | N | M | , | . | / | \ | \n"); printf(" '----'----'----'----'----'----'----'----'----'----'----' \n"); while ( 1 ) { if ( kbhit( )==0 ) // キーが押されてない { n=-1; continue; } // キー番号を無効にする nO=n; // 前のキー番号保存 n=getch( ); // 1文字読む(キーボードバッファクリア) if ( n==27 ) break; // ESCで終了 if ( n==nO ) continue; // 同じキーを押したまま switch (n) { case 97: Hz= 208; break; // a ソ# case 115: Hz= 233; break; // s ラ# case 102: Hz= 277; break; // f ド# case 103: Hz= 311; break; // g レ# case 106: Hz= 370; break; // j ファ# case 107: Hz= 415; break; // k ソ# case 108: Hz= 466; break; // l ラ# case 58: Hz= 554; break; // ; ド# case 93: Hz= 622; break; // ] レ# case 122: Hz= 220; break; // z ラ case 120: Hz= 247; break; // x シ case 99: Hz= 262; break; // c ド case 118: Hz= 294; break; // v レ case 98: Hz= 330; break; // b ミ case 110: Hz= 349; break; // n ファ case 109: Hz= 392; break; // m ソ case 44: Hz= 440; break; // , ラ case 46: Hz= 494; break; // . シ case 47: Hz= 523; break; // / ド case 92: Hz= 587; break; // \ レ //--Shift-- case 65: Hz= 415; break; // A ソ# case 83: Hz= 466; break; // S ラ# case 70: Hz= 554; break; // F ド# case 71: Hz= 622; break; // G レ# case 72: Hz= 740; break; // J ファ# case 74: Hz= 831; break; // K ソ# case 76: Hz= 932; break; // L ラ# case 43: Hz=1109; break; // + ド# case 125: Hz=1245; break; // ] レ# case 90: Hz= 440; break; // Z ラ case 88: Hz= 494; break; // X シ case 67: Hz= 523; break; // C ド case 86: Hz= 587; break; // V レ case 66: Hz= 659; break; // B ミ case 78: Hz= 698; break; // N ファ case 77: Hz= 784; break; // M ソ case 60: Hz= 880; break; // < ラ case 62: Hz= 988; break; // > シ case 63: Hz=1047; break; // ? ド case 95: Hz=1175; break; // _ レ default : Hz= 0; } Beep(Hz,200); // 200ミリ秒鳴らす } }