Hi Tim! The evening, and at last put my hands on persistent_ports branch.
Quick report: It works!!! Long report :) : It works! My test setup: I have usb midi keyboard. The background is that it's changes it's jack id on every replug. So all connections can be broken during song writing. The test: 1. I started muse, made synth track, connected a new midi track to it. 2. Opened midi ports dialog, created jack-0 device and connected it to midi_capture_3 (current id of my midi keyboard). 3. While playing with left hand I unplugged usb cable from keyboard and then after few seconds replug it. Jack gave it new id: midi_capture_4. And muse detected it, reconnected and started to receive midi input without any problem! Great!! 4. Then I tested all 3 case scenarios posted by Tim. All of them works with jack seq and raw midi driver! Saving song without jack connection and reopening in with jack also restores all connections. 5. After that I started external jack synth (carla host) and made midi conenctions to jack-1 (new port) and audio returns to new audio input track. Then tested all scenarios with this setup too. Honestly, I didn't believe at that moment, that connections to carla will be restored. But! I closed all apps. Opened MusE, than loaded song and only after that loaded carla (with it's saved state). MusE restored *all* connections correctly! Even ladish can't do this properly sometimes. Conclusion: I want to say: Wow! Great, great job, Tim :). Thanks for these efforts. I think that was really tricky to implement such things. P.S. I also successfully merged persistent_ports branch to my qt5 branch without any conflict at all! So, my last question is still alive :) Regards, Andrew 27.01.2015 10:15, Tim E. Real wrote: > Here it is, warts and all. > Remember it's an experimental work in progress ! > It is full of /large/ commented sections. > Some greyish ideas and code may change, you know how it is. > > It should compile and run out of the box. > > It is not ready for prime time yet, but is ready for testing. > Maybe the users want to try it for fun. Early adopters. > > You will see a /large/ amount of debugging output, > relating to Jack and routes and so on. > > Results may vary depending on Jack version and Jack Midi driver in use. > I can't control that. > > Jack-2 with ALSA SEQ midi driver OK. ALSA RAW seems OK. > Jack-1/2 with a2jmidid bridge OK, but maybe 'day-2-day' port rename problems. > New '-X' submodules in Jack-1/2 not recommended, yet. > > Let me know if it works. Give some setup details. > > > You can test a few ways: > =================== > 1) > By wiring up some MusE <->Jack Midi routes > to/from a hot plug-able device like USB midi. > Do all this in the midi configuration dialog. > Save this as a song. > > Then unplug the device. > Observe the routes disappear from the 'in routes' and 'out routes' > columns of the midi port list, and from QJackCtl etc. > > Then re-plug the device. > Observe the routes soon come back preserved. > > 2) > Then close MusE. > Then unplug the device. > Re-start MusE and re-load the song. > Observe some routes are missing (the device is not plugged in). > Now re-plug the device. > Observe all routes are soon restored. > > 3) > Next, run MusE either with Jack stopped or run MusE with the -a switch, > meaning use dummy driver, no audio. > Load the saved song and observe no routes available. > Re-save the song (to test preservation of persistent routes). > Then close MusE. Start Jack. Re-start MusE and load the song. > Observe all routes are soon restored. > > 3) > Similarly, create some Audio Input and Audio Output tracks, and > wire them up to/from Jack ports of a hot plug-able audio device. > Save this as a song. > Now, I am told that unplugging your main audio device may > crash MusE or Jack, but try it for me. I don't have one. > If you are lucky, MusE will still be running. > Hopefully if Jack first notifies MusE of the disconnections, you > may be able to re-save the song and it will remember the connections > next time you start (with audio). Probably not. > But I suspect we can make this work, and stop the crashes. > I think MusE handling of Jack shutdowns has fallen weak over the years... > > 4) > Exact *same* as step 3). > Observe all routes are restored. (Or not. Audio part might not be done yet.) > > Timeline: > ========= > GUTS: > Currently working on similar ALSA support. Don't use ALSA right now ! > Check a few more areas of routing usage for support needed. > Stuff. > > GUI: > GUI generally not touched yet. Good thing for QT5 porting ? > Audio Input/Output track + JackMidi routing popups to be changed for sure. > They currently don't show these 'hidden' persistent routes. > > CLEANUP: > Large commented sections. > > Tim. > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Lmuse-developer mailing list > lmuse-develo...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/lmuse-developer -- Regards, Andrew ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Lmuse-user mailing list Lmuse-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lmuse-user