Kai Vehmanen | 4 Aug 2009 21:49

Re: Ecasound git freezes

Hi,

On Sat, 1 Aug 2009, Julien Claassen wrote:

>   I just pulled ecasound two days ago and it freezed my computer. I reverted
> back to 2.6.0 release. Unfortunitely Ican't tell you what happened, because
> the system was totally locked. So no braille-display movement. I just started
> up with jack, something like;
> ecasound -c -i in.wav -o jack_alsa

thanks for reporting this. The current git has a few changes to core 
engine that could in theory trigger lockups with real-time scheduling. 
Especially the new OSC code needed some "infrastructure updates" that 
could in theory affect other use-cases as well. I've also started using a 
few new kernel/system interfaces (e.g. recursive pthread mutexes) that can 
expose ecasound to bug/features in the implementation of these interfaces. 
But all in all the changes are fairly conservative still.

Hmm, but you had a lockup and that's indeed worrying. In any case a lot of 
testing is still needed before the next release.

A good way to debug this (and always a good practise when running 
development code with real-time privileges), is to always run das_watchdog 
(or similar app) on the background:

http://www.notam02.no/arkiv/src/
http://lists.linuxaudio.org/pipermail/linux-audio-announce/2007-January/000909.html

It will downgrade any runaways processes back to SCHED_OTHER, and send a 
note (via X popup _and_ entry to syslog). Most distros have in readily 
(Continue reading)

Julien Claassen | 5 Aug 2009 08:49
Picon

Re: Ecasound git freezes

Thanks, Kai!
   This long explanation was certainly helpful in specific points and besides 
that interesting. I'll get the watchdog and see if I can run it properly. :-)
   Kindest regards
          Julien

--------
Music was my first love and it will be my last (John Miles)

======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ecasound-list mailing list
Ecasound-list <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Markus Luttenberger | 12 Aug 2009 15:00
Favicon

Multitrack Recording via Control Interface

Hello!

I recently discovered Ecasound as a handy tool for my problem. I need to 
record sound (voice only) from different sound cards on one computer. 
This command line does the job:

ecasound -a:1 -i alsahw,1,0 -o ./test1.wav -a:2 -i alsahw,2,0 -o ./test2.wav

Now I wanted to develop a small C++ user interface around it but my 
commands don't work. Either the program does nothing or it hangs. This 
is what I've got so far:

 >>>>> SNIP >>>>>

...
int sources = 3;  // user input
...

//--------------------------------------------------------------------------
// construct ECA control interface and configure it for recording
ECA_CONTROL_INTERFACE e;
const string current_time(getCurrentTime());

e.command("cs-add recording_chainsetup");

