On 01/19/2013 01:56 PM, Tom Breton (Tehom) wrote: > I was curious about how it ever miraculously squeezed into 16 channels, so > I looked at it in RG 11.11. 11.11 can apparently accomplish this miracle, > but only because we are messing up reading MIDI programs in.
Right. I deleted a whole lot of discussion blather. Here's the point: Splitting on silence isn't a real solution, and let's not bother with any of that. The real problem is the file obviously needs more than 16 channels. (Don't know how I missed that. BLIND! The name is DuMass.) When you load this file in MusE, you have to go down the Ports column and take all the stuff from the second bank of 16 channels and route it to a different port from the first bank. You have to do this manually in MusE too. We don't expose ports to the user directly. Instead, we have devices. The way we need to handle this kind of scenario is something like: 1. Determine that more than 16 channels are needed 2. Create a new device in the Studio for every multiple of 16 required 3. Leave user to make the devices point to something We could determine 1 by noting the number of program changes at the start of the file on a given channel. Three program changes on channel 1, three banks of 16, make three devices, allocate the events to #1 on each device in series. (I know your channel allocator might obviate the need to create all three devices, but it's simpler to go with a structure that could contain everything if all three banks of 16 channels were full.) What to do for these extra devices we'd have to create is a really ugly problem though. Saving a lot of discussion, the gist of it is that it has the potential to clobber all the program and controller information. I guess the only practical thing to do is: 1. Map the first 16 channels to device 0 2. If device n exists (starting with 1), map the next 16 to device n 3. If no device n, clone device 0 as n, map to n 4. GOTO 2 until everything is mapped to a device and all parts imported It's not perfect, but since Rosegarden doesn't expose ports to the user directly, there's no other way to go without completely reworking Rosegarden, which we ain't gonna do at this late date. This is all part of that "mostly a MIDI sequencer" thing. I spent way more time than I had to allocate on this, so I have to leave it here and go. If this whole idea isn't clear, please, let's discuss more before doing anything. -- D. Michael McIntyre ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122912 _______________________________________________ Rosegarden-devel mailing list [email protected] - use the link below to unsubscribe https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
