From: Pedro Lopez-C. <ped...@gm...> - 2006-06-14 21:37:18
|
On Wednesday, 14 June 2006 08:22, D. Michael 'Silvan' McIntyre wrote: > First problem. Rosegarden was running. I started Virtual Keyboard to have > a second MIDI input. It didn't get detected. I hooked it up by hand in > QJackCtl, and it still isn't showing up in the Manage MIDI Devices dialog. > I had to close RG and restart. I'm not saying you broke that, but it was > broken. It works for me. Tested right now as you have described. Rosegarden was running, and also was QJackCtl. I've started the sequencer at one konsole window, and the gui at another konsole session. later, I've started VKeybd: rosegardensequencer window: --------------------------- ALSA Client information: 62,0 - (Midi Through, Midi Through Port-0) (DUPLEX) [ctype 2, ptype 2, cap 99] 80,0 - (UM-2, UM-2 MIDI 1) (DUPLEX) [ctype 2, ptype 2, cap 127] 80,1 - (UM-2, UM-2 MIDI 2) (DUPLEX) [ctype 2, ptype 2, cap 127] 88,0 - (Virtual Raw MIDI 3-0, VirMIDI 3-0) (DUPLEX) [ctype 2, ptype 2, cap 127] 89,0 - (Virtual Raw MIDI 3-1, VirMIDI 3-1) (DUPLEX) [ctype 2, ptype 2, cap 127] 130,0 - (Virtual Keyboard, Virtual Keyboard) (READ ONLY) [ctype 1, ptype 1048578, cap 33] New ports: 130:0 Virtual Keyboard (read) (Reusing record device 9) rosegarden (sequencer): client list changed [...] rosegarden GUI window: ---------------------- rosegarden: RosegardenGUIApp::showEvent() rosegarden: RosegardenGUIDoc::syncDevices - devices = 12 rosegarden: RosegardenGUIDoc::syncDevices - i = 0 rosegarden: RosegardenGUIDoc::getMappedDevice - got "80:0 UM-2 MIDI 1 (duplex)", direction 0 recording false [...] rosegarden: RosegardenGUIDoc::syncDevices - i = 9 rosegarden: RosegardenGUIDoc::getMappedDevice - got "130:0 Virtual Keyboard (read)", direction 1 recording false rosegarden: RosegardenGUIDoc::syncDevices - i = 10 [...] In "Manage MIDI Devices", the virtual keyboard is at the bottom of the "Record devices" section. In the "current" column, the checkbox is unchecked. I've checked it and QJackCtl shows that it is connected to the ALSA "record in" port of Rosegarden. > Second problem. There isn't actually any way to use Virtual Keyboard for > this test anyway. Play and recording devices seem to be attached to each > other, but Virtual Keyboard doesn't have a play device, so I can't record > from it either. This also works for me, after VKeybd was connected to the ALSA "record in" port. The play and recording devices aren't attached at all. The recording works exactly as before, since I implemented the "multiport recording" behavior. Everything connected to the Rosegarden "record in" port can be recorded: any device with the "current" column checked, in the "Manage MIDI devices" window. > Well, I sort of can. It seems Vkeybd always transmits on channel 1, and I > can't seem to find any way to change that. With "Virtual Keyboard ver.1.9", menu View->Controls. It opens a bar on top of the keyboard with two buttons labelled "<" and ">" to increment and decrement the MIDI channel number (from 0 to 15, btw). > But my keyboard happens to > transmit simultaneously on three different channels. So I dialed one of > the In: boxes to 3 and left the other one at All, and thus recorded > different things to different tracks with different hands. > > Not bad! I'm still a little confused about how I'm supposed to have set > what up to get this here and that there though. It is only by channel, I > guess, not by originating input device like I first thought? Or am I > missing the point? Or is something not working as intended? Yes, this feature is not finished. I've promised several features not yet implemented: 1. Allow to filter the recording also by originating device, in addition to the incoming channel, with the option to select "all devices". There should be another combobox above the channel combos, or a popup menu, or something like that. Selecting "all", the recording behaves as now: it records from any device connected to the ALSA "record in" port. 2. Another checkbox to filter the incoming sysex events, which don't have a channel, so they can't be filtered out with the "channel in" combobox. 3. Perhaps, include the sysex chechbox in another filter window, similar to the current global filter settings (Thru/Recording filter) but applying the filtering to only a recording instrument insted of globally. All the above controls would be included in the "Intrument Parameters Box", or opened from controls on it. An slight reorganization of the IPB could be necessary. As you can see, I've only implemented the input channel filter. With also the point 1, there would be a similar filtering as the "Split by Recording Source" command, already existing. Discussion and advices are still welcome, of course. I've delayed a bit this feature because I haven't too much free time. I wanted to show the current code mostly to trigger the discussion, because it basically works, and also to receive some feedback about the implementation details, which I've already received from Chris. I'm going to polish the internal details in RosegardenGUIDoc class before trying to enhance functionalities. Of course, if anybody is inspired and wants to do it, go ahead. I'm not going to have time until saturday. Regards, Pedro |