C$B8@8l$K$h$k(B Linux $B%5%&%s%I%W%m%0%i%_%s%0(B
OSS$B%W%m%0%i%_%s%0(B
Linux $B$K$*$$$F!"%5%&%s%I%+!<%I$r@)8f$9$k%I%i%$%P%=%U%H%&%'%"$H$7$F!":G(B
$B$b0lHLE*$J$N$O!"(BKernel $B$KIUB0$9$k(B OSS/Free (Open Sound System Free) $B$G(B
$B$"$k!#$3$N%5%&%s%I%I%i%$%P%=%U%H$r(B C$B8@8l$rMQ$$$F@)8f$9$k%W%m%0%i%`$r:n(B
$B$k$3$H$K$h$C$F!"$4$/4JC1$J2;>pJs=hM}%W%m%0%i%_%s%0$K$D$$$F3X$V!#(B
$B;29MJ88%(B
$B!V(BLinux$B%^%k%A%a%G%#%"%,%$%I!W!"(B
Jeff Tranter $BCx(B $B;37A(B $B9@@8(B $BLu!"%*%i%$%j!<%8%c%Q%s=PHG(B
$BM#0l$NF|K\8l$G=q$+$l$?%5%&%s%I%W%m%0%i%_%s%0$K4X$9$k>pJs$,:\$C$F$$$k=q(B
$B@R!#$3$l$r;29M$K$7$F!"%W%m%0%i%_%s%0$r9T$J$&!#(B
$B1Q8l$G$h$1$l$P!"0J2<$N%j%s%/$,M-1W(B
Programmer's Guide to OSS
$BI,MW$J4pACCN<1(B
C$B8@8l$G%W%m%0%i%`$,AH$a$k$3$H$,I,?\!#(Bwhile, for $B$J$I$N4pK\E*$J@)8fJ8$O(B
$B$b$A$m$s$N$3$H!"CV49%^%/%m!"4X?t!"G[Ns!"%]%$%s%?$K$D$$$FM}2r$7$F$$$kI,(B
$BMW$,$"$k!#$5$i$K!"(B
$B%3%s%T%e!<%?$G2;$r07$&$?$a$N4pACE*$JCN<1(B
$B$r$h$/FI$s$G!"%5%s%W%j%s%0<~GH?t!"NL;R2=%S%C%H?t!"%A%c%s%M%k?t$K$D$$$F(B
$BM}2r$7$F$*$/$3$H!#(B
$B%5%s%W%k%W%m%0%i%`(B
parrot.c p.212 $BNc(B14-2
dsp_info.c p.234 $BNc(B14-6
$B$3$N#2$D$r%3%s%Q%$%k$7!"
$B$=$NB>$N%5%s%W%k%W%m%0%i%`(B
$B2]Bj(B
$B$^$:$O!"(Bdsp_info $B$r
parrot.c $B$r0J2<$N$h$&$KJQ99$;$h!#$=$l$>$l$N%W%m%0%i%`L>$O!"(Bparrot_$BHV9f(B
$B$H$9$k$3$H!#(B
- $BL58B$KO?2;$H:F@8$r7+$jJV$9;EMM$r$d$a$F!"#12s$@$1O?2;$H:F@8$r9T$J$&$h$&$K$;$h(B
- $B:F@8$HF1;~$K%U%!%$%k$K%P%$%J%j7A<0$K$F!V(Bparrot_1.raw$B!W$H$$$&%U%!%$%kL>$K$FJ]B8$9$k$h$&$K$;$h!#(B
- $B%P%$%J%j7A<0$GJ]B8$7$?%G!<%?$r(B
sox -r 22050 -ub parrot_1.2raw parrot_12wav
$B$H$7$F!"(Bwav$B%U%!%$%k$KJQ49$7!"(BWindowsNT$B>e$+$i(BCoolEdit$B$r;H$C$FFI$_9~$s$G$_$h(B
- $B:F@8$HF1;~$K%U%!%$%k$K%"%9%-!<7A<0$K$F!V(Bparrot_4.txt$B!W$H$$$&%U%!%$%kL>$K$FJ]B8$9$k$h$&$K$;$h!#(B
- $B%"%9%-!<7A<0$GJ]B8$5$l$?%G!<%?$r(B gnuplot $B$r;H$C$F2hLL$K%W%m%C%H$;$h(B
- $BO?2;;~$N%5%s%W%j%s%0<~GH?t$r(B 22050Hz $B$K$;$h(B
- $BO?2;;~4V$r(B5$BIC$KJQ99$K$;$h(B
- $BO?2;;~4V$r%3%^%s%I%i%$%s$+$iIC$NC10L$G;XDj$7!"(Bbuf $B$r(Bmalloc$B$r;H$C$FF0E*$K3NJ]$;$h(B
- $BO?2;;~$K%9%F%l%*O?2;$9$k$h$&$KJQ99$;$h(B
- $B2DG=$J$iO?2;;~$K(B16bit$BNL;R2=$r9T$J$&$h$&$KJQ99$;$h(B
- $B:F@8;~$N%5%s%W%j%s%0<~GH?t$rO?2;;~$N(B1/2$B$K$9$k$H!"$I$N$h$&$J2;$,:F@8$5$l$k$+!)(B
- $BO?2;;~$N%5%s%W%j%s%0<~GH?t$r(B22050Hz$B$H$7!":F@8;~$N%5%s%W%j%s%0<~GH?t$r(B32000Hz$B$H$9$k$H!"$I$N$h$&$J2;$,:F@8$5$l$k$+!)(B
- $B%9%F%l%*O?2;$7$?%G!<%?$r:81&%A%c%s%M%k$rB-$79g$o$;$F!"#1%A%c%s%M%k$K$7!"%b%N%i%k$G:F@8$9$k$h$&$KJQ99$;$h!#$^$?!"?6I}$,%*!<%P!<%U%m!<$7$J$$;EAH$_$r2?$+9M$($h!#(B
- $BO?2;$7$?%G!<%?$r0l$DCV$-$K4V0z$-$7$F:F@8$9$k$H!"$I$N$h$&$J2;$,:F@8$5$l$k$+!)(B
- $B%G!<%?$N4V0z$-$r9T$J$&<!$N$h$&$J;EMM$N4X?t$r:n@.$7!">e5-%W%m%0%i%`$r=q$-49$($h!#(B
void thin_out(unsigned char inbuf[], unsigned char outbuf[], int n, int rate)
/*
inbuf[] : $BF~NO?.9f(B (8bit)
outbuf[] : $B=PNO?.9f(B (8bit)
n : $BF~NO?.9f$ND9$5(B
rate : $B4V0z$-?t(B (2$B$@$H(B2$B$D$K(B1$B$D$r4V0z$/(B)
*/
- $BO?2;$7$?%G!<%?$K$D$-!"F1$8%G!<%?$r#1$D$E$DFbA^$7$F!"G\$ND9$5$K$9$k$H!"$I$N$h$&$J2;$,:F@8$5$l$k$+!)(B
- $B%G!<%?$NFbA^$r9T$J$&<!$N$h$&$J;EMM$N4X?t$r:n@.$7!">e5-%W%m%0%i%`$r=q$-49$($h!#(B
void interp(unsigned char inbuf[], unsigned char outbuf[], int n, int rate)
/*
inbuf[] : $BF~NO?.9f(B (8bit)
outbuf[] : $B=PNO?.9f(B (8bit)
n : $BF~NO?.9f$ND9$5(B
rate : $BFbA^?t(B (2$B$@$H(B1$B%G!<%?$K$D$-(B1$B$DF1$8%G!<%?$rFbA^!"(B3$B$@$H(B2$B$DF1$8%G!<%?$rFbA^(B)
*/
- $BFbA^$9$k%G!<%?$,!"A08e$N?6I}CM$rD>@~Jd4V$7$?CM$H$J$k$h$&$K>e5-%W%m%0%i%`$r=q$-49$($h!#:F@8$5$l$k2;$N2;e5-%W%m%0%i%`$H$I$N$h$&$K0[$J$k$+!)(B
- $BO?2;$r$d$a$F!"(B1000Hz$B$N=c2;$r(B5$BIC4V9g@.$7!"$=$l$r:F@8$9$k$h$&$K%W%m%0%i%`$rJQ99$;$h!#(B
- $B=c2;$N<~GH?t$H?6I}CM$r%3%^%s%I%i%$%s$h$jM?$($k$h$&$K$;$h(B
- $B=c2;$r9g@.$9$k4X?t$r0J2<$N;EMM$G:n@.$7!"$=$N4X?t$r;H$&$h$&%W%m%0%i%`$r=q$-49$($h(B
void sine_tone(unsigned char outbuf[], float f, int amp, int n)
/*
outbuf[] : $B=c2;=PNO?.9f(B (8bit)
f : $B<~GH?t(B [Hz]
amp : $B?6I}(B
n : $B=PNO?.9f$ND9$5(B
*/
- $B4X?t(B sine_tone $B$rMxMQ$7$F!"4pK\2;$+$iBh(B10$BG\2;$^$G$rEy?6I}$G4^$`D4(B
$BGHJ#9g2;$r9g@.$7$F:F@8$;$h!#?6I}$,%*!<%P!<%U%m!<$7$J$$;EAH$_$r2?$+9M$((B
$B$h(B
[email protected]