for (int count = 1; count <= sources; count++)
{
     const char source_no = '0' + count;
     // the command chain
     e.command("c-add " + source_no);
(Continue reading)

Markus Luttenberger | 12 Aug 2009 16:08
Favicon

Re: Multitrack Recording via Control Interface

Hello!

Ok, I've fixed some stuff by myself but the main problem still exists. 
Now I know that my chainsetup is somehow invalid thus it cannot be 
connected - but no idea what's wrong.

This is the current code:

>>>>> SNIP >>>>>

...
int sources = 3;  // user input
...

//--------------------------------------------------------------------------
// construct ECA control interface and configure it for recording
ECA_CONTROL_INTERFACE e;
const string current_time(getCurrentTime());

e.command("cs-add recording_chainsetup");

for (int count = 1; count <= sources; count++)
{
     const char source_no = '0' + count;
     string file_name = "./" + current_time + "-s" + source_no + ".wav";
     // the command chain
     e.command("c-add chain" + source_no);
     // the HW input source
     e.command("ai-add alsahw," + source_no + ',' + '0');
     // output file name
(Continue reading)

Joel Roth | 13 Aug 2009 04:04
Picon
Favicon

Re: Multitrack Recording via Control Interface

On Wed, Aug 12, 2009 at 04:08:10PM +0200, Markus Luttenberger wrote:
> Hello!
> 
> 
> Ok, I've fixed some stuff by myself but the main problem still exists. 
> Now I know that my chainsetup is somehow invalid thus it cannot be 
> connected - but no idea what's wrong.
> 
> This is the current code:
> 
> >>>>> SNIP >>>>>
> 
> ...
> int sources = 3;  // user input
> ...
> 
> //--------------------------------------------------------------------------
> // construct ECA control interface and configure it for recording
> ECA_CONTROL_INTERFACE e;
> const string current_time(getCurrentTime());
> 
> e.command("cs-add recording_chainsetup");
> 
> for (int count = 1; count <= sources; count++)
> {
>      const char source_no = '0' + count;
>      string file_name = "./" + current_time + "-s" + source_no + ".wav";
>      // the command chain
>      e.command("c-add chain" + source_no);
>      // the HW input source
(Continue reading)

Markus Luttenberger | 13 Aug 2009 14:14
Favicon

Re: Multitrack Recording via Control Interface

Hey!

I've fixed the code. Apparently the chain setup wasn't that wrong, it 
was more a fault of my bad C++ skill...

>>>>>>> SNIP >>>>>
>> ...
>> int sources = 3;  // user input
>> ...
>>
>> //--------------------------------------------------------------------------
>> // construct ECA control interface and configure it for recording
>> ECA_CONTROL_INTERFACE e;
>> const string current_time(getCurrentTime());
>>
>> e.command("cs-add recording_chainsetup");
>>
>> for (int count = 1; count <= sources; count++)
>> {
>>      const char source_no = '0' + count;
>>      string file_name = "./" + current_time + "-s" + source_no + ".wav";
>>      // the command chain
>>      e.command("c-add chain" + source_no);
>>      // the HW input source
>>      e.command("ai-add alsahw," + source_no + ',' + '0');

The last two lines could never have worked in C++! This is no string 
concatenation, this is pointer movement  :/ ...

greetings..
(Continue reading)

Kai Vehmanen | 13 Aug 2009 21:46

Re: Multitrack Recording via Control Interface

Hi,

On Wed, 12 Aug 2009, Markus Luttenberger wrote:

> Now I wanted to develop a small C++ user interface around it but my
> commands don't work. Either the program does nothing or it hangs. This
> is what I've got so far:

you already solved the actual problem, but for future reference, there are 
a couple of tool/tricks available to debug ECI problems:

- ECASOUND_LOGFILE is useful
     - see e.g. ecasound(1) man page and for instance
       http://www.eca.cx/ecasound-list/2006/06/0003.html
- the "int-log-history" ECI command, inserted at an appropriate
   place can reveal what is going on
- more in the ECI programmer's guide:
     - http://www.eca.cx/ecasound/Documentation/programmers_guide/html_ecidoc/eci_doc.html#htoc46

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ecasound-list mailing list
Ecasound-list <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecasound-list

(Continue reading)

kokolisso | 21 Aug 2009 22:05
Picon
Favicon

Problem with sound rates


Hello,

I want amplify some wav files, and ecasound amplify ok but seems that save
as 16 bit"s16_le, channels 2, srate 44100, interleaved", and I would like
save as 24bit "s24_le, channels 2, srate 44100, interleaved"

What can I do? I use this command line and fails

ecasound -i  wav/"$filename".wav -ea:100  -o  level02/"$filename".wav

Also this fails too:
ecasound -i aa1.wav -ea:100  -o aa11.wav -f:s24_le,2,44100

And these fails too:

ecasound -i aa1.wav -ea:100  -o aa11.wav,s24_le,2,44100

What can I do more?

Thanks
Kokolisso

********************************************************************************
*        ecasound v2.4.6.1 (C) 1997-2007 Kai Vehmanen and others    
********************************************************************************
- [ Session created ]
----------------------------------------------------------
- [ Chainsetup created (cmdline) ]
---------------------------------------------
(Continue reading)

Julien Claassen | 22 Aug 2009 01:13
Picon

Re: Problem with sound rates

Hey!
   I think this might solve it:
ecasound -f:input_bitrate,2,44100 -i input_file -ea:1000 f:s24_le,2,44100 -o 
output_file
   Should do the trick. If not, you might pipe to sndfile-convert or sox, which 
both can do bitrate conversion, rather fast.
   Hope that helps!
   Kindest regards
           Julien

--------
Music was my first love and it will be my last (John Miles)

======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ecasound-list mailing list
Ecasound-list <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecasound-list

(Continue reading)

peter clarke | 22 Aug 2009 18:16
Picon

Getting back parameters from ecasound in the Ecasound Control Interface

Is there any way to get back the results of audio analysis
calculations from ecasound when using the 'ecasound control
interface'?

Specifically, I'm trying to normalize some audio files within a Python
program.  The only way I can find is this inelegant multistep
approach:
1. run ecasound -ev as an OS command within the program, capture the
output, and use grep to extract the line containing the calculated
normalization parameter.
2. run ecasound -ea, again as an OS command (for convenience).

Seems cumbersome, and also risky in that the program would not work if
the output of ecasound changed and grep could not find the required
line.

Of course I can add the -ev  operator to the chain using cop-add, but
then I don't know how to get back the calculated normalization
parameter.

Peter Clarke

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ecasound-list mailing list
Ecasound-list <at> lists.sourceforge.net
(Continue reading)


Gmane