From: Dave F. <dav...@co...> - 2004-03-18 01:38:32
|
On Thursday 18 March 2004 01:08 am, Tony Leotta wrote: > Dave, > > Ok...Ok...your correct. I agree with GUI separation and I think we could > achieve a great deal in a short time if we adopted that approach. How abo= ut > this...let's agree to 100% total separation. The effect would be that we > could have two teams of programmers...one on internals, one on GUI. The > internals team will develop a core MIDI toolkit that will among other > things: Load MIDI File, Play multiple simultaneous MIDI Stream Record a > MIDI Stream in real-time while playing back. The MIDI toolkit will be 10= 0% > GUI-less. So we can use a DOS shell or a UNIX shell to control it. Create > a simple set of test programs. And run them from the command line. We > could concentrate on the best possible internal design with absolutely not > a care in the world about the GUI. Well, that's a bit much. :) Actually, that sort of setup in the long run,= =20 I'm all over. But here's more specifically what I had in mind: I've got a class already called Project. It's waiting to be merged into CV= S. =20 Later this week, when my next Jazz timeslice comes up, I'll be factoring al= l=20 the work code from trackwin into this class, Project. Then I'll be adding = to=20 the Application object a few things. Specifically, a global instance of=20 Project, called gProject, which the GUI will use to access all the work cod= e. =20 =46rom there, the kernel code will get factored out of Project (hopefully a= s=20 fast as it gets factored into Project), and Project will be the layer betwe= en=20 the GUI and the kernel. Then we'll need to factor all the work code from=20 pianowin, hopefully we'll just need to hook pianowin to Project through the= =20 global Project instance. Then we can split into two teams, one working on= =20 the GUI and one working on the kernel/project layers, and the two need neve= r=20 step on each other's toes. In the short run, this gives us the minimum amount of separation from the G= UI=20 that we need to be able to do anything with the GUI that we want, including= =20 rewriting it with Qt if we wanted to (not saying I want to, Qt is heavily=20 burdened under Windows, otherwise I would've just gone with one of the=20 Qt-based sequencers already and I wouldn't even be here). Point is, we'll = be=20 in a much better position to re-evaluate the GUI. I'm in favor of a comple= te=20 redesign on the GUI, saving the interface elements that we all like, and=20 trashing the ones we don't like to replace with better ones. And it's the= =20 quickest path to our goal of porting to wx2.4. In the long run, we'll be able to do anything we want with the backend. To= =20 make it work like you propose, it would be a simple matter of taking our=20 Project class and turning it into a console application, while=20 re-implementing the interface to it in Jazz to use the console application= =20 instead. In fact, I'm very much in favor of having both Jazz's own interna= l=20 methods of handling midi as well as being able to connect to any external=20 midi program or server or device, or whatever. I'm also in favor of just=20 removing all the code that plays sound and using a softsynth like Timidity= =20 (FluidSynth doesn't run well on my machine, sounds crackly and broken). An= d=20 in the long run, we'll be able to do any of that without even thinking abou= t=20 the GUI. :) (Don't forget, ecasound already does a great deal of stuff, a= nd=20 if we implement a Project interface to ecasound, we get 99% of everything=20 you've suggested at the cost of having a LInux-only solution, but ecasound= =20 almost runs under Windows right now. Possibly by the time we're ready,=20 ecasound will be stable and functional under Windows) So, here's the link again in case you missed it. It's a wiki, so feel free= to=20 jump in there and add stuff, elaborate and so forth. The only thing I ask = is=20 that if you want to propose an alternate to it, potentially competitive, yo= u=20 make a new page and cause the two pages to link to each other. http://jazz.opensrc.org/?DavesPort Off the subject, did Mark get over here yet? Mark? You there? Dave > Tony > > -----Original Message----- > From: Dave Fancella [mailto:dav...@co...] > Sent: Wednesday, March 17, 2004 10:02 AM > To: Tony Leotta; 'Patrick Earl' > Cc: jaz...@li... > Subject: Re: [Jazzplusplus-devel] RE: Web Site > > On Wednesday 17 March 2004 10:58 pm, Tony Leotta wrote: > > OK...Great... > > > > Do you have a list of feature improvements that you would like to make? > > > > I want to add features to Jazz to treat MIDI sequences as though they > > were sound loops. > > Well, here's my take on it. :) > > New features are great, hurray! Problem is, Jazz is sorely in need of > serious architectural fixes. It's broken by design, or rather it's very > poorly designed. And it needs to be ported to the new wxWindows so it'll > actually run on modern machines. So, new features, yes yes yes, but I'm > seriously thinking the priority should be on finishing the port and > separating the GUI from the work code (I don't consider these separate > tasks, either). After that, it should be theoretically very easy to add > new features. > > Dave > > > 1) Record a set number of measures in real-time ans assign to a LOOP > > not to a channel. > > > > 2) Once recorded...the MIDI measures are treated like a loop. > > > > 3) Allow Jazz to have multiple INPUT sources, like a Oxygen. > > > > 4) Assign any MIDI loop to any key on a MIDI control. > > > > 5) When key is played...MIDI loop is played at the beginning of the > > next measure. > > > > 6) If a key is played during playing MIDI loop...the first loop plays > > until the next measure then the next loop plays. > > > > 7) While a loop is playing...a second MIDI controller can be used to > > play in real-time. > > > > 8) Loops can be layered. > > > > 9) Loops can be arranged in sequences and an entire sequence can be > > triggered from one note. > > > > 10) Loops can be transformed. Key, Timing, MIDI Channel, etc. All in > > Real time. > > > > 11) Loops can be merged. > > > > 12) Loops can play to multiple MIDI channels simultaneously. So in > > other words..a Loop is like an entire MIDI file with its own channels > > of MIDI, nut it is treated as one entity. Pretty cool huh? > > > > What do ya think? > > > > The reason I bring this up now...is I would like to discuss a MIDI > > Event Queuing architecture that can handle this. Which if you think > > about it...Jazz already does most of what I am proposing..but at the > > Channel level. > > > > Tony > > > > -----Original Message----- > > From: Patrick Earl [mailto:jaz...@pa...] > > Sent: Wednesday, March 17, 2004 5:33 PM > > To: Tony Leotta > > Cc: jaz...@li... > > Subject: Re: Web Site > > > > Nobody else has volunteered, so go for it. :) When you have something > > to stick on the web, send me your sourceforge ID and I'll add you to > > the project. > > > > It'd be a good idea to subscribe to the SF development list here: > > http://lists.sourceforge.net/lists/listinfo/jazzplusplus-devel > > > > As for helping with the coding, that'd be great too. There are a lot > > of things to be done. Here are just a few. > > > > 1. Finish the GUI port to wxWindows 2.4. It "works," but there are > > pieces missing in numerous places. > > > > 2. Re-port to Windows. It sounds like there is somebody else on the > > the list who is interested in working on this. > > > > 3. Fix the problems reported by valgrind, aiming to eliminate the > > random crashes. Various code may need to be rewritten to ensure > > things get destroyed in the correct order. One strategy for handling > > this is to replace dynamic allocation with static allocation where it's > > appropriate. > > > 4. Though I'm not sure what needs done to the underlying midi/audio > > layers, apparently there's work to be done there too. > > > > Basically, if you wanna work on the code, just do something. :) The > > current CVS on SF is where to start from. > > > > Patrick > > > > On Wednesday 17 March 2004 10:35, Tony Leotta wrote: > > > I can build a web site.... > > > > > > I just built this site in 3 days... > > > > > > http://www.pillarsoftware.com/ptt/ > > > > > > Tony > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux > > tutorial presented by Daniel Robbins, President and CEO of GenToo > > technologies. Learn everything from fundamentals to system > > administration.http://ads.osdn.com/?ad_id=3D1470&alloc_id=3D3638&op=3Dc= lick > > _______________________________________________ > > Jazzplusplus-devel mailing list > > Jaz...@li... > > https://lists.sourceforge.net/lists/listinfo/jazzplusplus-devel > > -- > Visit my website! > http://www.davefancella.com/?event=3Dem > > The grand leap of the whale up the Fall of Niagara is esteemed, by all who > have seen it, as one of the finest spectacles in nature. > -- Benjamin Franklin. > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=3D1470&alloc_id=3D3638&op=3Dcli= ck > _______________________________________________ > Jazzplusplus-devel mailing list > Jaz...@li... > https://lists.sourceforge.net/lists/listinfo/jazzplusplus-devel =2D-=20 Visit my website! http://www.davefancella.com/?event=3Dem Bipolar, adj.: Refers to someone who has homes in Nome, Alaska, and Buffalo, New York. |