|
From: Kees v. V. <kee...@gm...> - 2010-01-15 20:34:22
|
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, > |