pre4 for 2.5.0

View: New views
7 Messages — Rating Filter:   Alert me  

pre4 for 2.5.0

by Kai Vehmanen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

ok, usually at this point I write that "this is most probably the last
prerelease for 2.5.0", but well, so far it has not been the case. :)
So ta-daa, here's pre4:

http://ecasound.seul.org/download/snapshots/ecasound-2.4.7pre4_2.5.0.tar.gz

This contains couple of important bugfixes, some nontrivial changes to
signal handling, and one new feature. The new feature is probably easiest
to explain with an example:

sh> ecasound -i foo.wav -o jack_alsa -c -E "setpos 50 ; start"

... that starts with a simple setup, seeks the whole chainsetup to pos
50sec and then starts processing. So pretty simple, but potentially very
useful. Here's the manpage entry:

dit(-E "cmd1 [[args] ; cmd2 args ; ... ; cmdN]")
Execute a set of Ecasound Interactive mode (EIAM) commands
at launch. These commands are executed immediately after
ecasound is started. If the command line contains sufficient
options to create a valid chainsetup that will be executed,
the launch commands are executed after the other command
line options are parsed, but before the processing engine
is started. Note that this command is a feature of
the ecasound frontend binary and not supported by
the library backend. This means that other clients may
not support the '-E' option, and also that the launch
commands are not saved as part of chainsetup or session
state.

--


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: pre4 for 2.5.0

by linuxmedia4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Any processing of time ('-t' 'select' 'file.wav') with alsa... stops
short...

================================
================================

I created a 4 second sample...

Played back with jack...
ecasound -c -i:4sec.wav -o:jack_alsa
 > t
(sounds like 4 seconds of playing time)
 > getpos
4.005

Played back with alsa...
ecasound -c -i:4sec.wav -o:alsa,hw:1
 > t
(plays... 1,2,3.xxx)
(not a full four seconds)
 > getpos
4.032

================================
================================

Same thing with alsa and -t with a long file...

ecasound -c -i:Count.wav -o:alsa,hw:1
 > -t:4
 > t
(1,2,3.xxx)
(3 and a fraction of a second, definatly not four second)
 > getpos
4.011

I tried it with alsa and different processing times and it always stops
short.

================================
================================

weird... processing times are right... just can't hear it at part of the
end (alsa only)


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: pre4 for 2.5.0

by linuxmedia4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Either I don't know how to correctly use  'c-bypass', or it doesn't work...

==================================

With alsa...

ecasound -c -a:1 -i:Count.wav -a:2 -i:Play.wav -a:1,2 -o:alsa,hw:1
 > c-select 1
 > c-selected
1
 > c-bypass
 > t
(Both chains play)

==================================

With jack...

ecasound -c -a:1 -i:Count.wav -a:2 -i:Play.wav -a:1,2 -o:jack_alsa
 > c-select 1
 > c-selected
1
 > c-bypass
 > t
(Both chains play)

==================================

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: pre4 for 2.5.0

by Kai Vehmanen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

On Fri, 11 Jul 2008, Linux Media wrote:

> Any processing of time ('-t' 'select' 'file.wav') with alsa... stops
> short...

now this is actually an age-old "feature" of ecasound. I'm not using the
blocking variant of stopping ALSA devices (snd_pcm_drain()), but instead
just stop devices immediately (snd_pcm_drop()). This might result in some
samples written to the sound device not to be played out.

In many cases dropping is what you want:
   - if process is terminated and/or chainsetup is disconnected, you
     really want to stop all activity and free any used resources
     as soon as possible
   - if you are performing seeks (which involves stopping real-time devices
     and then restarting them), you don't want to wait until old samples
     have been played but instead start playing samples from the new
     position as soon as possible
   - .. and so on ..

Then you have cases where you'ld like to play every last sample out:
   - playing out a single file without any seeks (processing is terminated
     because of end-of-stream)

So ideally these would be treated differently, but in practise as there
are so many possible use-scenarios (and combinations of them), the current
implementation plays safe and just drops samples in all cases. To support
the above two scenarios, I'd have to reliably detect which scenario is in
question (and not always an obvious thing, for instance, what if you first
start to flush out samples due to end-of-stream and then immediately
after, you get a seek request to a new position and ecasound should cease
the drain operation).

