七行プログラミング part5

このエントリーをはてなブックマークに追加
42デフォルトの名無しさん
#include <windows.h>
double sin();char b[99];long*h,w[]={65537,8000,8000,524289,20},d[]={b,99,0,0,0,
1,0,0};WINAPI f(t,u,x,y,z){waveOutReset(h);waveOutWrite(h,d,32);}main(c,v)char
**v;{if(c>1){for(c=99;c--;b[c]=sin(c*0.7854)*64);if((c=atoi(v[1]))>0){waveOutO\
pen(&h,-1,w,0,0,0);waveOutPrepareHeader(h,d,32);for(c=timeSetEvent(60000/c,1,f,
timeBeginPeriod(1),1);!kbhit();Sleep(1));timeKillEvent(c);waveOutReset(h);wave\
OutUnprepareHeader(h,d,32);waveOutClose(h);}}}

Win32用簡易メトロノーム。コマンドライン引数でBPMを指定。何かキーを押せば終了します。
マルチメディアタイマーを利用しているのでwinmm.libとのリンクが必要。