help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Playing an array as sound and recording it's output in parallel


From: Rick T
Subject: Re: Playing an array as sound and recording it's output in parallel
Date: Fri, 28 Oct 2011 14:32:29 -1000

Thanks Fredrik 

I downloaded and installed your package I'm getting an error message 
"Unable to set the PCM access type: Invalid argument
>>>error: Unable to set hardware parameters. Bailing out!"  This is the test code I tried it with

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);
     aplay(square,Fs,'default',[512 2])
end;

I also was trying to test your aplayrec function but got a little confused with the [Y] variable in the help it says 
Loadable Function:  [Y] =
          aplayrec(A,rec_channels,fs,dev_name,hw_pars)
APLAYREC Plays audio data from the input matrix A, on the PCM
     device given by dev_name, and records audio data to the output
     matrix Y

The [Y] variable looks like it's just going to record the 'A' variable/matrix.  
I'm trying to play a matrix/array on the output of a channel 
and record the input from the mic channel into an array/matrix.

thanks

On Fri, Oct 28, 2011 at 6:44 AM, Fredrik Lingvall <address@hidden> wrote:
Rick,

You can try two packages found here:

http://folk.uio.no/fl/aaudio.shtml

One is using the ALSA API  and one is using JACK. Both can do full duplex. At least on the RME cards that  I used when writing the code.

HTH,

/Fredrik


On 10/28/11 17:02, Rick T wrote:
Wow thanks I do have a full duplex sound card and I'm using ubuntu 10.04 64bit.  This looks like what I'm looking for hopefully it will allow me to create my own test signals to use.
Thanks again

On Fri, Oct 28, 2011 at 3:21 AM, William Krekeler <address@hidden> wrote:

 

 

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

 

 






_______________________________________________
Help-octave mailing list
address@hidden
https://mailman.cae.wisc.edu/listinfo/help-octave




--


reply via email to

[Prev in Thread] Current Thread [Next in Thread]