Re: ardour export + jamin

Kees van Veen <[email protected]> Fri, 15 Jan 2010 21:34:13 +0100
Newsgroups gmane.comp.audio.jamin.devel
Message-ID <[email protected]>
Jack,

Tried your fix, but it failed, i.e. again abort(), but not at the end of 
the export, but after I'd let Ardour play again, so I figured that the 
transition between the -t behaviour when freewheeling and back to dsp 
thread would cause that, so I fiddled around with putting io_cleanup() 
before changing the freewheeling static in the freewheel callback and 
calling io_activate() again, but that didn't work.

Then I tried in the freewheel callback to call 
io_new_state(DSP_STOPPED), just before changing the freewheeling static. 
Now I get - jamin internal error 35: invalid DSP state transition: 010 
-> 040 - each time I switch between export and play, but it does not 
abort() anymore. Haven't listened to all of the exported file, but at 
least the start of it seemed ok (mixed with the TV noise of the family). 
Tried that several times in a row in one ardour/jamin session. Since I 
tried that with the CVS version, I also patched the Ubuntu standard 
version, ran that with the exact same results. So the state transition 
is illegal, but I don't have enough knowledge of jamin to figure that 
out, maybe this gives you some more information as to a next step. All 
tests done with /usr/bin/jackd -R -dalsa -dhw:0 -r44100 -p64 -n4 , I 
guess other frames/period settings will be ok as well. Let me know if 
that would provide additional info, I'll try that as well.

Cheers,
Kees

-------- Original Message --------
Subject: Re: [Jamin] ardour export + jamin
From: Jack O'Quin <[email protected]>
To: Kees van Veen <[email protected]>
Date: Fri Jan 15 2010 03:11:13 GMT+0100 (CET)
> On Thu, Jan 14, 2010 at 3:35 PM, Kees van Veen <[email protected]> wrote:
>   
>> Jack,
>>
>> I tried running Jamin from the Ubuntu repos (not even in debug, but
>> stripped) with the -T flag and jack -p64 -n4, which aborted, but no file, no
>> stderr output (as I gather -T flag should provide). Remake in debug made no
>> difference.
>>     
>
> D'oh!  The -T does nothing in the abort() case, where it's most
> needed.  I'll try to come up with a fix for that later.
>
>   
>> Then I tried the latest CVS tree, ./configure without options, make, make
>> install.
>> (At first it wouldn't abort, tried it several times, but then I discovered
>> my patched io.c was still in the tree :-[ , removed it, cvs update, cvs
>> diff, make, make install, then it aborted).
>>     
>
>
>   
>> Next, I noticed that running with the standard Ubuntu Jamin, but with the -t
>> flag (and -p), no abort either, tried it twice with the Ubuntu Jamin and
>> twice with the cvs Jamin.
>>     
>
> That's good to know.  Good idea to try -t.
>
>   
>> All tests done with /usr/bin/jackd -R -dalsa -dhw:0 -r44100 -p64 -n4.
>>
>> What's next to try?
>>     
>
> Given that -t seems to work, I worked up a simplified version of your
> patch that should solve your problem, hopefully without introducing
> any other artifacts or undesirable timing changes.  Essentially, it
> does the same as -t, but only when JACK is freewheeling.  I used your
> code for defining the JACK freewheel callback.
>
> Please give it a try both with and without freewheeling and at both
> large and small period sizes.
>
> There may be some DSP artifacts due to using a smaller FFT window that
> could cause slightly different output depending on whether
> freewheeling is enabled.  Steve Harris probably knows whether this
> makes a difference or not.  If it does, I doubt any differences would
> be audible.
>
> Regards,
>   



------------------------------------------------------------------------------
Throughout its 18-year history, RSA Conference consistently attracts the
world's best and brightest in the field, creating opportunities for Conference
attendees to learn about information security's most important issues through
interactions with peers, luminaries and emerging and established companies.
http://p.sf.net/sfu/rsaconf-dev2dev