From: Robert J. <rj...@sp...> - 2006-01-12 22:03:26
Attachments:
restart.patch
|
Hi Werner, I've added support to HEAD for handling being kicked from Jack (and general restart of audio), same as I did for 0.7. After loads of headscratching it finally seems to work as it should! (And there was much rejoicing) Though I am a little hesistant to commit it.. With 0.7 I did not hesitate since it was more or less the end of the line for the code, whatever I do to it ;). But with HEAD I'd prefer to try to do things as right as possible... Anyway, the reload code is based on a new method MusE::seqRestart and the fact that when a shutdown occurs in the jack code, jackAudio is deleted. (This also means that audioDriver needs to be checked if it is valid since it now can be deleted, but I'm aware of that and will go through the calls). Audio::start recreates the device if it is missing and restores the connections through some minor magic. Among other things: need to write 0 to the jackport otherwise activate1() won't reenable the port. I've attached the diff if you want to take a closer look. (Btw, there are a lot of changed lines in the jack driver, many of them due to rename of 'client' to '_client'.) What do you think, can/should I apply it? Regards, Robert -- http://spamatica.se/musicsite/ |
From: Werner S. <ws...@se...> - 2006-01-13 09:04:52
|
On Thursday 12 January 2006 23:03, Robert Jonsson wrote: <...> > I've attached the diff if you want to take a closer look. (Btw, there are a > lot of changed lines in the jack driver, many of them due to rename of > 'client' to '_client'.) > > What do you think, can/should I apply it? you should apply it. BTW the whole startup/shutup/restart/reload_file code is very complicated(and buggy). Too many calls to functions with side effects and hard to debug. I will look at it later when the rest of the code has settled. /Werner |
From: Robert J. <rj...@sp...> - 2006-01-14 21:13:31
|
On Friday 13 January 2006 10.05, Werner Schweer wrote: > On Thursday 12 January 2006 23:03, Robert Jonsson wrote: > <...> > > > I've attached the diff if you want to take a closer look. (Btw, there are > > a lot of changed lines in the jack driver, many of them due to rename of > > 'client' to '_client'.) > > > > What do you think, can/should I apply it? > > you should apply it. And so I did :) Though, if I make stupid things, do tell me. Hopefully I'm not to old to learn ;) > BTW the whole startup/shutup/restart/reload_file code > is very complicated(and buggy). Too many calls to functions with side > effects and hard to debug. I will look at it later when the rest of the > code has settled. Yes, though I think it's a bit better than in 0.7. The restart functionality does complicate it more so... I think reconnecting jack-ports may need more work, I have to test it more thorougly with non-internal jack-clients. On a completely different subject. It seems that the new MusE is quite slow for various gui task...one very noticeable is the search box in the plugin-dialog. It is instant in 0.7 but has considerable latency in HEAD. I'm not sure if it affects CPU usage also, haven't tried to do any serious use with the new. Any idea why this is so? QT issue or is it the new internals that take more juice ? If it's QT I guess there's not much we can do but wait for more optimized QT versions. If it's MusE's own internals I suspect we need to optimize a few things before it's ready for prime time...though to me it seems like a QT thing... Regards, Robert -- http://spamatica.se/musicsite/ |
From: Werner S. <ws...@se...> - 2006-01-14 21:51:15
|
On Saturday 14 January 2006 22:13, Robert Jonsson wrote: > On Friday 13 January 2006 10.05, Werner Schweer wrote: > > On Thursday 12 January 2006 23:03, Robert Jonsson wrote: > > <...> > > > > > I've attached the diff if you want to take a closer look. (Btw, there > > > are a lot of changed lines in the jack driver, many of them due to > > > rename of 'client' to '_client'.) > > > > > > What do you think, can/should I apply it? > > > > you should apply it. > > And so I did :) Though, if I make stupid things, do tell me. Hopefully I'm > not to old to learn ;) he he, > > > BTW the whole startup/shutup/restart/reload_file code > > is very complicated(and buggy). Too many calls to functions with side > > effects and hard to debug. I will look at it later when the rest of the > > code has settled. > > Yes, though I think it's a bit better than in 0.7. The restart > functionality does complicate it more so... I think reconnecting jack-ports > may need more work, I have to test it more thorougly with non-internal > jack-clients. the code is somewhat messy because i too late realized that connect/disconnect is necessary on track delete undo/redo. This is the reason for the activate/deactivate methods. Its also not tested very hard. > > On a completely different subject. It seems that the new MusE is quite slow > for various gui task...one very noticeable is the search box in the > plugin-dialog. It is instant in 0.7 but has considerable latency in HEAD. > I'm not sure if it affects CPU usage also, haven't tried to do any serious > use with the new. > Any idea why this is so? QT issue or is it the new internals that take more > juice ? If it's QT I guess there's not much we can do but wait for more > optimized QT versions. If it's MusE's own internals I suspect we need to > optimize a few things before it's ready for prime time...though to me it > seems like a QT thing... yes, there are some tasks which are insanly slow in new Qt. I you load a midi file with lots of tracks, scrolling in the arranger window is very slow. In Qt4.0.1 it was fast as expected (but qt4.0.1 had other problems). I burned a lot of time to find out what goes on but without success so far. Hopefully 4.1.1 will help. Regards, Werner |