|
From: Kees v. V. <kee...@gm...> - 2010-01-15 20:44:11
|
Was wrong about the abort(): after 4 times export and then play, it still aborted ... -------- Original Message -------- Subject: Re: [Jamin] ardour export + jamin From: Kees van Veen <kee...@gm...> To: Jack O'Quin <jac...@gm...> Date: Fri Jan 15 2010 21:34:13 GMT+0100 (CET) > 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 <jac...@gm...> > To: Kees van Veen <kee...@gm...> > Date: Fri Jan 15 2010 03:11:13 GMT+0100 (CET) >> On Thu, Jan 14, 2010 at 3:35 PM, Kees van Veen >> <kee...@gm...> 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, >> > > |