[nama] Re: Fix for mark jumps

  • From: Joel Roth <joelz@xxxxxxxxx>
  • To: nama@xxxxxxxxxxxxx
  • Date: Tue, 3 Apr 2012 09:58:44 -1000

On Tue, Apr 03, 2012 at 02:05:53PM -0400, S. Massy wrote:
> Hi,
> 
> I've created a miniscule patch which should fix mark jumps to use the
> kosher way of changing transport position as to not cause casound to
> llose its grip. Works fine for me here. I hope it applies propperly, as
> I've never used git to create patches before.

Hi Massy,

It applies the same as any other diff. 

I also found a several other places to replace naked 'setpos' by the
stop-seek-start logic of set_position().

The problem you found is not a bug in Ecasound, btw, but a
consequence of the time required to seek in multiple files
while the JACK transport is running.

Best,

Joel
 
> Cheer,
> s.M.
> -- 

> >From 8ef901ceb88cef680dec87aa1879712331deb7ed Mon Sep 17 00:00:00 2001
> From: S. Massy <lists@xxxxxxxxxxxx>
> Date: Tue, 3 Apr 2012 13:57:47 -0400
> Subject: [PATCH] Don't call setpos through eval_iam, use set_position instead 
> for
>  consistency and to avoid triggering the silent jack bug in ecasound.
> 
> ---
>  src/Mark.p |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/Mark.p b/src/Mark.p
> index 76fcd90..3f41863 100644
> --- a/src/Mark.p
> +++ b/src/Mark.p
> @@ -66,7 +66,7 @@ sub set_name {
>  
>  sub jump_here {
>       my $mark = shift;
> -     ::eval_iam( "setpos " . $mark->time);
> +     ::set_position($mark->time);
>       $::this_mark = $mark;
>  }
>  sub adjusted_time {  # for marks within current edit
> @@ -188,7 +188,7 @@ sub next_mark {
>               if ($marks[$i]->time - $here > 0.001 ){
>                       $debug and print "here: $here, future time: ",
>                       $marks[$i]->time, $/;
> -                     eval_iam("setpos " .  $marks[$i+$jumps]->time);
> +                     set_position($marks[$i+$jumps]->time);
>                       $this_mark = $marks[$i];
>                       return;
>               }
> @@ -201,7 +201,7 @@ sub previous_mark {
>       my @marks = ::Mark::all();
>       for my $i ( reverse 0..$#marks ){
>               if ($marks[$i]->time < $here ){
> -                     eval_iam("setpos " .  $marks[$i+$jumps]->time);
> +                     set_position($marks[$i+$jumps]->time);
>                       $this_mark = $marks[$i];
>                       return;
>               }
> -- 
> 1.7.2.5
> 


-- 
Joel Roth

Other related posts: