klearnnotes2-devel Mailing List for KLearnNotes2
Brought to you by:
wiecko
You can subscribe to this list here.
2004 |
Jan
(13) |
Feb
(17) |
Mar
(38) |
Apr
(9) |
May
(10) |
Jun
|
Jul
(2) |
Aug
(15) |
Sep
(4) |
Oct
(5) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(1) |
Feb
(7) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2006 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Marek W. <Mar...@fu...> - 2006-05-14 20:44:33
|
Hi! FYI: SourceForge has rebuild its cvs structure. From 2006-05-12 cvs server for kln2 is: klearnnotes2.cvs.sourceforge.net (and not cvs.sourceforge.net). For example, if you are using CVSROOT shell variable, you should set it to :ext:US...@kl...:/cvsroot/klearnnotes2 (where USER is your sf user name). From the letter from sf: "This change will require new working copies to be checked out of all repositories (so control files in the working copy will point to the right place)." More info: https://www.sf.net/docs/E04 . Best, ~Marek =============================== Recent changes in the kln2 CVS: * I am rebuilding the structure of midi playing classes: - extracted to MidiOutput some common tasks - using a separate thread there to play chords - midi setup reacts to patchListChanged() signal and uses a combo instead of spinBoxMidiPatch (thus providing the user instrument names instead of patch numbers - works now for fluidsynth). For now I'm testing the new MidiOutput on fluidsynth: accordingly, other outputs are turned off in parts.h . * added a splash window main.cpp: * command-line options should now work as --help describes roc_namebuttons.{cpp,h}: * changing buttons background when highlighted; * a bit sorted out color-changing methods (still 2B simplified...) -- | Dr Marek Wieckowski | Institute of Theoretical Physics | Warsaw University | | http://www.fuw.edu.pl/~wiecko | http://klearnnotes2.sourceforge.net -- |
From: Piotr S. <pe...@pl...> - 2006-03-21 00:06:34
|
Hi, Congratulations! The cvs version features are greater than I have expected. I mean the possibility to practice with keyboard. This program is becoming very powerfull. I am very happy to be able to practice reading in alto and tenor clef= . wish you all the best and more succes Peter Gratuluj=EA wersji cvs - ma wspania=B3e mo=BFliwo=B6ci, szczeg=F3lnie= =E6wiczenia z klawiatur=B1 i jest bardzo obiecuj=B1ca. Ciesz=EA si=EA bardzo z usta= wie=F1 kluczy C. pozdrawiam i =BFycz=EA dalszych sukces=F3w Piotr |
From: Piotr S. <pe...@pl...> - 2006-03-02 21:35:59
|
Dnia 02-03-2006, czw o godzinie 21:43 +0100, Marek Wieckowski napisa=B3(a): > Witaj Piotrze! >=20 > Thank you for your letter. :) >=20 > On Wed, 1 Mar 2006, Piotr Sawicki wrote: > > Is it possible that you add possibility to choose between more cl= efs? > > It would be great for learning C clef familly too and extending i= t to > > other G and F old french clefs would gain popularity among Music > > Conservatory students which have to learn them (in Poland) >=20 > The devel version of klearnnotes2 (available from kln2 web page, se= e=20 > the "CVS" part of Download menu) has: > * the standard G clef (and the 8va lowered G clef - diff only if yo= u > answer questions with your real instrument and a microphone conn= ected > to a PC) > * the F (bass), and two C clefs (alto and tenor). >=20 > It's quite easy to add more clefs but it really needs sorting out,= =20 > especially when considering music newbies. Yes, I thought that these clefs woud be only visible if one marks an option in advanced config window like: "show more clefs", so the standard configuration would not show them = and not disturb newbies. >=20 > Please, help me understand better what would be needed: > * by "old French G clef" you mean a G clef with G on the lowest of = the > five lines, right? Yes, that is right. > * what is an "old F clef"? F clef - the dots of the clefs points the line the third line is baritone, > * in "C family" you probably mean the soprano clef (C on the lowest= of the > five lines);=20 Yes,=20 > do you think the baritone (C on the top line) and > mezzo-soprano (C on the second line) clefs are useful too? Yes for the students, composers, theoretics which has to read old sco= res a vista or play Bach chorales or has to sing old compositions during = ear training lessons. There is also soprano c clef - first line and tenor clef - fourth lin= e.=20 > * what about the sub-bass (F clef with F on the top line)? Put it too with all names. > * are all the clefs used with "8va"? Would this be useful at all? I think not, since it is obvious what are the pitch names because it = is just an octave transposition.=20 I think also that sometime it could be also nice to extend ability to read in transposition for Bb Eb instruments and other transpositions = in order to help people who deal with large scores and have to understan= d and play them, and it could be interesting to train reading from more than one clef (staff system) at once, like from piano with 2 differen= t clefs. thanks for your answer regards pozdrawiam serdecznie Piotr |
From: Marek W. <Mar...@fu...> - 2006-03-02 20:43:43
|
Witaj Piotrze! Thank you for your letter. :) On Wed, 1 Mar 2006, Piotr Sawicki wrote: > Is it possible that you add possibility to choose between more clefs? > It would be great for learning C clef familly too and extending it to > other G and F old french clefs would gain popularity among Music > Conservatory students which have to learn them (in Poland) The devel version of klearnnotes2 (available from kln2 web page, see the "CVS" part of Download menu) has: * the standard G clef (and the 8va lowered G clef - diff only if you answer questions with your real instrument and a microphone connected to a PC) * the F (bass), and two C clefs (alto and tenor). It's quite easy to add more clefs but it really needs sorting out, especially when considering music newbies. Please, help me understand better what would be needed: * by "old French G clef" you mean a G clef with G on the lowest of the five lines, right? * what is an "old F clef"? * in "C family" you probably mean the soprano clef (C on the lowest of the five lines); do you think the baritone (C on the top line) and mezzo-soprano (C on the second line) clefs are useful too? * what about the sub-bass (F clef with F on the top line)? * are all the clefs used with "8va"? Would this be useful at all? Once again, than you for your letter. Pozdrawiam, Marek PS: Just a side remark: With such a "zoo" of clefs, I suppose we cannot just add them and confuse the users. Probably there has to be either a submenu ("Rare clefs") or a switch ("Show/hide rare clefs"). -- | Dr Marek Wieckowski | Institute of Theoretical Physics | Warsaw University | | http://www.fuw.edu.pl/~wiecko | http://klearnnotes2.sourceforge.net -- |
From: Piotr S. <pe...@pl...> - 2006-03-01 13:25:25
|
Hi, Congratulations! This is a great software. Is it possible that you add possibility to choose between more clefs? It would be great for learning C clef familly too and extending it to other G and F old french clefs would gain popularity among Music Conservatory students which have to learn them (in Poland) regards PIotr Sawicki |
From: Marek W. <Mar...@fu...> - 2005-12-06 02:13:33
|
Hi! The first development version of KLearnNotes2 for MS Windows is available. You can download the binary via klearnnotes2.sourceforge.net (Download -> MS Windows binary). This win32 version still lacks some features (pitch recognition etc.). Despite the missing features. the first two kinds of exercises (staff-to-name, the only exercises present in the current official linux release, 1.2) work fine. :) ~Marek PS. If you want to compile MS Windows binary yourself, see the file win32-howto.txt in CVS. -- | Marek Wieckowski | Institute of Theoretical Physics | Warsaw University | | http://www.fuw.edu.pl/~wiecko | http://klearnnotes2.sourceforge.net -- |
From: Marek W. <Mar...@fu...> - 2005-02-27 23:21:23
|
Hi Carlo, On Sun, 27 Feb 2005, Carlo wrote: > That's exactly what I had in mind. A440 and A444 are the most used, > but... is it possible to have a drop down list and an edit line > combined? OK, no problem. Are integer values enough, right? If so a spinbox would be enough. BTW, the pitchtuner supports even a floating value of the base A frequency, so it's just a matter of changing the pitch setup dialog. > For a new (beginner) user it could be hard to deal with so many settings > (clef, transposition, number of strings, ...), it would be cool to > provide a (at first-run) wizard where to choose an instrument (with > preset settings and suggested lessons) Good idea. And the user should be able to run the wizard anytime. TODO; also this needs good, clear help files. > A few days ago I found some interesting projects > https://gna.org/projects/fmit/ > https://gna.org/projects/fanr/ > an instrument tuner and a note recognition program, Great! :) I will try them out. The problem is I have only OSSFree and this is an Alsa/Jack project. I guess I will have to install Jack first. I'll let you know if it worked for me. ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Carlo <si...@bl...> - 2005-02-27 16:39:48
|
Hi, > * pitch recognition setup dialog works [Carlo: I added the transposition > you requested, and A444 (should there be even more freedom?)] That's exactly what I had in mind. A440 and A444 are the most used, but... is it possible to have a drop down list and an edit line combined? This way the user could choose e preset value from the list or enter his own. For a new (beginner) user it could be hard to deal with so many settings (clef, transposition, number of strings, ...), it would be cool to provide a (at first-run) wizard where to choose an instrument (with preset settings and suggested lessons) A few days ago I found some interesting projects https://gna.org/projects/fmit/ https://gna.org/projects/fanr/ an instrument tuner and a note recognition program, too bad I found them only now. regards, Carlo |
From: Marek W. <Mar...@fu...> - 2005-02-17 04:14:21
|
On Wed, 16 Feb 2005, chivigon wrote: > I have this program in my sony clie: > http://www.mennigmann.com/fretboard/ Ah, yes - you've already shown me this link once. Thanks for reminding. Good resource: good list of instruments and tunings. :) There will be a problem to design step-by-step lessons in such a way, that they be useful for all the instruments. But definitely, a fret-by-fret (train all notes at the first fret, then the second fret, then the first+second ...) and string-by-string (train 1st string only, then 2nd string only ...) would be useful for all. > I have now fedora core 3 and I will try to compile the last cvs version. Great. I hope it'll work at last. :) ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: chivigon <oxy...@ya...> - 2005-02-17 02:05:15
|
Amigo!! Thanks for the quick answer, Marek. I have this program in my sony clie: http://www.mennigmann.com/fretboard/ I guess that you can check it with a palm os emulator http://mitarbeiter.werkbank.com/mennigmann/fretboard/screenshots.ssi You can see fret in a menu, pre defined instruments like mandolin, fender 5 string mandocaster, ukelele, charango 7 string guitar, 7 string bass and 10 - 12 string stick!! Also have tunnings like open G, hendrix etc. Here is more ideas to integrate in klearnnotes2: http://www.theviolintutor.com/ I have now fedora core 3 and I will try to compile the last cvs version. Javier --- Marek Wieckowski <Mar...@fu...> escribió: > Hi Javier, > > On Tue, 15 Feb 2005, Javier wrote: > > Can be added any way to change number of strings > and pitch? > > It's easy to hard-code this (with just a few lines > added I created the > attached screenshot of a four-string bass guitar, > and yes - the pitches > are adjusted for the bass, and yes - you can easily > hard-code different > tunings). This would require some minor corrections > (e.g. adjust positions > of dots on the fretboard). Also, it's easy to allow > a user to change > tunings when the program is running (this will only > require some kind of > simple dialog window). > > This is more difficult to change number of strings > and visible frets when > the program is already running. Is it enough to > provide 6 and 4 strings? > Are there any fretted instruments with other number > of strings? > > Anyway, I'll keep your request in mind. > > By the way: you requested once input from line-in > (for pitch recognition). > I think it should work fine if you change this in > kmix or any other mixer > (mute the microphone and un-mute line-in). Does it? > > Regards, > Marek > > -- > > \/ /|\ Marek Wieckowski > ##### | | | > = . . = \|/ Institute of Theoretical Physics > U | Warsaw University > / ~ \___ | > <| | | > > . < | http://www.fuw.edu.pl/~wiecko > <<___>> | http://klearnnotes2.sourceforge.net > ATTACHMENT part 2 application/octet-stream name=kln2-bass-fret.png _________________________________________________________ Do You Yahoo!? La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. http://net.yahoo.com.mx |
From: Marek W. <Mar...@fu...> - 2005-02-16 02:16:42
|
Hi Javier, On Tue, 15 Feb 2005, Javier wrote: > Can be added any way to change number of strings and pitch? It's easy to hard-code this (with just a few lines added I created the attached screenshot of a four-string bass guitar, and yes - the pitches are adjusted for the bass, and yes - you can easily hard-code different tunings). This would require some minor corrections (e.g. adjust positions of dots on the fretboard). Also, it's easy to allow a user to change tunings when the program is running (this will only require some kind of simple dialog window). This is more difficult to change number of strings and visible frets when the program is already running. Is it enough to provide 6 and 4 strings? Are there any fretted instruments with other number of strings? Anyway, I'll keep your request in mind. By the way: you requested once input from line-in (for pitch recognition). I think it should work fine if you change this in kmix or any other mixer (mute the microphone and un-mute line-in). Does it? Regards, Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: chivigon <oxy...@ya...> - 2005-02-16 01:38:24
|
Yay!! Can be added any way to change number of strings and pitch? Javier --- Marek Wieckowski <Mar...@fu...> escribió: > Hi, > > I have just added to the CVS first version of the > guitar fretboard. :D > > Not used in any kln2 exercise yet, but reacts to > mouse clicks, pitch > recognition etc. -- so already now might be useful. > BTW: like piano kbd, > this guitar fretboard does support sharps/flats; but > these positions are > disabled only because nameButtonsBox says so. > Uncomment line 108 of > src/exe-fret_name.cpp to see #/b highlights on > fretboard. > > > Also, a summary of other recent CVS commits: > > * piano exercises should now work perfectly - > comment on results, react to > kbd/pitch/mouse/speech, use settings > (testLengthFactor, lesson, level), > play correct midi sounds, save status on exit > [please, report/correct > any problems] > > * pitch recognition setup dialog works [Carlo: I > added the transposition > you requested, and A444 (should there be even > more freedom?)] > > * guitar tuner has a new widget: an "axis" useful > when you are very much > off the right tune; > > * volume sliders added to the toolbar (they should > change volume but also > get updated if an external mixer changes volumes; > Javier, is that > what you had in mind?) > > * sliders/checkboxes positions are saved if a lesson > is "custom"; also > obsolete setting are removed from the preferences > file; > > * --scale command line option works now; try: > klearnnotes2 --scale=5 & > > I updated online doxygen source documentation at > kln2 home page. > > Regards, > Marek > > -- > > \/ /|\ Marek Wieckowski > ##### | | | > = . . = \|/ Institute of Theoretical Physics > U | Warsaw University > / ~ \___ | > <| | | > > . < | http://www.fuw.edu.pl/~wiecko > <<___>> | http://klearnnotes2.sourceforge.net > ATTACHMENT part 2 application/octet-stream name=kln2-fretboard.png _________________________________________________________ Do You Yahoo!? La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. http://net.yahoo.com.mx |
From: Marek W. <Mar...@fu...> - 2005-02-16 01:34:46
|
Hi, I have just added to the CVS first version of the guitar fretboard. :D Not used in any kln2 exercise yet, but reacts to mouse clicks, pitch recognition etc. -- so already now might be useful. BTW: like piano kbd, this guitar fretboard does support sharps/flats; but these positions are disabled only because nameButtonsBox says so. Uncomment line 108 of src/exe-fret_name.cpp to see #/b highlights on fretboard. Also, a summary of other recent CVS commits: * piano exercises should now work perfectly - comment on results, react to kbd/pitch/mouse/speech, use settings (testLengthFactor, lesson, level), play correct midi sounds, save status on exit [please, report/correct any problems] * pitch recognition setup dialog works [Carlo: I added the transposition you requested, and A444 (should there be even more freedom?)] * guitar tuner has a new widget: an "axis" useful when you are very much off the right tune; * volume sliders added to the toolbar (they should change volume but also get updated if an external mixer changes volumes; Javier, is that what you had in mind?) * sliders/checkboxes positions are saved if a lesson is "custom"; also obsolete setting are removed from the preferences file; * --scale command line option works now; try: klearnnotes2 --scale=5 & I updated online doxygen source documentation at kln2 home page. Regards, Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Marek W. <Mar...@fu...> - 2005-01-31 07:16:10
|
On Thu, 13 May 2004, Marek Wieckowski wrote: > I've just heard about a qtforum contest for edutainment > program based on qt. http://contest.qtforum.org/ > I would like to enlist kln2 in new version 1.2 there. Hi, Here are the results (at last): 1st place: KStars 2nd: Kig 3rd: Keymaster (judges choice) 3rd: KSalomon (community choice) For details - see the link below. Regards, Marek ---------- Forwarded message ---------- Date: Thu, 27 Jan 2005 20:15:16 +0100 From: Christian Kienle <christian-kienle@losg... Subject: QtForum.org programming contest results Hi, today we have announced the results of the QtForum.org programming contest. http://www.qtforum.org/thread.php?postid=21864 Best Regards, Christian Kienle (QtForum.org) -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Carlo <si...@bl...> - 2004-10-15 16:48:30
|
Hi, I understood the delete in ~PianoKeyboard... sorry for that question I didn't think to Qt deleting the elements. In PianoKeyboardKey constructor I enabled AutoDelete for notes, that are no more QObjects. And delete the local variable points ( setPoints() makes a copy, doesn't he? ) btw Is KLearnNotes2::endKLearnNotes2() still needed? reagards, Carlo |
From: Carlo <si...@bl...> - 2004-10-15 00:19:41
|
Yawn! Oh... Hi! > I'll look into this, OK? I'd like to code something about preferences to > learn better how it works. :) enjoy :) > > mmmm, I get so many warnings about missing KDE icons No matter, I get them also with other applications. I think they are related to my configuration/installation. They say: kdecore (KIconLoader): WARNING: Icon directory /usr/share/icons/hicolor/ group 48x48/stock/text not valid. Now a good news: > Maybe something is deleted twice? Maybe something that we delete > "manually" is still needed by Qt destructors? I'm really confused. :/ You are right! nameLabels and nameLabelsBackground are deleted twice. there is still the delete in PianoKeyboard destructor that I don't understand (it deletes a pointer to an array). I need to clean up the code before committing, so it will be for tomorrow. regards, Carlo |
From: Marek W. <Mar...@fu...> - 2004-10-14 03:09:21
|
On Wed, 29 Sep 2004, Marek Wieckowski wrote: > BTW: I'm planning to rename other files so that similar things would be ls-ed > close to each other: > scalenotation* => names_of_notes* > solfeggionotation* => names_solfeggio* ... Done. More or less according to this plan. Please re-checkout your sources. M. -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Marek W. <Mar...@fu...> - 2004-10-14 03:06:09
|
On Wed, 13 Oct 2004, Carlo wrote: > now exercises save their own preferences, Great. :) > There is still a problem: sliders' position is not saved I'll look into this, OK? I'd like to code something about preferences to learn better how it works. :) > mmmm, I get so many warnings about missing KDE icons I don't get any. What do they say? Does your KDE style use an icon for a titlebar of the window? If so - probably you cannot get it properly for a program which is run from a local directory (you probably have to install it into /usr/local/kde... or /opt/kde/...). I'm not sure. I wonder if other kdelibs based programs would cause similar warnings when run from a local directory (that is when compiled from sources and not installed). > KLN crashes in the destructor, but not because of functions we put in > it. It crashes at the end of the destructor: when it executes code > inserted by the compiler. Maybe something is deleted twice? Maybe something that we delete "manually" is still needed by Qt destructors? I'm really confused. :/ > anyway, why doesn't PianoKeyboardKey have a destructor? Good point. The standard c++ destructor deleted all value-based members. But there is some mess about "what deletes the pointers in QPtrList-s" (esp. that some of them have autoDelete==true). Maybe Qt tries to delete the backgrounds twice (once because they are children of a canvas, once because of being in autoDelete-d QPtrList)? ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Carlo <si...@bl...> - 2004-10-12 22:25:51
|
Hi, now exercises save their own preferences, the implementation is a mix of what Marek suggested and what I had in mind. Basically KLearnNotes::saveOptions() loops trough exercises and ask them to save preferences (if he wants :). There is still a problem: sliders' position is not saved (in Staff and PianoKeyboard). This happens because sliders are private and there aren't funtions to get/set their position. This would require to implement a saveOptions() function also in these classes, ToDo? mmmm, I get so many warnings about missing KDE icons that I didn't even care about crashes! It seems like KLN is getting into another Segmentation Fault :/ If kln2 is not deleted the destroyer is not called, I think this is because it is created with new (it is a pointer) > prefs data is not saved --> for coherency we should call klnPrefs->flush() in KLN::saveOptions() so data are written to file when we ask to save them. KLN crashes in the destructor, but not because of functions we put in it. It crashes at the end of the destructor: when it executes code inserted by the compiler. But computers never fail... This is my stack: ??() QPtrList<QCanvasRectangle>::deleteItem @ qptrlist.h:150 QGList::clear () QPtrList<QCanvasRectangle>::clear (this) @ qptrlist.h:93 ~QPtrList (this) @ qptrlist.h:70 ~PianoKeyboardKey (this) @ musicwidget.moc.cpp:139 QCanvas::~QCanvas () QWidget::~QWidget () ~QFrame (this) @ guitartuner.cpp:36 ~Exercise (this) @ exercise.cpp:176 ~ExercisePianoToName (this) @ exe-piano_name.cpp:74 QWidget::~QWidget () QFrame::~QFrame () QWidget::~QWidget () QMainWindow::~QMainWindow () ~KLearnNotes2 (this) @ klearnnotes2.cpp:741 main (argc=1, argv=[...]) @ main.cpp:196 I didn't understand very much... anyway, why doesn't PianoKeyboardKey have a destructor? Regards, Carlo |
From: Marek W. <Mar...@fu...> - 2004-09-29 07:03:36
|
Carlo, First of all, thanks for your changes and fixes. :) On Fri, 17 Sep 2004, Carlo wrote: > * by updating the translations I got these errors OK. I updated kln2.pro and *notation.h files. lupdate should work now (I committed updated *.qm and *.ts to CVS). BTW: I'm planning to rename other files so that similar things would be ls-ed close to each other: scalenotation* => names_of_notes* solfeggionotation* => names_solfeggio* oneletternotation* => names_oneletter* KLNcanvasitem* => canvasitems* musicwidget* => widgets_piano* musicstaff* => widgets_staff* KLNfancywidge* => widgets_namebuttons* Also, I plan to move def. of ActionWithIconSwitch to globals.cpp and include contents of quickstartfile.h into kln2-defs.h (and delete qsf.h). If you have any changes that would affect these files - please commit now. ================================== > ## klearnnotes2.cpp: 1017 >> if (klnPrefs == NULL)return;//just to be sure...[or it might be >> created here] [...] > Well, it could also be created here, but it would contain nothing. OK, I'd leave this without any changes - if there were any problems in future we can sort this then. But I added a debug info (I'd rather not assert() here) to report when this if is activated - we shouldn't ever see it's output. ================================== > ## exercises preferences > I was thinking about writing Exercise::savePreferences > (/loadPreferences) wich would > - save exercise settings (like testLenthFactor) > - not set a group (doesn't call Preferences::setGroup) > - would be inherited by each exercise > (- could raise a signal caught by the exercise) > This function would be called by KLearnNotes2::saveOptions wich is > charged to setGroup and would solve the problem for the current > exercise. Sounds reasonable. But if you define a member in each exercise class: static const char* prefsGrpName = "exe: name-to-piano"; and a virtual (!) function in Exercise virtual setPrefsGroup() { klnPrefs->setGroup(prefsGrpName);}; you can set a different group name for each of the inherited classes by the classes 'virtual saveOptions()' itself. Maybe this way is clearer? When new kind of exe is added Kln2::saveOptions() will just have to loop through one more Exercise object, and the object itself would set group etc. If you need an example: in a similar way virtual rtti() and static const rttiNum are used for canvas objects (musicstaff.* musicwidget.* KLNcanvasitems.cpp). If you find some time - please, code it either this way or (if it would be easier for you) the way you suggested. :) > Alternatively each exercise could load his preferences in his > constructor and save them in the destructor creating his own group. Is > there anything wrong with this? It's less flexible: it might be desirable to save settings without destroying the object. ================================== BTW this reminds me about one more thing. Does anybody has any idea how to delete 'KLearnNotes2 *klearnnotes2'? I added debuginfo to the destructor to trace it: if there is no line delete klearnnotes2; in main() the object is not deleted [thus, for example klnPrefs is not deleted either and the prefs data is not saved :( ]; if there is above line ... it crashes instead of deleting kln2. I'm not sure what's wrong. I tried to trace this with gdb, but I can't do it either. :( Any ideas? Regards, Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Marek W. <Mar...@fu...> - 2004-09-29 07:03:15
|
Hi e-body, Just in case you did not noticed: "C++ GUI Programming with Qt 3" is now available for free download! :) http://phptr.com/promotion/1484?redir=1 Regards, Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Marek W. <Mar...@fu...> - 2004-09-22 15:41:42
|
Carlo, Thanks for your remarks. I'm sorry but I'm again in Germany. I'm coming back to Poland on Monday - I will look at your e-mail than. Regards, Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Carlo <si...@bl...> - 2004-09-17 00:16:04
|
Hi, ## some errors: * I got a compile error about the setHidden function call in midi_setup.cpp: 109 [compiler output at the end of the mail] I fixed it by including the function in the class. * by updating the translations I got these errors (just to report them, in particular the lack of Q_OBJECT macros): klearnnotes2.pro lupdate error: Cannot open C++ source file 'src/imageitem.h': No such file or directory src/oneletternotation.cpp:53: Class 'OneLetterNotation' lacks Q_OBJECT macro src/solfeggionotation.cpp:31: Class 'SolfeggioNotation' lacks Q_OBJECT macro ## klearnnotes2.cpp: 1017 > if (klnPrefs == NULL)return;//just to be sure...[or it might be created here] Also if the preferences file doesn't exist klnPrefs is created in loadOptions() wich is called by KLearnNotes2 construtor. So I cannot figure out why it shouldn't exist. This check is just for the worst of the worsts cases. Well, it could also be created here, but it would contain nothing. I think it's better to load defaults next time KLN is launched. Or call loadOptions() here !? ## exercises preferences I was thinking about writing Exercise::savePreferences (/loadPreferences) wich would - save exercise settings (like testLenthFactor) - not set a group (doesn't call Preferences::setGroup) - would be inherited by each exercise (- could raise a signal caught by the exercise) This function would be called by KLearnNotes2::saveOptions wich is charged to setGroup and would solve the problem for the current exercise. Alternatively each exercise could load his preferences in his constructor and save them in the destructor creating his own group. Is there anything wrong with this? > // [ on the second thought(and after reading prefs.cpp;) : NO! > // preferences saves changed data immediately; Preferences are written to a file only when Preferences::flush or Preferences::writeData is called. When you change a value by calling set*() only the QMap is changed. ## preferences errors I "fixed" error reporting. The status bar is changed by KLearnNotes2::loadOptions and KLearnNotes2::saveOptions and *not* in preferences.cpp, mainly because KLearnNotes2::statbar is protected. Though I don't have tryed all possible errors yet (i.e. corrupted files). regards, Carlo midi_setup.cpp: In constructor `MIDI_setup::MIDI_setup(QPixmap, QWidget*, const char*, bool, unsigned int)': midi_setup.cpp:109: error: no matching function for call to `MIDI_setup:: setHidden(QLabel*&, bool)' /usr/share/qt3/include/qwidget.h:349: error: candidates are: void QWidget::setHidden(bool) midi_setup.cpp:120: error: no matching function for call to `MIDI_setup:: setHidden(QSpinBox*&, bool)' /usr/share/qt3/include/qwidget.h:349: error: candidates are: void QWidget::setHidden(bool) |
From: Marek W. <Mar...@fu...> - 2004-08-31 22:49:19
|
Hi e-body, On Thu, 19 Aug 2004, Carlo wrote: > preferences-0.2 seems to run and to be easy to use, but it comes with a > custom license I have received an answer from David Johnson (see below). His license appears not to be his "custom license" - it is a standard "modified BSD license". :) And is perfectly compatible with GPL. I don't like the last David's suggestion though - if he wanted it to be non-copylefted it should stay like this (the modified files should be left with the modified BSD license, not GPL-ed). Carlo, my suggestion is: 1) if there are any big additions to be made which are kind of stand-alone - write them to a separate file; 2) but don't hesitate to modify the David's files as much as you have to; 3) leave his license and copyright in .h plus add a line like: // Modified by Carlo Vanini for KLearnNotes2. (cf. my remarks in cvoicecontrolkln2.c) Happy coding! :) If I can be of any help just let me know. ~Marek PS. But we cannot learn by heart all the GPL compatible licenses... :( I'm not sure how to avoid a similar confusion in the future. ---------- Forwarded message ---------- Date: Mon, 30 Aug 2004 19:46:20 -0700 From: David Johnson <david AT usermode...> To: Marek Wieckowski <Marek.Wieckowski AT fuw...> Subject: Re: preferences-2.0 license On Monday 30 August 2004 10:57 am, you wrote: > We would like to use your preferences-2.0 for storing user > preferences. It seems really promising especially compared to > what we used so far. I'm writing this e-mail to ask you to allow > us to use this code under terms of GNU General Public License, > rather than your "list of conditions". My Preferences class is licensed under the "three clause" BSD License. This license is fully compatible with the GNU GPL. You are already free to use the code in GPL licensed products, and it will not affect your own license! Richard Stallman has declared the license I use to be fully compatible with the GPL. Please see <http://www.gnu.org/licenses/license-list.html#ModifiedBSD>. This means you may distribute my Preferences class or derivatives you make of it under the terms and licensing of the GPL. > Your license says: "Redistribution and use in source [...] with > [...] modification, are permitted ...". Yes, to make your code > useful for us it will have to be modified. But if we modify the > file it is not clear to what the original license applies to! The license is clear. My terms apply to the modified source code! You cannot remove my copyright or license statements. However, you are permitted to add to them with the terms of the GPL. It does not matter to me if you keep do or do not keep track of specific modifications in the source files. Merely keeping the copryight and license statements at the top is sufficient. If you distribute the code under the terms of the GPL, then you are also distributing it under my terms, so there is no problem. What some GPL projects have done with BSD licensed code is to include the standard GPL notice, followed by a statement that the original code was copyrighted by the author under the listed BSD terms. Does this make sense? If it does not, please let me know. -- David Johnson ___________________ http://www.usermode.org |
From: Marek W. <Mar...@fu...> - 2004-08-30 22:46:40
|
Hi e-body, On Thu, 19 Aug 2004, Carlo wrote: > I committed the changes on MIDI setup dialog. The dialog is quite slow > to update Just two small changes. 1) midi_setup.cpp: setHidden() is not a part of the old Qt 3.0.2. Because all other parts of kln2 compile with these libs I added a wrapper for this - not a nice one, but it seems to work. The wrapper uses isVisible() instead of isHidden(). It wouldn't work if the dialog was prepared before it is shown, but here this is not the case - changes in the dialog looks happen when it is visible. 2) I added a globalcursor.h file for a WaitCursor - you can see it work when you change midi system in midi_setup dialog. Ciao, Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |