klearnnotes2-devel Mailing List for KLearnNotes2 (Page 5)
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...> - 2004-02-24 01:17:14
|
Hi e-body. Mo, thanks for the comments. :) On Monday 23 February 2004 01:15, Mo wrote: > On Fri 13 Feb 2004, Marek wrote: > > C# D# E# F# > > C D E F G > > Db Eb Fb Gb > Lots of graphical clutter if we put down all possible note > graphics. At some point the user has to get used to e.g. Fb=E, F#=Gb. But I agree, this looks more complicated than it really is so let's forget about three rows of buttons. And it looks even worse if one wanted to implement double sharps and double flats (what??? two more rows of buttons??? no way). > Perhaps just add two more buttons: sharp/flat? Yes, I like the idea. (Note: this will kill steady pace when training for speed, and will require RandomObject to let more time for pressing two buttons). User toggles a "#" button (with a mouse or a comp. keyboard key, e.g. presses Shift) and all the NameButtons change from C D E ... to C# D# E# ... Then, when user clicks on one of them, the "#" button gets untoggled. The same for the flat "b". Yes, sounds more clear. > users click on the graphical [piano] keyboard instead of the > names of the notes as it is now. Yes, but this requires extra explanation/knowledge. Plus this forces extra choice: "OK, it is C. But which one?!". Let's plan this as a separate exercise (and in future have both: just names and a piano kbd with or w/o names on it). > And also, it will make sense to new musicians if we ever > introduce chords. True, true, true. The same goes for key signatures and scales: they make much more sense on a piano kbd. ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Mo <Mo...@no...> - 2004-02-23 08:30:11
|
Hello everybody, Thanks for the foward Marek. It really did help :) > > Hi e-body, > Carlo had the same problems with compiling and here is his solution. > > Mo, I hope this works for you too. > ~Marek Yes, the following changes did help and the program now compiles :) > > > here the diff from file klearnnotes2/src/voice_recognition.cpp > 2564c2564 > < int prefetch_N = 5; > --- > > const int prefetch_N = 5; > 2612c2612 > < memcpy((prefetch+prefetch_pos*(FRAG_SIZE)), buffer_raw, > FRAG_SIZE); > --- > > memcpy(((unsigned char*)prefetch+prefetch_pos*(FRAG_SIZE)), > buffer_raw, FRAG_SIZE); > 2637c2637 > < memcpy(data->buffer, prefetch+(i%prefetch_N)*FRAG_SIZE, > FRAG_SIZE); > --- > > memcpy(data->buffer, (unsigned > char*)prefetch+(i%prefetch_N)*FRAG_SIZE, FRAG_SIZE); > I have updated the modified file to the CVS tree. > ** still a problem: I cannot manage to have MIDI playback running I am having this problem too :( "DEBUG: midi_turnOn(): couldn't open midi device!" Although I have ALSA working on my computer. What else am I missing? Thanks! -Mo |
From: Mo <Mo...@no...> - 2004-02-23 08:15:22
|
> // In future we may implement double sharps and double flats, > // but let us keep things simple for now. > > > // what to do with integer representation of the name?=20 > // we have to check how it is used; should we number > // * all the notes (like 0=3DC, 1=3DC#, 2=3DDb, 3=3DD ) > // * distinct note's positions (like 0=3DC, 1=3DC#/Db, 2=3DD) > // * only base notes (like it is now - 0=3DC, 1=3DD ) > // * or abandon the integer representation as an unclear > // one? > KeySignature* keySignature; // or maybe there should be a parent > // Staff class with a keySignature property? > // This would inherit a QCanvas, take care of all the staff lines,=20 > // key type (bass/treble), key signature and so on? In such a case > // each note would hold a pointer to it's parent Staff rather than > // to the keySignature directly; but for now 'KS* kS' would do. > } //////////////////////////////// END OF NEW NOTE MEMBERS > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 > Implementation:=20 > > 1. add the declarations; define empty functions; check that > things compile and work as previously (note: not that=20 > obvious, e.g. checking note's name will have to be changed=20 > in few places) > > 2. note2name (current exercise) without changing KeySignature > (that is in C Major key only) > > this is quite stupid from user's point of view but makes an > important step in step-by-step implementation; > this is quite easy to implement because this does not change > program's structure; the only major decisions are to be made > about the widgets layout: > > - extra buttons (ordered in piano keyboard style? but maybe two > sets of 'black' keys: one above with sharps, one below with > flats?: > C# D# E# F# > C D E F G=20 > Db Eb Fb Gb > and so on ? )=20 > > - extra name checkboxes (grrr this makes the interface quite > unclear :( ) > > - user's input : letter with Shift =3D sharp note, letter with > Ctrl =3D flat note (note, that Alts are on some kbds used for=20 > 'accidented' local letters like =F3) > - bigger pool of all notes > - when choosing notes for a test, not only range and name=20 > checkboxes but also three new checkboxes: > * natural notes (which activates middle row of nameButtons) > * sharp notes (which activates top row of nameButtons) > * flat notes (which activates button row of nameButtons) > They should probably be placed to the right of nameButtons, > bellow rangeSliders. > > 3. the same as (2.) but with manually changed KeySignature:=20 > > now this becomes important from user's point of view: > user chooses a key signature from a combo in the toolbar (to=20 > focus: G major); the key should be displayed; and now if "CMajor=20 > F" note is shown the user should recognize it is F sharp. > > I guess, the questions should be asked only about notes without=20 > extra accidentals. > Lessons:=20 > * Gmajor, notes in middle region (one sharp F#) > * Gmajor, notes in upper region > * Gmajor, notes in lower region > * Gmajor, all notes > * Fmajor, notes in m.r. (one flat, H/B b) > * Fmajor, u.r. > * Fmajor, l.r. > * Fmajor, all notes > * Dmajor, m.r. (two sharps: F# and C#) > and so-on. > > At this point we know both accidented notes and key signatures=20 > work. We can move few-fold: > > 4a. the same with randomly chosen KeySignature for each question > Lessons: > Gmajor and Cmajor, (no sharps or one sharp at F) > Dmajor, Gmajor and Cmajor (no sharps one or two sharps) > Amajor, Dmajor, Gmajor and Cmajor (0,1 or 3 sharps) > and so on > > Fmajor and Cmajor, (no flats, or one flat at H/B) > Hb/Bb major, Fmajor and Cmajor (no flat, one or two flats) > > 4b. exercises about key signatures > 4c. fretboard (AT LAST! :) > 4d. sequence reading exercise=20 > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > --=20 > > \/ /|\ Marek Wieckowski > ##### | | | > =3D . . =3D \|/ Institute of Theoretical Physics > U | Warsaw University > / ~ \___ | > <| | | > > . < | http://www.fuw.edu.pl/~wiecko > <<___>> | http://klearnnotes2.sourceforge.net > > > > > > --__--__-- > > _______________________________________________ > KLearnNotes2-devel mailing list > KLe...@li... > https://lists.sourceforge.net/lists/listinfo/klearnnotes2-devel > > > End of KLearnNotes2-devel Digest > |
From: Mo <Mo...@no...> - 2004-02-23 08:15:20
|
Hello all! Sorry for the delay in comments. I have read the topic regarding accidentals and have posted some of my comments below. Thanks! -Mo > // In future we may implement double sharps and double flats, > // but let us keep things simple for now. > ... > > // what to do with integer representation of the name?=20 > // we have to check how it is used; should we number > // * all the notes (like 0=3DC, 1=3DC#, 2=3DDb, 3=3DD ) > // * distinct note's positions (like 0=3DC, 1=3DC#/Db, 2=3DD) > // * only base notes (like it is now - 0=3DC, 1=3DD ) > // * or abandon the integer representation as an unclear > // one? Which ever representation we go with, we should keep in mind that all notes can be represented in 5 different formats: Natural Flat Sharp Double Flat Double Sharp > Implementation:=20 > > - extra buttons (ordered in piano keyboard style? but maybe two > sets of 'black' keys: one above with sharps, one below with > flats?: > C# D# E# F# > C D E F G=20 > Db Eb Fb Gb > and so on ? )=20 > Lots of graphical clutter if we put down all possible note graphics. Perhaps just add two more buttons: sharp/flat? Though not sure how this will work with our current implemenation. I think a better way would be to draw out a keboard and make the users click on the graphical keyboard instead of the names of the notes as it is now. This will add a bit of a learning curve for none piano players but its a small one. Learning the keys of a keyboard is part of musicianship anyways. A graphical keyboard instead of actual graphics of character notes will make for less clutter and users won't get lost in searching for actual characters names of notes. And also, it will make sense to new musicians if we ever introduce chords. I have had friends that didn't understand chord structures until they saw it layed out on the piano. |
From: Marek W. <Mar...@fu...> - 2004-02-20 05:44:41
|
Hi e-body, Carlo had the same problems with compiling and here is his solution. Mo, I hope this works for you too. ~Marek PS: [...] marks cut text. ---------- Forwarded message ---------- Date: Fri, 20 Feb 2004 01:43:39 +0100 From: Silhusk <silhusk AT bluewin.ch> To: Marek Wieckowski <wiecko AT users.sourceforge.net> Subject: kln2 - compiling problems [...] ** my compiling problems were the same described in the mail [...] > 2612 and 2637:"`void *' in pointer arithmetic": we have an void* v1 > pointer and an integer v2 counting how many bytes farther the memcpy > should copy some data; the warning is caused by 'v1+v2' I solved them with some casts, below you can find the diff. This compiles, but I couldn't test if it works as it should. I used a cast to char*, so (as far as I know) in new_pos = (char *)old_point + n the compiler adds to old_point n times the size of a char (wich is platform dependent and != 1 byte) so instead of memcpy((prefetch+prefetch_pos*(FRAG_SIZE)), buffer_raw, FRAG_SIZE); there maybe should stay memcpy(((unsigned char*)prefetch+(prefetch_pos*(FRAG_SIZE)/sizeof(char))), buffer_raw, FRAG_SIZE); here the diff from file klearnnotes2/src/voice_recognition.cpp 2564c2564 < int prefetch_N = 5; --- > const int prefetch_N = 5; 2612c2612 < memcpy((prefetch+prefetch_pos*(FRAG_SIZE)), buffer_raw, FRAG_SIZE); --- > memcpy(((unsigned char*)prefetch+prefetch_pos*(FRAG_SIZE)), buffer_raw, FRAG_SIZE); 2637c2637 < memcpy(data->buffer, prefetch+(i%prefetch_N)*FRAG_SIZE, FRAG_SIZE); --- > memcpy(data->buffer, (unsigned char*)prefetch+(i%prefetch_N)*FRAG_SIZE, FRAG_SIZE); ** still a problem: I cannot manage to have MIDI playback running this is probably a matter with my configuration... I have an Intel i810 audio card, and I'm running a Mandrake 9.2 wich choses by herself wich sound server to run (ALSA doesn't work) (I have the same problem with rosegarden, but timidity should work, I still have to try it) |
From: Marek W. <mar...@o2...> - 2004-02-17 23:55:28
|
Mo, On Monday 16 February 2004 21:53, Mo wrote: > Not sure if this is a bug or if there is something I can do > help ease the installation process.=20 This part comes from CVoiceControl. Yep, it is written in quite a bad=20 C. And generally C++ is much more strict than C. I changed a few=20 places in the source, but I stopped as soon as things started to work=20 for me. :( Anyway, the places which ended as errors in your case, on my machine=20 just write out warnings. One day, yes, the source will have to be=20 fixed. But for now, I think it would be easier, to let your compiler=20 not to be so touchy. Try '--disable-strict' option of configure. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D If this does not help, I'm not sure what to do. The command that in my=20 case successfully compiles the voicerecognition.cpp file is if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/kde=20 -I/usr/lib/qt3-gcc2.96/include -I/usr/X11R6/include - DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long=20 -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=3D500=20 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar -subscripts -O2 -fno-exceptions -fno-check-new -fno-common -MT=20 voice_recognition.o -MD -MP -MF ".deps/voice_r ecognition.Tpo" \ -c -o voice_recognition.o `test -f 'voice_recognition.cpp' || echo=20 './'`voice_recognition.cpp; \ then mv ".deps/voice_recognition.Tpo" ".deps/voice_recognition.Po"; \ else rm -f ".deps/voice_recognition.Tpo"; exit 1; \ fi How is it different (except from libs/includes locations) from yours? For example: there should NOT be '-pedantic-errors' or '-Werror'=20 options. ~Marek PS. About the lines with errors: voice_recognition.cpp:2467: error: ISO C++ forbids variable-size array=20 ` prefetch_buf' Actually, Mo, I think you have an old version of the source. Get the=20 new one from cvs (it is not much different though). Anyway, in the=20 new version it is line 2566. The problem is fixed by adding 'const'=20 to line 2564; it should look like: const int prefetch_N =3D 5; 2612 and 2637:"`void *' in pointer arithmetic": we have an void* v1=20 pointer and an integer v2 counting how many bytes farther the memcpy=20 should copy some data; the warning is caused by 'v1+v2'. How to move=20 from a void* pointer by few bytes in a decent way? Anybody? Anyway, there are LOTS of other warnings in other parts coming from=20 CVoiceControl, so it will need some work to fix them all. For now, I=20 hope --disable-strict will work. M. --=20 \/ /|\ Marek Wieckowski ##### | | | =3D . . =3D \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Mo <Mo...@no...> - 2004-02-17 04:49:02
|
Hello All I am still having some problems installing. Marek's suggestion did get me through step one using of configuration. Now when I tried to run make, I get the following error messages before it exits with errors. Not sure if this is a bug or if there is something I can do help ease the installation process. Here is the following tail end of my output: voice_recognition.cpp: In member function `unsigned char* dModelEditor::getUtterance(int*)': voice_recognition.cpp:2467: error: ISO C++ forbids variable-size array ` prefetch_buf' voice_recognition.cpp:2513: error: pointer of type `void *' used in arithmetic voice_recognition.cpp:2538: error: pointer of type `void *' used in arithmetic make[2]: *** [voice_recognition.o] Error 1 make[2]: Leaving directory `/home/upalom00/documents/programming/klearnnotes2/klearnnotes2-1.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/upalom00/documents/programming/klearnnotes2/klearnnotes2-1.1' make: *** [all] Error 2 bash-2.05b$ Thanks in advance for any help! -Mo |
From: Marek W. <mar...@o2...> - 2004-02-15 13:25:23
|
Hi Mo, Yes, the forum is a good idea. Probably the support request page https://sourceforge.net/tracker/?atid=3D600459&group_id=3D92354&func=3Dbr= owse could be used. It just has to be made easily accessible form=20 kln2.sf.net. On Saturday 14 February 2004 23:13, Mo wrote: > configure:23136: error: Qt (>=3D Qt 3.0) (headers and libraries) not > found. Please check your installation! > > I do have qt installed. Version 3.3.0. The path to the headers and > libraries are located: /usr/qt/3/lib =2E/configure --help says: --with-qt-dir=3DDIR where the root of Qt is installed --with-qt-includes=3DDIR where the Qt includes are. --with-qt-libraries=3DDIR where the Qt library is installed. so probably you should run =2E/configure --with-qt-dir=3D/usr/qt/3 Does it help? ~Marek --=20 \/ /|\ Marek Wieckowski ##### | | | =3D . . =3D \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Mo <Mo...@no...> - 2004-02-15 06:08:13
|
Okay, I'll admit that I am really new to linux but its not totally foreign to me as I have learned alot of unix commands through Mac OS X. But installing applications is something that is definitley new to me. I read the docmentation on installing KLearnNotes2 and I am stuck. Would it be possible to include a forum/bullentine board on the KLearnNotes2 website so users can post questions, recommendations, etc? So say if I was not a developer, I could search the forum for an answer if I were to get stuck with a certain issue. phpBB is free works really well. Now, on to my issue. I ran ./configure command and got the following message: configure:23136: error: Qt (>= Qt 3.0) (headers and libraries) not found. Please check your installation! I do have qt installed. Version 3.3.0. The path to the headers and libraries are located: /usr/qt/3/lib The distro I am running is Gentoo Linux 2.4.22. I am using FluxBox as my windows manager. And finally, I have attached my config.log in this e-mail if that helps in solving this issue. Thanks in advance for any feedback! -Mo |
From: Marek W. <mar...@o2...> - 2004-02-13 21:36:12
|
Hi e-body, This is an e-mail about implementing notes with accidentals: flats (bemols 'b') and sharps (crosses '#'). Although it is quite lengthy, IT IS ABSOLUTELY OBLIGATORY FOR EACH OF YOU TO READ THIS AND SEND A COMMENT TO kln2-devel WITHIN NEXT FEW DAYS. It can be as simple as "I've read it and it seems OK.", but more elaborate comments are welcome too. * Is the idea clear? * Did I miss something? (please don't report missing constructors, destructors and protected/private properties unless you expect some kind of problem in implementing; on=20 the other hand, please report all missing public methods,=20 even if they seem obvious) * Can something be implemented in more easy/straightforward way? * Is there something that doesn't fit to future ideas, that would have to be completely rebuild in future because of the future goals? * Any other problems? Also, does the naming of classes/members seem alright? This message is structured in the following way: * first there are some general comments and motivation for Note copy constructor; * then there are some general comments about sharps and flats; * then there is a suggested skeleton .h file for new classes and new members of Note; * then there are suggestions for step-by-step implementation (which would enable tests of each new part of the code). This is quite lengthy message. Please, in your replies cite only few lines you refer to/comment about, NOT the whole message! Have fun reading! Best ~Marek =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D Note copy constructor =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D Right now in kln2 there is one instance of each note. They make a pool of available notes. Each of them may be shown or hidden. =20 That's all. There are many situations in which multiple notes may be needed to be visible in the same line (C, C#, Cb occupy the same place, in sequence/chords exercise the same note may be visible in few positions). In the following I will take motivation from a sequence exercise (but it will turn out quite useful in sharps/flats implementation too). Example: -----O-----O---- --------O------- ---------------- ---------------- ---------------- could not be shown right now, because right now there is only one=20 note F. The idea is: * we still have a pool of available notes * but when a note is shown it is copy-constructed from one of the pool notes and it is destructed/deleted when it is=20 hidden (this means destructors will have to be double-checked for not deleted things). There would be a KeySignature class. When a note is created it should either have it's own sign or decide about it based on key signature. enum AccidentalType {natural, sharp, flat, key, exact}; Now, imagine we have a G major key signature -#- --- --- --- --- and we have a 'Note* fFlat' which hold an F flat note and=20 'Note* newNote'.=20 Now, copy constructor newNote =3D new Note (fFlat, exact); // should construct a new F flat=20 note newNote =3D new Note (fFlat); // should construct a new F flat=20 note newNote =3D new Note (fFlat, flat); // should construct a new F flat=20 note newNote =3D new Note (fFlat, natural); // should construct a new F note newNote =3D new Note (fFlat, sharp); // should construct a new F sharp=20 note newNote =3D new Note (fFlat, key); // should construct a new F sharp=20 note Note, that Note(fFlat,sharp) should create just an F sharp (not double-sharp, as suggested by the Gmajor key), because it is the way it is sometimes written in the score just to remind of the key signature in some tricky part of the score. // In future we may implement double sharps and double flats, // but let us keep things simple for now. Also, I think F flat and E should be represented as distinct objects (for example, they would have different name when highlighted). The same goes for e.g. F# and Gb, and so on. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D sharps and flats as part of a Note =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D OK, so we have a pool of all (right now 23) notes plus some notes displayed in the staff. Each of them should have a sharp AND a flat AND a natural (only max one of them would be displayed). This is very little waste of memory and makes the code clearer: you want to show note's flat/sharp - you just show() it. And the pictures are static members of Flat/Sharp/Natural (so there is only one copy of e.g. red flat picture for all the flats!). Therefore, Note's protected properties: Sharp* sharp; Flat* flat; Natural* natural; Each note has a 'AccidentalType accidental' property; if it is: 'flat', 'sharp', 'natural' - as it says. 'key' and 'exact' - should be used only in the copy constructor and not here. There should be a 'setAccidental(AccidentalType type)' public method (which both sets the property and if the note is shown shows or hides the accidental and changes note's name). =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D new classes definitions; skeleton .h=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D class Flat: public QCanvasRectangle { Q_OBJECT // note, that inherited QCanvasRectangle provides // methods e.g. for setting picture's position in canvas public slots: //! change picture's color for fixed time changeColorTmp(char color, int time); //! change picture's color permanently changeColor(char color); protected slots: //! overridden QCanvasRectangle::drawShape /*! chooses right color for the picture - like in the class Note */ void drawShape( QPainter & ); protected: char color; // '0' (zero,black),'b' (blue), 'r'(red) or 'g'(green) -=20 like for Note static QPixmap* blackFlat; static QPixmap* blueFlat; static QPixmap* redFlat; static QPixmap* greenFlat; } ////////////////////// END OF class Flat DEFINITION/////////// // The same for class Sharp and class Natural. // In future ImageItem should enable rescaling the objects based // on SC or other scale variable; so maybe one day we should // inherit ImageItem rather than QCanvasRectangle; but for now // it would not enable any extra properties. And ImageItem hold // only one picture which is not static. :( class KeySignature : public RandomObject, public QCanvasRectangle { Q_OBJECT // it inherits QCanvasRectangle, because from canvas point of // view KeySignature does have width, height and so on (e.g. // notes cannot be shown too much to the left, because after the // key there is a signature). This would require overriding // drawShape() (which // shouldn't do anything). public: int numberOfAccidentals(); // >0 - sharps, =3D=3D0 - C Major, <0 - flats QString fullNameMajor(); // e.g. "C sharp Major" char baseNameMajor(); // e.g. 'C' AccidentalType accidentalOfNameMajor(); // e.g. sharp, flat or=20 natural=20 // ('key' and 'exact' not used!) QString fullNameMinor(); char baseNameMinor(); AccidentalType accidentalOfNameMinor(); void setName(char baseName, AccidentalType accidentalOfName, bool=20 Major); // e.g. setName('C',neutral,true) sets C Major // setName('G',flat,false) sets Gb minor etc. void setNumberOfSharps(int numOfSharps);=20 void setNumberOfFlats(int numOfFlats); // sets numOfAccidentals to=20 'minus numOfFlats' AccidentalType accidental(char noteBaseName);=20 // Dear key, I am 'C'; do I get an accidental from you? // returns 'flat' 'sharp' or 'natural' bool isPartOf(Note* note); // a better name suggestion welcome :( ? bool isPartOf(char baseNoteName, AccidentalType noteAccidental); // Dear key, I am 'Cb'; can I not show my flat? // returns 'true' if note's accidental is set by the key,=20 // 'false' if the note has to show it's accidental explicitly; // // Note, that not-accidented notes should ask the key too! // For example the GMajor key would say to a note F :=20 // 'false' which would mean 'you don't fit in here, show your=20 natural'. void show(); // shows all key signature's flats or sharps void hide(); void highlight(char color); // sets all flats/sharps color to color // and displays key major and minor names under the staff (like=20 // Note-s do now by note's pix). protected: void drawShape( QPainter & ) {}; Flat* allFlats[7]; // it CANNOT be static! because for some types of // exercises few staves may be needed with separate key signatures Sharp* allSharps[7]; int numberOfAccidentals;=20 // > 0 =3D> num of sharps; e.g. 1 means G Major // =3D=3D0 =3D> no sharps or flats (C Major) // < 0 =3D> num of flats ; e.g. -1 means F Major static char orderOfFlats[7]; // e.g. orderOfFlats[0]=3D'B/H' because // this is where the first flat goes; static char orderOfSharps[7]; // e.g. orderOfSharps[0]=3D'F' } //////////////////////////// END OF class KeySignature DEFINITION // new properties of class Note : { QString fullName(); char baseCharName(); // e.g. 'C' AccidentalType accidentalOfName(); // e.g. sharp, flat or natural setName(char newBaseName, AccidentalType newAccidental=3Dnatural); setAccidental(AccidentalType newAccidental); bool isAccidentalShown(); void setExplicitAccidental(bool); //! the copy constructors: Note (Note* , AccidentalType=3Dexact); protected: Flat* flat; Sharp* sharp; Natural* natural; char baseCharName; // renamed cName AccidentalType accidental; bool isAccidentalShown; // true =3D yes, the acc. is displayed bool explicitAccidental; // true =3D show it even if=20 // the key signature takes care of it // what to do with integer representation of the name?=20 // we have to check how it is used; should we number // * all the notes (like 0=3DC, 1=3DC#, 2=3DDb, 3=3DD ) // * distinct note's positions (like 0=3DC, 1=3DC#/Db, 2=3DD) // * only base notes (like it is now - 0=3DC, 1=3DD ) // * or abandon the integer representation as an unclear // one? KeySignature* keySignature; // or maybe there should be a parent // Staff class with a keySignature property? // This would inherit a QCanvas, take care of all the staff lines,=20 // key type (bass/treble), key signature and so on? In such a case // each note would hold a pointer to it's parent Staff rather than // to the keySignature directly; but for now 'KS* kS' would do. } //////////////////////////////// END OF NEW NOTE MEMBERS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 Implementation:=20 1. add the declarations; define empty functions; check that things compile and work as previously (note: not that=20 obvious, e.g. checking note's name will have to be changed=20 in few places) 2. note2name (current exercise) without changing KeySignature (that is in C Major key only) this is quite stupid from user's point of view but makes an important step in step-by-step implementation; this is quite easy to implement because this does not change program's structure; the only major decisions are to be made about the widgets layout: - extra buttons (ordered in piano keyboard style? but maybe two sets of 'black' keys: one above with sharps, one below with flats?: C# D# E# F# C D E F G=20 Db Eb Fb Gb and so on ? )=20 - extra name checkboxes (grrr this makes the interface quite unclear :( ) - user's input : letter with Shift =3D sharp note, letter with Ctrl =3D flat note (note, that Alts are on some kbds used for=20 'accidented' local letters like =F3) - bigger pool of all notes - when choosing notes for a test, not only range and name=20 checkboxes but also three new checkboxes: * natural notes (which activates middle row of nameButtons) * sharp notes (which activates top row of nameButtons) * flat notes (which activates button row of nameButtons) They should probably be placed to the right of nameButtons, bellow rangeSliders. 3. the same as (2.) but with manually changed KeySignature:=20 now this becomes important from user's point of view: user chooses a key signature from a combo in the toolbar (to=20 focus: G major); the key should be displayed; and now if "CMajor=20 F" note is shown the user should recognize it is F sharp. I guess, the questions should be asked only about notes without=20 extra accidentals. Lessons:=20 * Gmajor, notes in middle region (one sharp F#) * Gmajor, notes in upper region * Gmajor, notes in lower region * Gmajor, all notes * Fmajor, notes in m.r. (one flat, H/B b) * Fmajor, u.r. * Fmajor, l.r. * Fmajor, all notes * Dmajor, m.r. (two sharps: F# and C#) and so-on. At this point we know both accidented notes and key signatures=20 work. We can move few-fold: 4a. the same with randomly chosen KeySignature for each question Lessons: Gmajor and Cmajor, (no sharps or one sharp at F) Dmajor, Gmajor and Cmajor (no sharps one or two sharps) Amajor, Dmajor, Gmajor and Cmajor (0,1 or 3 sharps) and so on Fmajor and Cmajor, (no flats, or one flat at H/B) Hb/Bb major, Fmajor and Cmajor (no flat, one or two flats) 4b. exercises about key signatures 4c. fretboard (AT LAST! :) 4d. sequence reading exercise=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --=20 \/ /|\ Marek Wieckowski ##### | | | =3D . . =3D \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Marek W. <mar...@o2...> - 2004-02-13 21:27:41
|
Hi e-body, I had a little time to think about how to work on things in future. I hope that you will end your current tasks (on a very basic, just acceptable level) soon, and this would amount to a 1.2-pre release. I guess, if we manage to end these during next two weekends, we could make a feature freeze (and 1.2-pre release) in early March and then after a little fine-tuning, the final 1.2 in mid-March. I'm not sure yet if this is a realistic plan. Meanwhile we have to think about what to do next. Basically, there are three quite independent tasks that need coding soon a) pitch input (This would make a great difference for all the exercises - you can train with your instrument, not the abstract names! On the other hand it seems quite=20 complicated to implement well. ) b) new midi output ways (well, it does make a difference - even in our group we have Javier with no decent midi sequencer and Yury struggling to make his one work :( ) c) maybe: sequence reading and midi file input (this means you can learn a full melody :) and together with pitch input: you can really learn to play it on your instrument!) But the most crucial is to get to a fretboard as soon as possible. This would expand kln2 audience and people feedback greatly. But before we get there, I think we need all the notes first. We have to implement accidentals (flats 'b' and sharps '#') ASAP. Therefore I would suggest: 1. clarify how to implement flats and sharps first (you will get an e-mail about that in a moment) 2. implement flats and sharps and the same time work conceptually on how to code a fretboard. Any comments? Best, ~Marek --=20 \/ /|\ Marek Wieckowski ##### | | | =3D . . =3D \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Marek W. <Mar...@fu...> - 2004-02-12 06:11:30
|
WARNING: This e-mail has been altered by MIMEDefang. Following this paragraph are indications of the actual changes made. For more information about your site's MIMEDefang policy, contact Administator <def...@fu...>. For more information about MIMEDefang, see: http://www.roaringpenguin.com/mimedefang/enduser.php3 Uwaga: List zostal zmodyfikowany przez MIMEDefang - patrz nizej: An attachment named extract_strings.sh was removed from this document as it constituted a security hazard. If you require this document, please contact the sender and arrange an alternate means of receiving it. Zalacznik extract_strings.sh zostal usuniety z tego listu, poniewaz moze stanowic zagrozenie (np. zawierac wirusa). Jesli chcesz otrzymac ten zalacznik, popros nadawce o przeslanie go w inny sposob (np. jako spakowany). |
From: <mar...@o2...> - 2004-02-05 05:39:07
|
Hi e-body, I=B4ve just prepared minimum info about other parts of the code. I'm sorr= y, but I cannot submit changes to cvs here from Germany (I will do this w= hen I'm back home next Tuesday), but you can download new docs form http://www.fuw.edu.pl/~wiecko/klearnnotes2-doxygen-040207.tar.bz2 . [I hope this works - please keep the old version, just in case]. BTW, the= y are much clearer displayed by css-supporting (=3Dnot-too-old) browsers. Let me know which parts need more comments. For those of you who are not experienced with qt: qt html docs are very c= lear. They should be installed when you installed qt-devel libs. If you u= se non-rpm linux distribution try typing=20 locate qstring.html to find these docs.=20 Also, you may find it useful to run qt examples. (locate action.pro). Jus= t 'make' in each subdir (let me know if you had problems with examples co= mpilation - I'll try to help; but I will not be able to check my e-mail u= ntil next Tuesday - sorry). Kdelibs docs are not that up to date but still useful. These are classes = like KDialogBase etc. (names starting with "K"). Best, Marek |
From: <mar...@o2...> - 2004-02-04 14:58:45
|
Hi Antonio, >Well.. i have a redhat 8.0.. > >I'm sure i have automake and autoconf..probably >its an old version. >Where can i find newest versions? I don't know if Javier did not answer your question already, but you may = try typing "autoconf" at http://rpmfind.net . So far it always worked for me. :) ~Marek |
From: <ant...@ti...> - 2004-01-31 08:49:21
|
Well.. i have a redhat 8.0.. I'm sure i have automake and autoconf..probably its an old version. Where can i find newest versions? Bye Antonio >-- Messaggio originale -- >Date: Sat, 31 Jan 2004 01:36:56 -0600 (CST) >From: javier <oxy...@ya...> >Reply-To: jav...@ca... >Subject: Re: [kln2-devel] Hi all >To: ant...@ti..., kle...@li...= > > >Hello there, > >Please give more information >what distro are you using? >do you have the development packages? >looks that you need to install autoconf and >maybe automake. > >Chiao, bambino >Javier > >_________________________________________________________ >Do You Yahoo!? >La mejor conexi=F3n a internet y 25MB extra a tu correo por $100 al mes.= http://net.yahoo.com.mx |
From: <oxy...@ya...> - 2004-01-31 07:36:58
|
Hello there, Please give more information what distro are you using? do you have the development packages? looks that you need to install autoconf and maybe automake. Chiao, bambino Javier _________________________________________________________ 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: <ant...@ti...> - 2004-01-30 23:38:51
|
Hi all My name's Antonio Senatore, I'm Italian, I'm26. I'm a j2ee / Oracle Programmer and i work in Rome for telecomuniations companies in a consukting way. I'm new on the project and i hope i could learnmuch here and have a lot of fun. Well..i would like to start with a question. I'm trying to compile the source code. But, when i run make, this message appear to me: "make cd . && /bin/sh /root/klearnnotes2-cvs-2004_01_30-1.1pre/admin/missing --= run autoconf aclocal.m4:10818: error: Autoconf version 2.54 or higher is required aclocal.m4:10818: the top level make: *** [configure] Error 1 " Which is the way to resolve it? thanks and bye Antonio |
From: Marek W. <mar...@o2...> - 2004-01-28 05:14:23
|
Hi guys, I have just created first doxygen documentation for kln2 source. Right now the main KLearnNotes2 class and ImageItem class (and all their members, slots etc.) are documented. It should really help you understand the source. It is already included in cvs and in the nightly tarball. If you don't want to update your cvs tree and want just the documentation files [it's only 88kB] you can get them at http://www.fuw.edu.pl/~wiecko/klearnnotes2-doxygen-040127.tar.bz2 Comments are very much welcome. I will try to add extra info soon. Current tasks are: Marek - finish the basic source docs; Javier - a cool game based on an interface very similar to an existing one; Jim - the name2note exercise; Yury - some extra voice commands (like "activate note C") Mo - tenor and alto clefs. Antonio joined recently and he and I will still have to clarify his task. As soon as you get some kind of an idea how the result of your task should look like, please, post some description to this list. Others may be both interested and may have some important comments. Also: Jim and Javier - you will have to modify similar parts of the code. Communicate in advance to avoid crushes. Please, don't wait with committing your changes until everything works fine. If you make any substantial changes and the source compiles - commit it even if it still doesn't do what it is supposed to. And the last thing. Tomorrow (Thursday) early morning I am leaving Warsaw for almost two weeks (I will be back on Feb 10). I will try to check my e-mail at least once next week but if you have any serious problems it will probably have to wait until I come back. If you have any urgent issues, please contact me today. Best regards, Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | marek-wie AT o2.pl > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: mo <mo...@no...> - 2004-01-24 10:05:52
|
Hello All Just wanted to introduce myself to the group. I didn't know we were so spread out like we are! I am residing in California in the San Francisco Bay Area, USA. My real name is Mauricio but most people just call me Mo. Either one works for me. In college I put together my own program which involved Music, Art, and Film Studies. Music was probably the most involved in the program as I was required to learn theory, musicianship, and history in addition to other courses. Although its been awhile since I've played, I was at one point fluent in Bass, Guitar, and Piano. I can still play but not nearly like I had played in the past. My background in programming is pretty much entry level. I have a certificate in C programming and am eager to learn more. I was learning on Mac OS X for a while but just recently I built my own computer and installed Gentoo Linux on it. Unfortunately I decided to re-install Gentoo Linux and now I am running into some problems due to some new changes in the installation process. As a result I have not been able to follow up on some of recent e-mails. I hope to be up to speed soon though :) -Mo |
From: Marek W. <mar...@o2...> - 2004-01-22 05:25:30
|
Marek Wieckowski wrote: > if you are using the nightly tarball BTW. Current tarball is up to date (if you download it now, you don't have to update anything). I have just updated it manually. This was info only for those, who have already downloaded the CVS tree. M. |
From: Marek W. <mar...@o2...> - 2004-01-22 05:12:20
|
Hi everybody, I have just made some minor changes in names of classes and objects. These are quite important for easiness of reading and understanding the source. If you have already downloaded the CVS tree, please go to src/ directory and issue: cvs update \ customlevel.h customlevel.ui.h keypressed.h klearnnotes2.h \ KLNcanvasitems.h KLNfancywidgets.h midi_setup.h voice_recognition.h \ customlevel.cpp globals.cpp keypressed.cpp klearnnotes2.cpp \ KLNcanvasitems.cpp KLNfancywidgets.cpp main.cpp midi_setup.cpp \ randomobject.cpp voice_recognition.cpp with additional -d:ext:LO...@cv...:/cvsroot/klearnnotes2 (with LOGIN replaced by your sourceforge nick) after 'cvs' if you are using the nightly tarball. ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | marek-wie AT o2.pl > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: <oxy...@ya...> - 2004-01-22 04:58:27
|
Hello everyone! My name is Javier and I live in Vancouver, Canada. My role in the project is the translation to spanish and soon will be to develop the videogame part of Klearnnotes2. I have a degree in Communications and Electronic Engineering from the University of Guadalajara (Mexico). Not much programming here (maybe assembler). I have 18 years of guitar player and 1 1/2 of violin. I have played almost everiting from rock and jazz bands to classical assembles to tropical, latin and flamenco. Any question that do you may have will be replied as soon as possible. Cheers! Javier _________________________________________________________ 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...@o2...> - 2004-01-20 15:19:06
|
Hi everybody, I just wanted to let you know that I removed the general developers-search announcement from SourceForge "help wanted" pages. Let's see how the work will go in this group. ~Marek PS: There are still announcements about /dev/{mixer,dsp,sequencer} and Makefiles because I thought these are subjects which require some specific knowledge. But if anyone of you would like to deal with these subjects I will remove the announcements; just let me know. http://sourceforge.net/people/?group_id=92354 -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | marek-wie AT o2.pl > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Marek W. <mar...@o2...> - 2004-01-20 15:06:55
|
Hi, About the voice conference: it may be hard to arrange because of slow i-net connection, different time zones and different needs. But I thought about a voice conference as a kind of social event too. You know, to get to know each other better. And at some point it may be needed. If we set it up now we can [and I believe we will] use it quickly in future. Do you like the idea of voice communication at all? On Mon, 19 Jan 2004, mo wrote: > Does gaim have this capability? Or another linux app? Jabber? > If not, I'll just fire up my Mac and use that instead. Mo, you're right: linux version of yahoo msgr does not have voice. Sorry for the confusion. OK, does anybody have experience with linux voice-conferencing? Pyvoicechat? http://phpaint.sourceforge.net/pyvoicechat/ VoIM? http://sourceforge.net/projects/voim/ Gaim? http://gaim.sourceforge.net/ anything else? Which is the easiest to install? ================================= Could somebody, please, volunteer to look into this and suggest a step-by-step procedure for all of us? ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | marek-wie AT o2.pl > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Jim B. <jim...@bi...> - 2004-01-20 14:18:57
|
Hi everyone, Jim here, just thought id touch base and say gday. Im a mechanic in Australia that has been programming in C for a while now. Ive switched to C++ a couple of months ago and finding the transition fairly good. Ive also been playing guitar for 12 years now. Im ok on the piano too. If you have any queries about music, chords, playing guitar - id be happy to help you out. Id also be happy if you can give me any advice in programming :-) I look forward to contributing and helping out any way I can. My Yahoo messenger ID is o0nazgul0o Drop me a line. --------------------------------------------------------------------- Jim Burger 24 Bag End Hobbiton, North Shire, Meriador, Middle Earth 0111 --------------------------------------------------------------------- |