Thread: [Qtractor-devel] LV2-Yoshimi state save/load
An Audio/MIDI multi-track sequencer
Brought to you by:
rncbc
From: Will G. <wil...@mu...> - 2016-04-02 15:46:56
|
Yoshimi's state includes all volume & pan settings, but qtractor somehow doesn't seem to restore these. It gets all the instruments in the correct parts but with pan at centre and default volume. I don't know how it manages to do that! Both Ardour and Muse get this right. However, qtractor *does* respond to in-file MIDI messages correctly. -- Will J Godfrey http://www.musically.me.uk Say you have a poem and I have a tune. Exchange them and we can both have a poem, a tune, and a song. |
From: Yassin P. <ph...@gn...> - 2016-04-02 15:58:50
|
Well, it's weird ; Sometimes, it does. I have sessions, here, that has Yoshimis in it, correctly setup, loading the right patch. BUT sometimes, it can take some time to... I don't know stick? Before the track actually remembers. So I would second, there may be a PB, but it is is not exactly that Qtractor does not save Yoshimi's state, because, well, sometimes (and in my case, eventually) it does :/ On 04/02/2016 04:55 PM, Yassin Philip wrote: > Well, it's weird ; Sometimes, it does. I have sessions, here, that has > Yoshimis in it, correctly setup, loading the right patch. > BUT sometimes, it can take some time to... I don't know stick? Before > the track actually remembers. > > So I would second, there may be a PB, but it is is not exactly that > Qtractor does not save Yoshimi's state, because, well, sometimes (and > in my case, eventually) it does :/ -- Yassin "xaccrocheur" Philip http://manyrecords.com http://bitbucket.org/xaccrocheur / https://github.com/xaccrocheur |
From: Rui N. C. <rn...@rn...> - 2016-04-02 16:43:12
|
On 04/02/2016 04:46 PM, Will Godfrey wrote: > Yoshimi's state includes all volume & pan settings, but qtractor somehow > doesn't seem to restore these. It gets all the instruments in the correct parts > but with pan at centre and default volume. I don't know how it manages to do > that! Both Ardour and Muse get this right. > could it be that yoshimi responds to MIDI channel volume (cc#7) and panning (cc#10) messages ? qtractor does override each MIDI track/channel with those controllers --they're both handled as MIDI track/channels properties for that matter--upon session setup and anytime later, eventually whenever MIDI connections changes. hth. -- rncbc aka. Rui Nuno Capela |
From: Ralf M. <ral...@al...> - 2016-04-02 19:04:58
|
On Sat, 02 Apr 2016 18:43:01 +0200, Rui Nuno Capela <rn...@rn...> wrote: > could it be that yoshimi responds to MIDI channel volume (cc#7) and > panning (cc#10) messages ? > > qtractor does override each MIDI track/channel with those controllers > --they're both handled as MIDI track/channels properties for that > matter--upon session setup and anytime later, eventually whenever > MIDI connections changes. Hi, a long time ago I already considered this being a bug and not a feature. Rui, you'll hopefully change your mind about this approach now. This "reset" at the start of a track, where a user not necessarily wants the sequencer to control CC vol and/or CC pan is a PITA. Just imagine the sequencer should get started, after a live improvisation and it should continue with the CC vol and/or CC pan were the improvisation without sequencer finished, then it's impossible to set wanted values for the track, unless you're a psychic. Even if you know the values, sometimes you simply use the controls of your external MIDI synthesizers, since they might be all in a rack and it's easier to select sounds and to mix while standing next to the rack. Some people dislike to repeat everything for the tracks, especially since nobody remembers the values that are aligned to e.g. 10 pan positions, while MIDI provides 128 steps. Regards, Ralf |
From: Will G. <wil...@mu...> - 2016-04-02 19:08:23
|
On Sat, 2 Apr 2016 17:43:01 +0100 Rui Nuno Capela <rn...@rn...> wrote: > On 04/02/2016 04:46 PM, Will Godfrey wrote: > > Yoshimi's state includes all volume & pan settings, but qtractor somehow > > doesn't seem to restore these. It gets all the instruments in the correct parts > > but with pan at centre and default volume. I don't know how it manages to do > > that! Both Ardour and Muse get this right. > > > > could it be that yoshimi responds to MIDI channel volume (cc#7) and > panning (cc#10) messages ? > > qtractor does override each MIDI track/channel with those controllers > --they're both handled as MIDI track/channels properties for that > matter--upon session setup and anytime later, eventually whenever > MIDI connections changes. > > hth. Yes, Yoshimi accepts most standard MIDI CCs This is a real problem. Yoshimi state is a very complete setup and is intended to restore it to *exactly* the condition it was saved at. If you are changing anything at all after the state has been loaded you break Yoshimi's model. I've had this discussion with other sequencer builders. While I can appreciate the desire to put things in a known condition, it's my belief that any such changes should only be made *before* a state or patch set load. -- Will J Godfrey http://www.musically.me.uk Say you have a poem and I have a tune. Exchange them and we can both have a poem, a tune, and a song. |
From: Ralf M. <ral...@al...> - 2016-04-02 19:19:09
|
On Sat, 02 Apr 2016 21:08:08 +0200, Will Godfrey <wil...@mu...> wrote: > I've had this discussion with other sequencer builders. While I can > appreciate the desire to put things in a known condition, it's my belief > that any such changes should only be made *before* a state or patch set > load. Hi, the condition should be a condition a user explicitly set up, IOW, if you scroll to a sequencer position, the sequencer should set all parameters to the values that were chosen before or at this position. A parameter that wasn't explicitly set, should be kept at the last value that was used. This is how all other sequencers work, since the 1980s, AFAIK Qtractor is the only sequencer with this odd behavior. Will, even your above recommendation is wrong. A sequencer should do what the musician recorded/edited and only set values regarding to the song position. If nothing was recorded or edited, the sequencer isn't allow to set anything. There's one exception, but even for this exception a coder should be careful and not by default reset everything, it's a panic button, to get rid of hanging notes, but resetting e.g. pitch bend or modulation wheel not necessarily belongs to a panic reset. Regards, Ralf |
From: Holger M. <ho...@ma...> - 2016-04-02 21:06:10
|
On Sat, 2 Apr 2016, Will Godfrey wrote: > On Sat, 2 Apr 2016 17:43:01 +0100 > Rui Nuno Capela <rn...@rn...> wrote: > > > On 04/02/2016 04:46 PM, Will Godfrey wrote: > > > Yoshimi's state includes all volume & pan settings, but qtractor somehow > > > doesn't seem to restore these. It gets all the instruments in the correct parts > > > but with pan at centre and default volume. I don't know how it manages to do > > > that! Both Ardour and Muse get this right. > > > > > > > could it be that yoshimi responds to MIDI channel volume (cc#7) and > > panning (cc#10) messages ? > > > > qtractor does override each MIDI track/channel with those controllers > > --they're both handled as MIDI track/channels properties for that > > matter--upon session setup and anytime later, eventually whenever > > MIDI connections changes. > > > > hth. > > Yes, Yoshimi accepts most standard MIDI CCs > > This is a real problem. Yoshimi state is a very complete setup and is intended > to restore it to *exactly* the condition it was saved at. If you are changing > anything at all after the state has been loaded you break Yoshimi's model. > > I've had this discussion with other sequencer builders. While I can appreciate > the desire to put things in a known condition, it's my belief that any such > changes should only be made *before* a state or patch set load. As a compromise Qtractor's override behaviour could made to be toggled, ideally per track, with the default "on". Experts who know what they do then can change it to "off". |
From: Rui N. C. <rn...@rn...> - 2016-04-02 21:31:30
|
On 04/02/2016 08:08 PM, Will Godfrey wrote: > On Sat, 2 Apr 2016 17:43:01 +0100 > Rui Nuno Capela <rn...@rn...> wrote: > >> On 04/02/2016 04:46 PM, Will Godfrey wrote: >>> Yoshimi's state includes all volume & pan settings, but qtractor somehow >>> doesn't seem to restore these. It gets all the instruments in the correct parts >>> but with pan at centre and default volume. I don't know how it manages to do >>> that! Both Ardour and Muse get this right. >>> >> >> could it be that yoshimi responds to MIDI channel volume (cc#7) and >> panning (cc#10) messages ? >> >> qtractor does override each MIDI track/channel with those controllers >> --they're both handled as MIDI track/channels properties for that >> matter--upon session setup and anytime later, eventually whenever >> MIDI connections changes. >> >> hth. > > Yes, Yoshimi accepts most standard MIDI CCs > > This is a real problem. Yoshimi state is a very complete setup and is intended > to restore it to *exactly* the condition it was saved at. If you are changing > anything at all after the state has been loaded you break Yoshimi's model. > > I've had this discussion with other sequencer builders. While I can appreciate > the desire to put things in a known condition, it's my belief that any such > changes should only be made *before* a state or patch set load. > and why is that a problem at all? i must say it's been like so since day 0 in qtractor model; it has been like so for external soft- and hard -instruments, following the GM/GS/XG standard all over; plug-ins are no different either, even though you can insert a multi-timbral plug-in on a midi output bus, MIDI tracks volume and pan will converge to it on respective MIDI channel basis, so there's no escape from that. otoh. the problem i see is often one of hard-wiring these MIDI controllers (cc#7, cc#10) directly to an internal instrument state parameters or control ports, whatever--in my (fairy tales) book, hard-wired MIDI CC's *should* "modulate" the DSP model variables, and never override directly fundamental state model variables. eg. considering a state_value in the normalized range [0, 1] and midi_value in [0, 127] 7bit range, then the effective dsp_value should be: dsp_value = state_value * midi_value / 127; thinking of which, you may probably know that doing this MIDI controller 1:1 functional mapping to a plug-ins internal state is considered "serious felony" by the LV2 police, don't you? ;) cheers -- rncbc aka. Rui Nuno Capela |
From: Holger M. <ho...@ma...> - 2016-04-02 21:42:43
|
On Sat, 2 Apr 2016, Rui Nuno Capela wrote: > On 04/02/2016 08:08 PM, Will Godfrey wrote: > > On Sat, 2 Apr 2016 17:43:01 +0100 > > Rui Nuno Capela <rn...@rn...> wrote: > > > >> On 04/02/2016 04:46 PM, Will Godfrey wrote: > >>> Yoshimi's state includes all volume & pan settings, but qtractor somehow > >>> doesn't seem to restore these. It gets all the instruments in the correct parts > >>> but with pan at centre and default volume. I don't know how it manages to do > >>> that! Both Ardour and Muse get this right. > >>> > >> > >> could it be that yoshimi responds to MIDI channel volume (cc#7) and > >> panning (cc#10) messages ? > >> > >> qtractor does override each MIDI track/channel with those controllers > >> --they're both handled as MIDI track/channels properties for that > >> matter--upon session setup and anytime later, eventually whenever > >> MIDI connections changes. > > > > This is a real problem. Yoshimi state is a very complete setup and is intended > > to restore it to *exactly* the condition it was saved at. If you are changing > > anything at all after the state has been loaded you break Yoshimi's model. > > and why is that a problem at all? If I understood this feature correctly you can switch it off with midifilter plugin(s). I tried MapCC and let it change CC7 to CC0. No volume changes were received by the synth plugin in that track. So this might be a solution for Will. |
From: Will G. <wil...@mu...> - 2016-04-03 15:39:06
|
On Sat, 2 Apr 2016 22:31:18 +0100 Rui Nuno Capela <rn...@rn...> wrote: > On 04/02/2016 08:08 PM, Will Godfrey wrote: > > On Sat, 2 Apr 2016 17:43:01 +0100 > > Rui Nuno Capela <rn...@rn...> wrote: > > > >> On 04/02/2016 04:46 PM, Will Godfrey wrote: > >>> Yoshimi's state includes all volume & pan settings, but qtractor somehow > >>> doesn't seem to restore these. It gets all the instruments in the correct parts > >>> but with pan at centre and default volume. I don't know how it manages to do > >>> that! Both Ardour and Muse get this right. > >>> > >> > >> could it be that yoshimi responds to MIDI channel volume (cc#7) and > >> panning (cc#10) messages ? > >> > >> qtractor does override each MIDI track/channel with those controllers > >> --they're both handled as MIDI track/channels properties for that > >> matter--upon session setup and anytime later, eventually whenever > >> MIDI connections changes. > >> > >> hth. > > > > Yes, Yoshimi accepts most standard MIDI CCs > > > > This is a real problem. Yoshimi state is a very complete setup and is intended > > to restore it to *exactly* the condition it was saved at. If you are changing > > anything at all after the state has been loaded you break Yoshimi's model. > > > > I've had this discussion with other sequencer builders. While I can appreciate > > the desire to put things in a known condition, it's my belief that any such > > changes should only be made *before* a state or patch set load. > > > > and why is that a problem at all? > > i must say it's been like so since day 0 in qtractor model; it has been > like so for external soft- and hard -instruments, following the GM/GS/XG > standard all over; plug-ins are no different either, even though you can > insert a multi-timbral plug-in on a midi output bus, MIDI tracks volume > and pan will converge to it on respective MIDI channel basis, so there's > no escape from that. > > otoh. the problem i see is often one of hard-wiring these MIDI > controllers (cc#7, cc#10) directly to an internal instrument state > parameters or control ports, whatever--in my (fairy tales) book, > hard-wired MIDI CC's *should* "modulate" the DSP model variables, and > never override directly fundamental state model variables. > > eg. considering a state_value in the normalized range [0, 1] and > midi_value in [0, 127] 7bit range, then the effective dsp_value > should be: dsp_value = state_value * midi_value / 127; > > thinking of which, you may probably know that doing this MIDI controller > 1:1 functional mapping to a plug-ins internal state is considered > "serious felony" by the LV2 police, don't you? ;) > > cheers One of the things I like about qtractor is it is much lighter weight than either of the other two well known sequencers that support LV2. However, neither of them seem to have this problem. If I re-load a session, not only are all the tracks as I saved them, so is even the song position and the complete state of Yoshimi at that time. I'm not going to get into arguments as to which is right or wrong, but it does rather take the shine off. I can sort-of get round it by bedding in CCs at the start of each track although that's rather tedious - but what other CCs do you set? It would seem to me the only valid CC for a sequencer itself to set would be 121 - reset all controllers. That would not be a problem, because one of the user settings in Yoshimi is to ignore it! (there is a sequencer that sends this at the beginning of every segment of every track). -- Will J Godfrey http://www.musically.me.uk Say you have a poem and I have a tune. Exchange them and we can both have a poem, a tune, and a song. |
From: Ralf M. <ral...@al...> - 2016-04-03 17:03:49
|
On Sun, 3 Apr 2016 16:38:38 +0100, Will Godfrey wrote: >I'm not going to get into arguments as to which is right or wrong, but >it does rather take the shine off. It's simply wrong. >I can sort-of get round it by bedding in CCs at the start of each track >although that's rather tedious - but what other CCs do you set? It >would seem to me the only valid CC for a sequencer itself to set would >be 121 - reset all controllers. That would not be a problem, because >one of the user settings in Yoshimi is to ignore it! (there is a >sequencer that sends this at the beginning of every segment of every >track). Fortunately a lot of hardware synth allow to ignore one or the other MIDI command, but a sequencer should allow to turn off and on a feature that reset all controllers, especially between segments, parts what ever else they are called. |
From: Rui N. C. <rn...@rn...> - 2016-04-03 17:20:25
|
On 04/03/2016 04:38 PM, Will Godfrey wrote: > > I can sort-of get round it by bedding in CCs at the start of each track > although that's rather tedious - but what other CCs do you set? It would seem to > me the only valid CC for a sequencer itself to set would be 121 - reset all > controllers. That would not be a problem, because one of the user settings in > Yoshimi is to ignore it! (there is a sequencer that sends this at the beginning > of every segment of every track). > as already stated, qtractor does send midi cc#7 (volume) and cc#10 (pan) on a per track/channel basis and hard-wired to each of the midi track mixer strip sliders respectively. in addition, midi cc#120 (all sound off), midi cc#121 (all controllers off) and midi cc#123 (all notes off) are also transmitted eventually upon playback stop, connection changes or when the panic button is hit. the sliders on midi output bus strips also send master volume and pan but these are plain gm sysex messages not midi cc channel messages. byee -- rncbc aka. Rui Nuno Capela |