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