From: Rieder <har...@im...> - 2004-06-09 09:46:19
|
Hello, > Message: 2 > From: Dave Fancella <dav...@co...> > Everybody just plays what they want. ;) There's so much work to get the > thing finished ported to wxWidgets 2.4 that there's very little overlap Oh yes. Seems to be much work!!! > Depending on the actual data itself, it probably belongs in gProject. It may, > however, belong in tConfig. If you're wanting to take a crack at it, tConfig > needs to be rewritten to use wxWidgets' config classes, and we need a new > preferences dialog that takes all the existing global settings (that are > currently stacked in the Misc menu) and sticks them all into one nice dialog. I am wanting but progress is not as fast as I thought... See below. > to use, discoverable, and so forth", but that's pretty ambiguous. Just don't > do any of the regular open source stupid GUI designs, ok? Quick and dirty to I'll try... > wait six months to send in your work, and all the interfaces change in the > meantime, I personally won't be all that sympathetic. ;) Normally I would update from CVS and recompile the merged sources before checkin in my work. What do you mean with "send in". Isn't that CVS checkin ? > From: joakim verona <jo...@ve...> > Dave summed it up pretty well, but just a little further note: > > In your case, you are making something like a new midi-event matrix > editor right? > (ok, not the same layout and so on, but technically the same) The current matrix editor would support color schemes which the user may select and probably some other settings (3D drawing style, shape of note heads, bodies, tails, ...)(persistent default settings [and - would be nice - per song][and - if it really makes sense - per track]). The new midi-event matrix editor rather would be a "print preview" showing my notation layouted on N pages. I do not see the necessity to allow editing in this new view, since it would mean work and you already have the possibility to edit in the current matrix editor. In this new view you could adjust the borders, headline, footline and you would have a "print" button. There must be also a sort of filter dialog allowing the user to select which tracks and channels he wants to print. The filter settings should be persistent per song. Another nice thing would be a cursor for the current position when playing the song. Or a cursor propagating according to the data received from MIDI input (so a keyborder doesn't need to leave around the pages while playing since the software can do that). Even more exiting would be an algorithm that can fine-tune a whole song to get optimum intervals (i.e. clean intervals, not the 2^N/12 approximations). The latter point however surely means so much work as developping a complete sequencer from scratch. > On the other hand you will be very reliant on the wxwindows drawing > interfaces, > and they can change between releases. Yes. This is the experience I made with serveral open source libs. Interface change more fast than on commercial software. In the meantime I got the Jazz++ sources. I installed wxWidgets 2.4.2 for Windows. I compiled the library, some wx sample programs and demos and they work. I must study yet their tutorial since I'm not familiar with this GUI lib... I tried to generate a Makefile with autoconf but got 3 different confusing error messages with 3 different versions of these tools (2 cygwin on Windows and 1 on SuSE 8.2 Linux). Finally I decided to build a MSVC++ 6.0 project (+ workspace) from scratch. After some adaptations I could compile my first module jazz.cpp. Then I compiled also player.cpp and song.cpp. Now I have too many open points to continue work: Since I did not use autoconf, there is no config.h file, but it gets #included. I created a new config.h file to satisfy the existing sources and put it into this "mswin" directory I found. Was this correct ? What is the sense of this jazzdll.cpp file in the mswin directory ? Is there a DLL to be built in the jazz project ? I had to #define a JAZZ_DATADIR (I did it in the new config.h) to get jazz.cpp compiled. What is the meaning of it and how should it work on Windows: as on UNIX or different ? What are the wxProperty... things ? You can only use them if macro "wxUSE_PROPSHEET" is not 0. In the file lib/msw/wx/setup.h it is #defined to be 0! I had to add "$(WXWIN)/lib/msw" to my inlucde path - like in the wxWidgets sample programs - to get things compiled. I had to change the value to 1 in the wxWidgets source, but I guess it's not the way it is meant by the inventors. But what is correct ? Not to use wxProperty... classes in Windows programs ?? The most confusing things are these wx_... macros. For example I started to change wx_msw into __WXMSW__. I believed that wx_msw might be the wxWindows old way and __WXMSW__ the new way (see wxWidgets platform.h). Then I discovered other such macros like wx_xt and wx_xview. I asked myself: why should you be able to compile the jazz sources with so many old macros and I not ? Did you generate these macros with autoconf/automake and I am missing something ? The amount of specific code for Windows I saw up to now was frightening! I had the hope that the OS interface is covered by wxWidgets (neary completely). Isn't that the case ? Looking forward to your answers Harald |
From: Dave F. <dav...@co...> - 2004-06-09 10:04:50
|
On Wednesday 09 June 2004 02:44 am, Rieder wrote: > In the meantime I got the Jazz++ sources. I installed wxWidgets 2.4.2 for > Windows. I compiled the library, some wx sample programs and demos and they > work. I must study yet their tutorial since I'm not familiar with this GUI > lib... It's MFC-like. ;) > I tried to generate a Makefile with autoconf but got 3 different confusing > error messages with 3 different versions of these tools (2 cygwin on > Windows and 1 on SuSE 8.2 Linux). Finally I decided to build a MSVC++ 6.0 > project (+ workspace) from scratch. After some adaptations I could compile > my first module jazz.cpp. Then I compiled also player.cpp and song.cpp. Now > I have too many open points to continue work: > > Since I did not use autoconf, there is no config.h file, but it gets > #included. I created a new config.h file to satisfy the existing sources > and put it into this "mswin" directory I found. Was this correct ? Correct enough for MSVC++. That's how Audacity solves this problem. Now, in config.h you must put all defines that are determined by the ./configure script on GNU systems. > What is the sense of this jazzdll.cpp file in the mswin directory ? Is > there a DLL to be built in the jazz project ? You'll have to piece this one out, I think. I don't know what it does. ;) Maybe someone else does? > I had to #define a JAZZ_DATADIR (I did it in the new config.h) to get > jazz.cpp compiled. What is the meaning of it and how should it work on > Windows: as on UNIX or different ? ./configure sets the prefix, or can be passed the prefix on the commandline. Usually the prefix is /usr/local, the Jazz binary goes in /usr/local/bin, and then there's the JAZZ_DATADIR directory which is determined by ./configure based on this prefix. So, you have an interesting decision to make already. Do you want to force Windows users to adhere to a convention that doesn't normally apply on Windows? The convention is a UNIX thing, of course, that says /usr/bin get binary applicaitons, /usr/lib gets libraries, /usr/share gets shared data, and so forth. /usr/local/* the same, but the "local" means something else. I would say you don't want to force this onto Windows users, because it wouldn't allow them to install Jazz completely on different partitions or in different places. So you'll have to come up with something else for this. ;) Personally, I'd prefer if you came up with something we could use on Linux too and replace this #define with something more portable and more useful. > What are the wxProperty... things ? You can only use them if macro > "wxUSE_PROPSHEET" is not 0. In the file lib/msw/wx/setup.h it is #defined > to be 0! I had to add "$(WXWIN)/lib/msw" to my inlucde path - like in the > wxWidgets sample programs - to get things compiled. I had to change the > value to 1 in the wxWidgets source, but I guess it's not the way it is > meant by the inventors. But what is correct ? Not to use wxProperty... > classes in Windows programs ?? Beats me > The most confusing things are these wx_... macros. For example I started to > change wx_msw into __WXMSW__. I believed that wx_msw might be the wxWindows > old way and __WXMSW__ the new way (see wxWidgets platform.h). Then I > discovered other such macros like wx_xt and wx_xview. I asked myself: why > should you be able to compile the jazz sources with so many old macros and > I not ? Did you generate these macros with autoconf/automake and I am > missing something ? Hm. I think you're actually supposed to use __MSW__, but I could be wrong about that. Lemme do a quick check... Looks like you're supposed to use __WXMSW__ to check to see if we're compiling on Windows. If you absolutely need to know, you can use __WIN32__ to see if we're compiling on win9x or winME. I'm thinking you should eliminate these other macros and see what happens. ;) Or, since you've got Cygwin installed, grep the wx sources with the other macros and see what the comments around the macros say. > The amount of specific code for Windows I saw up to now was frightening! I > had the hope that the OS interface is covered by wxWidgets (neary > completely). Isn't that the case ? Yes and no. To get it working for Windows, you *should* be able to eliminate most of the Windows specific code. You might have to write the PortMIDI driver, finally, to get the MIDI working again. I would suggest that you consider doing that and running fluidsynth or timidity as a softsynth, since that's the direction we're going. That is, if you find you can't get the existing MIDI code working within say an hour or two of fiddling with it. PortMIDI is pretty straightforward and should theoretically only take a couple of hours to get working with Jazz, and like I said, it's where we want to go. As far as the UI, just do what we did already. If it doesn't compile, disable it from the code (use #if 0 or comment blocks or something). Get it building as quickly as possible. It builds and runs under Linux using no platform specific GUI code, just wxWidgets for GUI. Uses the OSS midi driver, I think. Might use alsa, someone was working on it awhile ago. Yeah, I think it uses alsa, now that I think about it. Anyway, the only platform specific code being used under Linux right now is the sound backend, and since we haven't even touched it, the Windows sound backend should *still* work fine. So disable anything that doesn't compile, refer to the Makefile.am files for the source files that need to be in the project, and make the config.h file in win/ contain all the macros that are determined by ./configure, get it building, and tell us what works and what doesn't work. Then we can tell you if it doesn't work in Linux either and is part of the overall porting work, or if it *does* work in Linux and needs special attention for Windows. I really appreciate you taking the time to work on this, I can't say enough thank you. :) Dave > Looking forward to your answers > Harald > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: GNOME Foundation > Hackers Unite! GUADEC: The world's #1 Open Source Desktop Event. > GNOME Users and Developers European Conference, 28-30th June in Norway > http://2004/guadec.org > _______________________________________________ > jazzplusplus-devel mailing list > jaz...@li... > https://lists.sourceforge.net/lists/listinfo/jazzplusplus-devel -- Visit my website! http://www.davefancella.com/?event=em To whom the mornings are like nights, What must the midnights be! -- Emily Dickinson (on hacking?) |
From: Joakim V. <jo...@ve...> - 2004-06-09 10:46:24
|
Dave answered very aptly, I add some small further suggestions below: Dave Fancella <dav...@co...> writes: >> I tried to generate a Makefile with autoconf but got 3 different confusing >> error messages with 3 different versions of these tools (2 cygwin on please let us now these errors! > Correct enough for MSVC++. That's how Audacity solves this problem. Now, in > config.h you must put all defines that are determined by the ./configure > script on GNU systems. I include the config.h one my automake generates for reference, see below. > > You'll have to piece this one out, I think. I don't know what it does. ;) > Maybe someone else does? for some reason the original developers chose to put the mswin midi player in a dll. Maybe they had some different tools that used the same dll? Anyway, my suggestion is to simply disable playback altogether at first. It will be complicated enough just to get jazz to compile again under windows. And your area of interest doesnt really require playback initially. >> What are the wxProperty... things ? You can only use them if macro >> "wxUSE_PROPSHEET" is not 0. In the file lib/msw/wx/setup.h it is #defined >> to be 0! I had to add "$(WXWIN)/lib/msw" to my inlucde path - like in the >> wxWidgets sample programs - to get things compiled. I had to change the >> value to 1 in the wxWidgets source, but I guess it's not the way it is >> meant by the inventors. But what is correct ? Not to use wxProperty... >> classes in Windows programs ?? They are used in some dialogs. Why you need a special define to use them is odd. Anyway, we are moving away from this system to an xml resource based system, so the dialogs using these proerties will go away, meaning you can comment out those dialogs if you want. if you tell me which dialogs are giving you problems, I can port them to the new system. Its not much work, and I will have time again next week. >> The amount of specific code for Windows I saw up to now was frightening! I >> had the hope that the OS interface is covered by wxWidgets (neary >> completely). Isn't that the case ? Remember that the old jazz core was built on wx1.68. There were tons of windows specific things you had to do. As we port more things to wx2, these windows specific hacks will go away. As an example, there were code that calculated heights of widgets and stuff differently between mswin and linux. This stuff vanished(will vanish) when dialogs are moved to the new xml based layout system, which is the same for all platforms. > I really appreciate you taking the time to work on this, I can't say enough > thank you. :) Me also! It will be very interesting to see your ideas in practice. > Dave > >> Looking forward to your answers >> Harald >> >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by: GNOME Foundation >> Hackers Unite! GUADEC: The world's #1 Open Source Desktop Event. >> GNOME Users and Developers European Conference, 28-30th June in Norway >> http://2004/guadec.org >> _______________________________________________ >> jazzplusplus-devel mailing list >> jaz...@li... >> https://lists.sourceforge.net/lists/listinfo/jazzplusplus-devel > > -- > Visit my website! > http://www.davefancella.com/?event=em > > To whom the mornings are like nights, > What must the midnights be! > -- Emily Dickinson (on hacking?) > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: GNOME Foundation > Hackers Unite! GUADEC: The world's #1 Open Source Desktop Event. > GNOME Users and Developers European Conference, 28-30th June in Norway > http://2004/guadec.org > _______________________________________________ > jazzplusplus-devel mailing list > jaz...@li... > https://lists.sourceforge.net/lists/listinfo/jazzplusplus-devel |