On code level, adding support for the two cases would require touching
many core engine parts (basicly adding a ALSA-type separate "draining"
state to the engine between "running" add "finished"). And modifying the
engine always leads a huge testing effort, as you need make sure there are
no regressions. So far I've avoided starting this work, but, but never say
never...

PS And on a motivational point of view, it doesn't help that this is
    a complete non-issue with JACK... ;)

--

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: pre4 for 2.5.0

by Kai Vehmanen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

On Fri, 11 Jul 2008, Linux Media wrote:

> Either I don't know how to correctly use  'c-bypass', or it doesn't work...

I think you are looking for "c-muting". "c-bypass" toggles signal
processing bypass, i.e. when enabled, all of the chain operators are
skipped in the given chain. I updated the ecasound-iam(1) man page (the
description could have been clearer).

--

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: pre4 for 2.5.0

by linuxmedia4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>> Any processing of time ('-t' 'select' 'file.wav') with alsa... stops
>> short...
>
> now this is actually an age-old "feature" of ecasound. I'm not using the
> blocking variant of stopping ALSA devices (snd_pcm_drain()), but instead
> just stop devices immediately (snd_pcm_drop()). This might result in
> some samples written to the sound device not to be played out.
[CUT]
> PS And on a motivational point of view, it doesn't help that this is
>    a complete non-issue with JACK... ;)

Yeah, I almost didn't mention it because I never run alsa, but then
realized it may be something the eca-alsa people would want to know.

I don't see any reason to run eca-alsa. Jack is low latency... can sync
with other programs... use things like QJackCtl as clock... sync to a
program that has a flexible metronome. There's even the shuttle written
for jack that you can use with eca-jack (I haven't tried it though).

I'm sure people have good reasons for running eca-alsa. Maybe I just not
aware of the reasons.

Thanks,
Rocco

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: pre4 for 2.5.0

by linuxmedia4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I'm trying to 'Loop In Place' (with jack). Like this...

1-2-3-4-5-6-7-8
     | loop |

As opposed to...

1-2-3-4-5-6-7-8-9-10-11
     | loop, loop, loop

========================================
========================================

ecasound -c -i:Count.wav -o:jack_alsa
 > -t:4
 > -tl
 > t

Plays for about 4 sec and then audio stops but jack keep running.
Although, in QJackCtl, I see the numbers increasing, but looks like
slower than a second apart.

(No error messages)

Starting at 10 sec and ending at 30 sec (on QJackCtl clock), I did the
following every time it flipped a second digit...

ecasound ('h' for help)> getpos
0.000
ecasound ('h' for help)> getpos
11.189
ecasound ('h' for help)> getpos
11.992
ecasound ('h' for help)> getpos
0.000
ecasound ('h' for help)> getpos
14.045
ecasound ('h' for help)> getpos
0.000
ecasound ('h' for help)> getpos
16.165
ecasound ('h' for help)> getpos
17.032
ecasound ('h' for help)> getpos
18.352
ecasound ('h' for help)> getpos
19.245
ecasound ('h' for help)> getpos
20.149
ecasound ('h' for help)> getpos
21.064
ecasound ('h' for help)> getpos
21.989
ecasound ('h' for help)> getpos
0.000
ecasound ('h' for help)> getpos
24.347
ecasound ('h' for help)> getpos
25.312
ecasound ('h' for help)> getpos
26.285
ecasound ('h' for help)> getpos
27.269
ecasound ('h' for help)> getpos
28.264
ecasound ('h' for help)> getpos
29.269
ecasound ('h' for help)> getpos
30.285
ecasound ('h' for help)>

========================================
========================================

ecasound -c -i:select,0,4,Count.wav -o:jack_alsa
 > -tl
 > t

Plays for 4 sec and audio stops but jack keep running. This time, in
QJackCtl, the numbers (do) seem to be increasing a second apart.

Starting at 10 sec and stopping at 30 sec...

ecasound ('h' for help)> getpos
0.000
(all zero)

========================================
========================================

ecasound -c -i:audioloop,Count.wav -o:jack_alsa
 > -t:4

Plays for 4 seconds. Both ecasound and jack stop

ecasound ('h' for help)> getpos
4.003
ecasound ('h' for help)> getpos
4.003
ecasound ('h' for help)> getpos
4.003

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list
LightInTheBox - Buy quality products at wholesale price