|
From: | Rick T |
Subject: | Re: Playing an array as sound and recording it's output in parallel |
Date: | Fri, 28 Oct 2011 05:02:54 -1000 |
From: address@hidden [mailto:address@hidden] On Behalf Of Rick T
Sent: Thursday, October 27, 2011 5:17 PM
To: address@hidden
Subject: Playing an array as sound and recording it's output in parallel
Greetings All
I know octave can play arrays as sound but, I was wondering if Octave can do this. I would like to cycle through a range of frequencies and have octave play them using the speaker out on my computer, and have octave also record the sound using the mic input to get the max value. I'm trying to automate a way to have octave cycle through frequencies and record the data received so I can go back latter and look at the resonant frequencies. Can Octave do this type of operation in parallel?
Example:
clear all
t=linspace(0,1,44100);
A = 1; % amplitude
Fs = 44100
for ii=1:1:10
freq=ii; %how many in 1 sec
T = 1/freq; % period of the signal
vertoffset=0.5;
% square
square = mod(t * A / T, A) > A / 2;
square = square - vertoffset;
sound(square,Fs);
end;
Playing sound and recording sound at the same time requires a full-duplex soundcard. This is not the default configuration so from a hardware standpoint your computer may not be able to do this. Next you need a low-latency driver like ASIO, there are others I just can't remember then right now. For code look at MATAA (Mat's Audio Analyzer) for examples of how to input and output sound at the same time along with analysis.
http://sourceforge.net/projects/mataa/
http://www.audioroot.net/index.html?analysis/mataa.html
Hope that helps.
William Krekeler
[Prev in Thread] | Current Thread | [Next in Thread] |