はじめての Octave
Playrec を使って、リアルタイムに入力音声信号のパワーを計算するコードを書いてみました。なにぶん初めてなので、変なところがあるかも知れませんが。
% $Id$ function[] = sigpow() sample_rate = 44100; [recDevId, recDev] = select_rec_device; if playrec('isInitialised') playrec('reset'); end playrec('init', sample_rate, -1, recDevId) playrec('delPage'); while true page = playrec('rec', sample_rate, 1); playrec('block', page); [recBuffer, recChanList] = playrec('getRec', page); sum = recBuffer' * recBuffer / length(recBuffer); fprintf("pow = %.2f dB\n", log(sum)/log(10)*10); fflush(stdout); end