klearnnotes2-devel Mailing List for KLearnNotes2 (Page 4)
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: Mo <Mo...@no...> - 2004-03-09 09:43:27
|
Hello all I've been assigned to add new clefs: Treble and Alto. I have been slow in doing this (C++ is new to me, but mostly, I am lacking time to work on this project due to personal life obligations). Just wanted to update all of you: I made recent changes: I re-name method setClefTreble to setClefByAction and got rid of setClefTreble. Changes were made to klearnnotes2.h and klearnnotes2.cpp. I'm still working on elaborating the new method, btw. Thanks! -Mo |
From: Mo <Mo...@no...> - 2004-03-09 09:02:21
|
Hello Klearnnotes team :) Sorry for the delayed response but I wanted to make some comments on this e-mail. Personally, in my opinion, learning the names of notes is the start of musical anaylsis and theory. From there, the student can move on to scales, minor and major keys, key signatures, chords and their inversions, and so on. It has become apparent to me, however, there are differences in some locations in the world on how this is dones. In some places, letter names are dominant while in others, solfege is the norm. Solfege however, does come with its set of problems mostly due to the fact that (1) there are two different variations of it and (2) there are some issues in determining how to label a raised or lowered note in the Fixed Do method. However, looking ahead: Say in the future we decide to add some non-traditional scales into our program For example... whole tone scale: C D E F# G# A# Diminished Scale C D Eb F F# G# A B Blues Scale C Eb F (F#) G Bb Can either Solfege methods work in these cases without confusing the user? For example, in Fixed Do, do we sing Fa for F and F# but label the notes as Fa and Fa#? I'm not even sure if Movable Do would even work in these odd scales. Mainly due to the reason in that there is no tonal center in some of these scales and Movable is based on assigning Do to the root/tonic note. > Just to restate the problem: > 1. we need Solfeggio, because apparently this main method of naming notes > in some parts of the world (not because it is easier to be sung) Okay, I didn't realize this. This is new to me :) > 2. movable Do doesn't solve (1.) because it is not used there (and would > teach people things their folks would not understand) Yes, I do realize not everybody uses Movable Do. Just as I find Fixed Do confusing at times, I can see how the reverse can be true. > 3. fixed Do is ambiguous (see bellow). The great advantage that Fixed Do has over Moveable Do is that one does not need to know what key the music is in. Somebody posted this link: http://en.wikipedia.org/wiki/Solfege And I will quote from it: "the disadvantage [of Movable Do] is that the singer must do a harmonic analysis of the piece in order to sing the correct syllables. In fixed Do, the pitches are set: the tonic, Do, is C, Re is D, and so on; Fa is easy to remember, since it is F." > 2. Similar problem: we have to test if an user remembers the key signature > in the following part of the score. OK, we have G Major key signature. Now > there is a F note in the score. "Dear user, what is the name of this > note?". Well, if we don't distinguish Fa and Fa# we cannot test if the > user remembers that key signature applies to this note. I see the problem. If we ask the user to write a G Major scale, should we expect a "Fa#" or "Fa"? If we are testing for correct musical anaylsis, I would think Fa# would be correct. But if the user is singing the note, then Fa would be correct. > > If so, why are we even bothering using solfege at all? > > Because the guys repored, that in their environment naming notes by single > letters is virtually not used. They use Do/Re/Mi for everything: naming > notes, scales, pieces of music. Ok, I didn't know about this either :) The guys are going to have the best input on this on how this system works for them in their environments. Marek has come up with some good ideas on how to resolve issues pertaining to some of the issues of Fixed Do. I feel fine with his resolutions. We should take into consideration however, with some issues that could come up such as unusual scales, decorated chords, etc. -Mo |
From: Marek W. <Mar...@fu...> - 2004-03-08 18:02:24
|
Fernando, I tried to design some common note handling interface by defining a BaseMusicNote class (see src/basemusicnote.{cpp,h}). This has a drawback, that some things are right now done twice in different way in v1.1 code and in different way in the new widgets setup. Maybe you could already now add your new code to the BaseMusicNote class (directly within the class or by making it accessible there) and implement BaseMusicNote usage in other parts of the code? This would simplify future work on kln2 (things would be done using just one, common note handling interface). On Sun, 7 Mar 2004, Fernando Cuenca wrote: > orderOfNotes global char array. That array is used [...] > to get the note name ; [...] > to get the ascii value associated with the note. So the first of the above points is used to display note's name in the staff (when highlighted) and on buttons. "Ti" or "H" or "B". Now, the second thing is quite tricky, because it is also used to react on user input (through keyboard). And this has to change when notation changes ('T' or 'H' or 'B'). How to do this? Note that for accidentals we need shift and ctrl or shift and alt handling too. One character stuff is enough for v1.1 exercises without accidentals, but we need to think about how it can be extended. > QString GetNote(ScaleNote) const; Grrrrr. There are too many "notes". No one will be able to guess what "getting a note" means. Call it more explicitly, maybe: QString getStringNameOfNote(ScaleNote) const; or QString getStringName(ScaleNote) const; BTW. please, keep capital first letter reserved for class/types names only. > int GetNote(ScaleNote) const; What is this one to return? ASCII char? How will it be extended to accidented notes? This is probably a question of where this method is meant to be used: probably the ASCII char is now used both for identifying a note (e.g. when defining a MIDI pich step for a treble or bass clef notes) and for checking keyboard input :(. One way: one method returning a number or char of the base name (0 or 'C' or 'D' for any C,C#,Cb, 1 or 'D' or 'R' for any D,D#,Db), and the second returning accidental (1 for C#,D# etc, 0 for C, D etc. -1 for Cb, Db). Nice for identifying a note. For keyboard input maybe one QKeySequence? getKeySequence(ScaleNote) Maybe both? AND/OR: a method returning a BaseMusicNote* (example of note of this name). This has an advantage of possibility to define for BaseMusicNote * a function 'bool nameMatches (BaseMusicNote*, BaseMusicNote*)' true for an C# (e.g. one octave higher) * a function 'bool pitchMatches (BaseMusicNote*, BaseMusicNote*)' true for any note of the same pitch (e.g. C# and Db) * a == operator for (which would be true if both pitch and name match). and use all the methods of the BaseMusicNote. Plus some methods like BaseMusicNote::getKeySequence() OR: maybe keep the features of ScaleNotation within BaseMusicNote rather than separate class? Both have advantages and disadvantages. Keeping a separate ScaleNotation may or may not make the code cleaner. It is easier to implement in v1.1 part code (one global array changed to your Singleton). On the other hand, keeping things self-contained within BaseMusicNote properties and methods doesn't sound that bad either. Look at how NameButtonsBox sets up its buttons compared to the v1.1 buttons. > Later, I will add the GUI components OK. What would these be? Change of behavior of "German/English notation" menu item, right? Anything else? ~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-03-08 16:27:46
|
On Sun, 7 Mar 2004, Fernando Cuenca wrote: > In a nutshell: is there any particular IDE I should be using? or should I > just go and change the Makefiles manually? Edit Makefile.am-s manually. BTW, I made some corrections to the files, and it should work fine now (in 1.1 release after editing Makefile.am, .moc* were not created). Please report if this introduced any new problems. > I also noticed there is a .pro file This one is used for generating translations (see po/i18n_howto). > I saw what it looks like a kdevelop project file, This is how things started. Kept "just in case", but it is very much not up to date. ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Fernando C. <fer...@ya...> - 2004-03-08 03:28:24
|
Hi, Something I forgot to ask in my previous e-mail: what development environment are you using to maintain the code? I saw what it looks like a kdevelop project file, but is not for the version I have (2.1). I also noticed there is a .pro file I could open with Qt Designer. In a nutshell: is there any particular IDE I should be using? or should I just go and change the Makefiles manually? Thanks. Saludos! Fernando. __________________________________ Do you Yahoo!? Yahoo! Search - Find what youre looking for faster http://search.yahoo.com |
From: Fernando C. <fer...@ya...> - 2004-03-08 01:08:55
|
Hi all, My name is Fernando Cuenca and I have been entrusted to implement the Solfeggio (aka Do-Re-Mi) notation in KLearnNotes. I have been looking at the code and I'd like to share some design ideas on how to implement the new functionality. Since I'm new to this group, though, let me introduce myself first. I'm originary from Cordoba, Argentina but I'm now living in Toronto, Canada, where I work for a software development company. I studied music throught all my chilhood and the piano for a few years in my late teens (I'm 32 now). I have recently decided to restart my piano playing, but I realized that if I want this attempt to be lasting I need to improve the skill that prompted me to abandon it years ago: my sight-reading (it really sucks :-). In any case, that's how I came across KLearnNotes. Now, to the Do-Re-Mi issue: as far as I could see by scanning through the code, currently the notes are stored in the orderOfNotes global char array (declared in klearnnotes2.h). That array is used in several places, mainly to get the note name (which usually is put into a QString object); in other cases, is used to get the ascii value associated with the note. What I'm planning to do is to replace that array with a new class, which will provide for both kinds of access (QString and int) and a notation switching mechanism: class ScaleNotation { public: // ... other declarations... enum ScaleNote { evB = 0, evA, evG, evF, evE, evD, evC } QString GetNote(ScaleNote) const; int GetNote(ScaleNote) const; static const ScaleNotation* GetCurrentNotation(); static void SwitchNotation(ScaleNotation*); }; In a first pass, I will refactor all the existing code to use this class (which will be a Singleton, to provide a unique, globally accessible instance). I'll commit this change to CVS, so everybody else can start working with this instead of the global array. Later, I will add the GUI components, for which I will need some guidance, since I don't have experience with Qt/KDE development. Well, that's the idea. Any comments will be appreciated. Saludos! Fernando. __________________________________ Do you Yahoo!? Yahoo! Search - Find what youre looking for faster http://search.yahoo.com |
From: Marek W. <Mar...@fu...> - 2004-03-07 01:02:09
|
Hi e-body. I just wanted to let you all know, that I did some major changes in the kln2. Parts which have already been there were almost not modified, so what you are working on should be little affected (although will have to be modified in future to get full advantage of the changes). Please, report any problems. =========================== First of all, I included a new class BaseMusicNote. This holds many static functions for conversion of e.g. a form with note+accidental to midi pitch, returning number of the note in octave (0 for ANY C, 1 for ANY C# or Db and so on), returning QString of a note name dependent on "enum Notation {English, German}" and things like this. Extra methods of this kind will have to be added in future. Please, for any such a conversion needed, add a new method into BaseMusicNote. I think we needed such an abstraction of a music note. Current 'Note' class is too much connected to staff canvas picture. And many abstract note properties were scattered all through the code. ========================== Another change affects the structure of the code very much. Now, let's think about future exercises. They re-use the same kinds of widgets. Example: There is now a note-to-name exercise : you see a note in the staff, and you choose it's name from namebuttons. But there will be e.g. note-to-fret exercise : you see a note in the staff (so the staff canvas is used again) and you should find an appropriate PieceOfFret (a one-note place on the fretboard). And there may be a fret-to-name exercise: you see a PieceOfFret highlighted (fretboard reused) and should choose appropriate namebutton (namebuttons reused). Basically, what I am trying to say is : there will be only few different elements just used in different configurations. In the form in which it is written now it would be quite hard to implement. The nameButtons, the staff canvas etc. are direct properties of KLearnNotes2 class. Therefore, their initialization makes the code quite complicated (anybody who read KLearnNotes2 constructor knows, it takes a pen and a big piece of paper to figure out which layout corresponds to which widgets and where it is placed in the main window). This makes any modifications quite complicated. Plus, all the elements have to know about each other: did you noticed, that one of arguments of ClickableView constructor is ... KLearnNotes2* ??? And it runs KLearnNotes2 class methods directly! (grep for "papcio->isStarted()"). I guess this is one of the best candidates for the bottle of wine contest (do you remember my introductory kln2-devel e-mail? :) . Nope, that's not the way things should be done. * All self contained elements should be extracted into separate classes (NameButtonBox, Staff, PianoKeyboard, GuitarFretboard etc.). * They should not run each other methods directly; rather, they should emit signals informing about what an user is doing and let the exercise setup decide how to react on this (that is, to which slots of which objects connect these signals). OK. So I did it for the two simplest examples: PianoKeyboard and NameButtonBox. I also added examples of these to the KLearnNotes2 constructor, so that you could see how they are used (see the attached screenshot). I DO NOT INTEND TO KEEP THEM DISPLAYED THIS WAY. This is added temporarily just to show you what's new. What to look at? First of all, look at the end of KLearnNotes2 constructor. The PianoKeyboard and NameButtonBox are created, added and set up (signals are connected to some slots) just in few lines of code! What a difference compared to the complicated setup of the old buttons/canvas ! Basically, everything that deals with placement of buttons/piano keys (="everything messy") is done in the PianoKeyboard and NameButtonBox classes. Second thing: you will see in standard output info about all signals emitted (just click on the piano keys/nameButtons). As you see, they are much more detailed than what is really used right now, so more detailed user action handling will be quite easy too. And the third thing: new files musicwidget.{h,cpp} and modifications of KLNfancywidgets.{h,cpp} are examples of usage of BaseMusicNote class. ========================== This is the very crude first version of the new classes. If you look at the code you will see that many methods are not written yet (they are just "{}"). RandomObject stuff should be handled within the classes. Also, I didn't write comments for all the methods/members yet. ~Marek PS: For those with slow i-net connection: updating Makefile.am basemusicnote.cpp klearnnotes2.cpp musicwidget.h Makefile.in basemusicnote.h musicwidget.cpp KLNcanvasitems.cpp KLNcanvasitems.h KLNfancywidgets.cpp KLNfancywidgets.h globals.h and, because of recent Mo's commits: klearnnotes2.h in src/ should be enough. -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: <oxy...@ya...> - 2004-03-04 17:58:09
|
Yes, I really know what are you talking about. I took a semester of solfege in Mexico. But that system was explained to us in the first day only, and we used the fixed one. The moveable one is used to learn solfege in the contries that uses the A B C system, like here in Canada. Maybe we can use the system on the game in the future when the microphone input is working already and as Instrument: voice option, but by now is not a good idea. Remember that klearnnotes is for learn to read music, not to learn to sing. 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...@fu...> - 2004-03-04 14:52:40
|
On Thu, 4 Mar 2004, Mo wrote: > I hate to beat the subject into the ground but I do think we should look > beyond our group and decide what is best for our users. OK. The problem is, that kln2 is fairly new program so solutions like: > Or can we set up a poll on the homepage and let people vote for a > determined period of time? simply would not work. And I'm not sure if it is clear for us what we would ask about in the poll (I mean, what the choice really is). > Are we going to implement this soon? Yeah, why not? It doesn't seem as too much work. If Fernando will have time to do this fast - great, if not, someone else can do this. This is really not much work. :) And most of this involves moving from using one char to a QString - it does not depend on which Solfeggio convention is used. And, anyway, the most important question always is where are we aiming, not in what order etc. So: what is the perfect final goal? > I wrote up an elaborate e-mail explaining this system [...] > I'm not sure if I send it now Sure. Send it. Just to restate the problem: 1. we need Solfeggio, because apparently this main method of naming notes in some parts of the world (not because it is easier to be sung) 2. movable Do doesn't solve (1.) because it is not used there (and would teach people things their folks would not understand) 3. fixed Do is ambiguous (see bellow). > Is this Solfege system suggesting an *altered* Fixed Do method? OK, OK. This needs clarifying: > The Fixed Do system assigns the Solfege words to specific notes. The > note "C" will alway be "Do". The note "D" will always be "Re". Yes. So as long as there are no sharps/flats there is no problem. > But say you have a "C#" ... in the Fixed Do system it will still assing > "Do" to this note. OK. But this introduces a confusion, I guess. 1. In one of his letters, Fernando suggested that the same convention is also used for scale naming. You can call both C and C# "Do" when you see a note in a staff. But now imagine a name-to-scale exercise. Give an user a task, say "put appropriate number of accidentals to build up a key signature 'Do major'". Now, how to hell the user is to figure out if she is to put no accidentals (for C Major) or 7 sharps (for C# Major)? 2. Similar problem: we have to test if an user remembers the key signature in the following part of the score. OK, we have G Major key signature. Now there is a F note in the score. "Dear user, what is the name of this note?". Well, if we don't distinguish Fa and Fa# we cannot test if the user remembers that key signature applies to this note. I guess, this is why the "modified Fixed Do" appeared in the discussion. I mean, what to do about it? I think, we have to distinguish F from F# (right?). If fixed Do doesn't do this and people have never seen anything like Fi what else, apart from introducing "Fa#" can we do? > ****************** > MOVABLE DO SYSTEM > Written Solfege: > DOb REb MIb FAb SOLb LAb TIb > > Sung Solfege: > "dough flat" "ray flat" "me flat" "fa flat" "sol flat" "la flat" tea > flat" > ******************* :D Yep, that's the problem I meant when in one of previous e-mails I voted for movable Do. > Can I repeat myself here? The Solfege method was developed with intent > of being sung. Singing an "A flat minor" scale and pronouncing each > "flat" is not really smooth. OK. But I suppose, we can assume that users are not complete morons. There is a distinction between what you say/sing and what you recognize. If we write Do, Do#, Re it doesn't mean you have to sing "do, do-sharp,ray". You would rather sing "Do,Do,Re" but REMEMBER that the second Do has a sharp. (OK, some users will get caught in this trap - so what to do about it? Would a clear helpfile stressing this point do?). I mean, after all we will force users to make some mouse clicks, right? Even if you use fixed Do you are aware that sometimes "Do" means C#. What we would do by introducing "Do#" string would be like saying "it's Do, but it has a sharp". Is it really different from what you THINK when you use fixed Do? > If so, why are we even bothering using solfege at all? We might > as well sing A minor like this: > > A Flat - B Flat - C Flat - D Flat - E Flat .... Yep. In the US - maybe. ;) > If so, why are we even bothering using solfege at all? Because the guys repored, that in their environment naming notes by single letters is virtually not used. They use Do/Re/Mi for everything: naming notes, scales, pieces of music. Just to summarize: * fixed Do seems too limited to be used for all kinds of questions * movable Do is great; theoretically :( ; there is no point in forcing users to learn things nobody around them would understand * fixed Do can be very simply modified by adding a #/b sign after note's name; it's up to a user if she pronounces it; nevertheless, everybody using fixed Do has this modification in their minds - you do remember if by saying "Re" you mean "D", "D#" or "Db". Therefore I believe, adding a sharp/flat sign to indicate what you mean by "Re" is not that great of unorthodoxy. Would it be really confusing? So I suggest that the aim (and choice for users) would be four kinds of note's names: * English (one letter, with A-B-C) * German (one letter, with A-H-C) * modified Fixed Do ( Do-Do#-Re with an explanation in docs: "Do#" is to be sung "Do", just remember it has a sharp) * Movable Do (Do-Di-Re). And, yes, I agree. We have to clarify this. No discussion is closed until we find a satisfactory solution. ~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-03-04 09:09:30
|
> > On Wed, 3 Mar 2004, Silhusk wrote: > > I agree, personally I didn't even know about the existence of the > > Do-Ti-Te stuff! > > OK. It is Fernando, Javier and Carlo against Mo. The case is closed: > we stick to Do-Do#/Reb-Re stuff for now. > > Mo, if you think Do-Di/Ra-Re is useful it can be coded in future, but > even then Do-Do#/Reb-Re should be left as a default Solfeggio. > I hate to beat the subject into the ground but I do think we should look beyond our group and decide what is best for our users. Are we going to implement this soon? Or can we set up a poll on the homepage and let people vote for a determined period of time? I have a feeling that maybe some of you may not completely understand the Moveable Do system that I am suggesting. I wrote up an elaborate e-mail explaining this system the other day but could not send it due to e-mail problems. I'm not sure if I send it now if it would make a difference or not. Let me know if you guys want me to try and resend it. It might clear up some confusion on it(?). I don't know at this point. On the other hand...I have never seen Solfege sung as some of you are suggesting. So, I will be honest here and admit I don't completely understand the method we have decided on so far. Is this Solfege system suggesting an *altered* Fixed Do method? The Fixed Do system assigns the Solfege words to specific notes. The note "C" will alway be "Do". The note "D" will always be "Re". But say you have a "C#" ... in the Fixed Do system it will still assing "Do" to this note. (These examples are written and sung as follows) *************** The Fixed Do example (first three notes of scale): C Major Scale: Do Re Mi C Minor Scale: Do Re Mi G Major Scale: Sol La Ti G Major Scale: Sol La Ti A Flat Minor Scale: La Ti Do Re Mi Fa Sol ******************** ******************** The Moveable Do system in contrast will assign "Do" to the root note. (First three notes of Scale) C major scale: Do Re Mi C minor scale: Do Re Me G Major Scale: Do Re Mi G Minor Scale: Do Re Me A Flat Minor scale: Do Re Me Fa Sol La Te ******************** On the other hand, the Solfege method that others are presenting here made no indication if it is a movable system or a fixed system. This is important to make this clear since it will have an effect on how we implement this. Remeber, I have no experience in the suggested Solfege method and I don't want to make assumptions. Also, remember that Solfege was meant to be sung. The system was developed by a Monk in the 11th(?) Century to teach people to sight-sing. So with that in mind, are we suggesting that a "A Flat Minor Natural Scale" is sung like this? (Using the proposed "approved" method to the best of my understanding but yet undefined if it is a MOVABLE or FIXED system.) ****************** MOVABLE DO SYSTEM Written Solfege: DOb REb MIb FAb SOLb LAb TIb Sung Solfege: "dough flat" "ray flat" "me flat" "fa flat" "sol flat" "la flat" tea flat" ******************* ******************* FIXED DO SYSTEM Written Solfege: LAb TIb DOb REb MIb FAb SOLb Sung Solfege: "la flat" "tea flat" "dough flat" "ray flat" "me flat" "fa flat" "sol flat" ******************* Can I repeat myself here? The Solfege method was developed with intent of being sung. Singing an "A flat minor" scale and pronouncing each "flat" is not really smooth. I could be way off in my understanding of our approved method. I could be understand the whole proposed method wrong. On the other hand, it seems that since we are going in this direction for now, I really want to make this clear. Right now I am confused because we are introducing "flats and sharps" into the solfege vocabulary and that is something that I have not seen before. Nobody has indicated if this was a Fixed or Movable Do System. And does one really pronouce the words "sharp and flat" while singing in solfege in this system? If so, why are we even bothering using solfege at all? We might as well sing A minor like this: A Flat - B Flat - C Flat - D Flat - E Flat .... Thanks!!! >From a confused Mo :) |
From: Marek W. <Mar...@fu...> - 2004-03-03 22:17:02
|
On Wed, 3 Mar 2004, Silhusk wrote: > I agree, personally I didn't even know about the existence of the > Do-Ti-Te stuff! OK. It is Fernando, Javier and Carlo against Mo. The case is closed: we stick to Do-Do#/Reb-Re stuff for now. Mo, if you think Do-Di/Ra-Re is useful it can be coded in future, but even then Do-Do#/Reb-Re should be left as a default Solfeggio. > The idea of a user-editable config file is great, but we should provide > pre-configured files for most notations. Sure. :) > What about a wizard to > let the user chose the notation from a complete list with descriptions > (also geographical), and let him chose also the input method > (fretboard/keyboard)? We'll see. Anyway, I think this should NOT (!) be solved by translations - any user should be able to train any notation system, even if it seems not to fit to his language. For now we have three or four notes' names conventions - it can be handled by a simple menu. In future, if other things will be geography-dependent we can think about such a wizard dialog. ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: <oxy...@ya...> - 2004-03-03 19:15:17
|
Marek: [root@linux]# apt-get install qt Reading Package Lists... Done Building Dependency Tree... Done qt is already the newest version. 0 packages upgraded, 0 newly installed, 0 removed and 0 not upgraded. [root@linux]# locate libqt-mt.so.3 /usr/lib/qt-3.1/lib/libqt-mt.so.3 /usr/lib/qt-3.1/lib/libqt-mt.so.3.1 /usr/lib/qt-3.1/lib/libqt-mt.so.3.1.2 [root@linux]# rpm -qf /usr/lib/qt-3.1/lib/libqt-mt.so.3.1.2 qt-3.1.2-14 [root@linux]# /usr/bin/kde-config --prefix /usr/bin/kde-config: error while loading shared libraries: libqt-mt.so.3: cannot open shared object file: No such file or director My system is apt based (Planetccrma) I only need the name of the rpm to install it. Thanks, Marek _________________________________________________________ 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...> - 2004-03-03 12:48:12
|
Javier, On Tue, 2 Mar 2004, [iso-8859-1] javier wrote: > /usr/bin/kde-config: error while loading shared libraries: > libqt-mt.so.3: cannot open shared object file: No such file or directory There are two kinds of qt libraries: with and without "multi thread" (mt) support. You need the mt version. On my comp "locate libqt-mt.so.3" gives (among other lines) /usr/lib/qt-3.0.3/lib/libqt-mt.so.3.0.3 and "rpm -qf /usr/lib/qt-3.0.3/lib/libqt-mt.so.3.0.3" says "qt-3.0.3-11". So maybe you have non-mt version of Qt? Note, that at least on my computer libqt-mt.so.3 is part of mutli thread Qt, not Qt-devel. Anyway, you should be able to run kde-config from command line. On my computer '/usr/bin/kde-config --prefix' gives /usr > -------------------------------------------------------- I really like your idea of the game. :) > level 1-3 treble clef But, please, please, in the beginning focus only on this. Make the game work on treble clef (and forget about grand staff for a while), without changing any graphics. I believe, you can do this quite quickly. :) Please: KISS. _K_eep _I_t _S_uuuuper _S_imple. Small steps - this is the only way to progress! You said, you have no experience with Qt. This way you will learn how things are used in this library, get some experience, so working in future on the grand staff (both treble and bass clefs on the same page) will be easier. If you jump right now into this you may spend enormous amount of time, and do something that doesn't really fit other parts of the program (so your grand staff may be hard to use for other exercises etc.). Let me say it again: please focus now on making the game work on treble clef, and treat this as an occasion to get familiar with kln2 source. ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: Silhusk <si...@bl...> - 2004-03-03 10:19:56
|
Hi, > The notation that is used in the rest of the world is > DO-DO#/REb-RE-RE#/MIb-MI-FA-FA#/SOLb-SOL-SOL#/LAb-LA-LA#/SIb- > SI, even the singing guys use it. I agree, personally I didn't even know about the existence of the Do-Ti-Te stuff! (I found some info at http://en.wikipedia.org/wiki/Solfege ) The idea of a user-editable config file is great, but we should provide pre-configured files for most notations. Otherwise the user would have to write his own config file before starting to learn notes. Anyway, how can the user know wich notation he should learn? What about a wizard to let the user chose the notation from a complete list with descriptions (also geographical), and let him chose also the input method (fretboard/keyboard)? BTW: I speak/write italian, english, french and (some way) german; no spanish, sorry... regards, Carlo |
From: <oxy...@ya...> - 2004-03-02 07:53:53
|
here is the full output of configure. ???? Attachment 1. I am happy to see that is some work done already and will the time shorter to finish the game. this is how will work the game: level 1-3 treble clef level 4-6 bass clef level 7 treble + bass clef level 8-9 tenor clef level 10 all clefs The background will be the same, second attachment, exept for the tenor clef, when will be only this clef in the middle C, in black and the bass and treble, shaded. -------------------------------------------------------- -------------------------------------------------------- treble-------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -------------------------------------------------------- -------------------------------------------------------- bass---------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- (treble)------------------------------------------------ -------------------------------------------------------- -------------------------------------------------------- Tenor- - - - - - - - - - - - - - - - - - - - - - - - - - -------------------------------------------------------- -------------------------------------------------------- (bass)-------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- also the third attachment is the way I want the game, with a Hummingbird that is controlled by the user and ballons instead of notes. That will make it way too diferent from noteattack and even the original Hummingbird. What do you think? _________________________________________________________ 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...> - 2004-03-02 06:34:31
|
On Mon, 1 Mar 2004, javier wrote: > Also I decided to use Qcanvas for the game. Anyone > have experience in this library? Javier, The notes, staff and lines are already now displayed in QCanvas. The lines are inherited from QCanvasLines, Note inherits QCanvasEllipse and clefs are basically QCanvasRectangles, and so on. This is much simpler than what it looks like. :) I will send you some suggestions in a moment. > Here is an attachment text file with my last > ./configure. > Some devel stuff must be missing. ? Is it the full file? It seems to be truncated. The last line of what you sent is checking for meinproc... /usr/bin/meinproc and no line above this one seems to report a problem. On my computer after the 'meinproc' line there are few more: =========== checking for meinproc... /usr/bin/meinproc checking whether byte ordering is bigendian... no checking for MAXPATHLEN... 4096 checking if doc should be compiled... yes checking if po should be compiled... yes checking if src should be compiled... yes configure: creating ./config.status config.status: creating Makefile config.status: creating doc/Makefile config.status: creating doc/en/Makefile config.status: creating doc/HTML/Makefile config.status: creating doc/px/Makefile config.status: creating po/Makefile config.status: creating src/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands Good - your configure finished. Start make now =========== Do you get anything like this? ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
From: <oxy...@ya...> - 2004-03-02 02:55:48
|
The notation that is used in the rest of the world is DO-DO#/REb-RE-RE#/MIb-MI-FA-FA#/SOLb-SOL-SOL#/LAb-LA-LA#/SIb- SI, even the singing guys use it. Also I decided to use Qcanvas for the game. Anyone have experience in this library? Here is an attachment text file with my last ./configure. Some devel stuff must be missing. Cheers!! _________________________________________________________ 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...> - 2004-03-02 00:27:15
|
Hi e-body, On Sun, 29 Feb 2004 16:12:59 Fernando Cuenca wrote: > > My suggestion would be adding it as a third option for > > German/English notation (I guess "French notation" is an > > adequate name for do-re-mi stuff). > > What about calling it "Italian" or "Latin"? According to the > legend, the names come from: > > _Ut_ queant laxis (eventually became "do") > _Re_sonare fibris > _Mi_ra gestorum > _Fa_muli tuorum > _Sol_ve pulluti > _La_bii reatum > _S_ancte _J_ohannes (eventually became "si" or "ti") Wow, I just wanted to learn about music, and now I am picking up Latin... :) After reading Mo's letter: I would stick to "Solfeggio" name for this - it is probably less confusing. Or we may simply call this "Do-Re-Mi notation". > We could use "Ti" for "si", which is what English speakers use > ("si" gets confused with "C"). In that case, all notes would > have a unique letter: > > [d]o > [r]e > [m]i > [f]a > [s]ol > [l]a > [t]i > > I haven't looked at the code yet, but I would assume the > keystrokes associated with each letter are kind of hard-coded > now, aren't they? In that case, we also need to find a way of > generalizing that. First of all: they do change when you change notation from English to German (the first one reacts on computer kbd key "B" the other on "H"). And there is another kbd input way: you can press number keys displayed above the buttons (3 for C, 4 for D and so on). So they are not that 'hard' coded. ;) > > How do you call these? E.g. what is C#? "Do sharp"? "Do with > > a cross"? > > In English, it would be "Do sharp" or "Mi flat". In Spanish, "Do > sostenido" or "Mi bemol". > > > Is it clear what "Do #" might mean? > > Yes. We use the "#" sign for sharps and "b" for flat, > following the name (like "Do#" or "Mib"). > > > how are chords like "C sharp major" called? > > In Spanish you use capital M for Mayor and lower case m for > minor. Like in: "Do# Mayor" and "Mib minor". Also, if you > don't mention the mode (like in just "Do#") it's assumed you > are refering to the Major mode. The reason I asked was that in Poland do-re-mi is sometimes used but I have never ever seen it with any accidental. On Mon, 01 Mar 2004 Mo wrote: > Ascending: > Do Di Re Ri Mi Fa Fi Sol Si La Li Ti Do > > Descending > Do Ti Te La Le Sol Se Fa Mi Me Re Ra Do [Sigh.] Fernadno's and Mo's letters are a bit contradictory. So "Di" or "Do #"? "Te" or "Ti b"? I like Se-Sol-Si more than "Sol b - Sol - Sol #" (because it is more concise and can be used for singing) but the question is which is more frequently used. Could you, guys sort this out between yourselves and let us know about the conclusion? In the end there are two contradictory directions: * a user should have a choice * a user should get a clear interface (therefore, 30 different notation options are not acceptable). So, I would choose one of those (my vote goes for Do-Ti-Te/Li-La-Le/Si-Sol-Se/Fi-Fa-Mi-Me/Ri-Re-Ra/Di-Do), and store it e.g. in a user-editable config file. Does this seem reasonable? ~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-03-02 00:12:21
|
Fernando, > About CVS, do you have any branching and/or check-in > policy I should be aware of? Actually everybody but me is new to the project. People started working on things and there are already some commits, but there is no clear CVS policy so far. Please, commit only versions that compile (otherwise you would disturb anyone who works on a separate task). Also errors in administrative files (e.g. Makefiles) may lead to some hard-to-predict problems, so I would rather be the only person who commits changes to them. Once these requirement is fulfilled - commit as often as possible. Even if not everything is implemented or doesn't do what it is supposed to do yet. This way 1. people can follow others work and adjust what they do; 2. if few people change the same file small changes are merged better. Once you get an idea what you want to change, I suggest that you share with others on kln2-devel (see my e-mail on key signatures as an example). Especially, that your work will overlap a bit with work of others (for example Jim is working on name-to-note exercise which deals a lot with buttons). ~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-03-01 09:50:37
|
> If Mo have OSX, that could help to attract more > programmers, so maybe a binary for apple computers is > a good idea. Yes, I have OS X. Though its been several weeks since I have booted up my Mac. I am enjoying the transition to Linux :) > Somebody else speaks spanish? I can. Well...sort of. I can understand it better than speak it. My mom talks to me all the time in spanish. -Mo |
From: Mo <Mo...@no...> - 2004-03-01 09:42:08
|
> > In Poland we call C sharp "C#" or "cis". I don't really know how > > to extend "do-re-mi" system to accidented notes. Maybe this > > should be kept only for preliminary lessons, without > > accidentals, and not extended for features planned in future? The Do-Re-Mi method (Solfeggio) is great and has its place in musicianship. One will find this used in sight-singing of melodies without text. There are several methods of the Do systems: THE FIXED Do: Notes C,D,E,F,G,A and B are mapped to Do, Re, Mi, Fa, Sol, La, and Ti. The name for each note is sung without any regards to accidentals. For example, in the G major key, Sol is G while F# is Fa. THE MOVEABLE Do: In this method, Do always represents the tonic or first degree of the scale, regardless of accidental. For example, in the G major key, Do is G while Ti is F#. The chromatic scale is as follows in this method: Ascending: Do Di Re Ri Mi Fa Fi Sol Si La Li Ti Do Descending Do Ti Te La Le Sol Se Fa Mi Me Re Ra Do Personally, I have learned the Movable Do system and that seems to be the predominant method here in the USA. Although I have had professors in the Universities that have used the Fixed Do method primarily. At the moment KLearnnotes2 is aimed at learning notes. We don't have to stop here however. Learning notes is very basic part of theroy. There has been discussion of including key signatures which is great. Learning chords and their different inversions would be nice as well. Even better yet, introducing tempo and sequence of notes would be awesome. Have the application plays very simple intervals of notes and the student would select the correct notes and place it on the clef. Later it could be extended into playing simple melodies with varying rhythm and tempo. Again here, the application will play a tune. The student then has to listen and then place the correct notes on the clef. The latter part is where the Solfegio system will help a student. Right now, learning notes does not require a sense of tonality, intervals, scales, or different keys. If we introduce intervals and keys, and extend it as I written above, the Solfeggio system would work nicely. Personally I have found the Moveable Do system easy to learn and it gives the student a sense of tonality. We should not however abandon the actual names of notes. If we decide to go in this direction, introducing melodies and rhythm, it will turn our application from learning music theory into a musicianship application. |
From: Marek W. <Mar...@fu...> - 2004-03-01 05:20:55
|
Hi e-body, On Thu, 26 Feb 2004, javier wrote: > Here is a timidity++ info: > http://www.onicos.com/staff/iz/timidity/doc/oss-hack.htm OK, using this file (with some minor changes) I added timidity support. For me it works. You can select it from the sound setup dialog. Note, that new classes were introduced. It should be fairly easy to include other sound output ways now. If anybody is interested (and for example would like to add ALSA support?)- see, how it is done for OSS vs timidity (doxygen docs are already generated). Problems: 1. Maybe it's only my midi patch bank, but guitar sounds are terrible. Piano is OK (but still much worse than OSS stuff). 2. Maybe it's only my midi patch bank, but very low notes make ... very high sounds. Try the bass clef - only few top notes make reasonable sounds. 3. Some new compile time warnings. It compiles for me, but please check if the new CVS version compiles on your systems. 4. The kind of selected midi output method is not saved. Until it's done you will have to run sound setup dialog each time if you want to use timidity. 5. The volume of first timidity sounds is much too big. Then, somehow it normalizes... 6. You may need to select timidity TWICE; it takes extra time to start the server for the first time (I guess just leaving some time after starting the server would be enough). On the other hand there is too much of timidity server starting/ stopping (it should be started once, I suppose). 7. You can't use Voice Recognition together with timidity sounds (I don't think this could be helped). 8. Sometimes switching back to OSS (and hitting 'TEST') causes a crash. I'm not sure what is the reason. If anyone notices any other problem, please report. Any suggestions welcome. ~Marek PS. I also corrected some minor errors in OSS/Free sound setup. For example quite absurd WhatIs for number of Channels QSpinBox in midi_setup dialog. Plans: add short device info and make the dialog aware of number of available devices. -- \/ /|\ 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-02-29 03:12:20
|
Hi e-body, Three people independently requested the same feature, and Fernando even declared he wants to look at this. Great. :) There are some questions about accidentals, though. Please look below at what I sent to Fernando. Any comments? ~Marek On Fri, 16 Jan 2004 javierpulido@canada... wrote: > I think that we have to keep A B C notation and maybe > add a french one Do-Re-Mi later. What do you think?. On Tue, 17 Feb 2004, Silhusk wrote: > in italian notes are usually named > Do Re Mi Fa Sol La Si instead of > C D E F G A B > could be possible to have them also translated? (on namebuttons) On Sun, 29 Feb 2004, Marek Wieckowski wrote: > On Sat, 28 Feb 2004, Fernando Cuenca wrote: > > However, my musical training has always been with note names (do, re, > > mi, ...) instead of letters, > ... > > I can try to implement that feature. > > Great! ... > My suggestion would be adding it as a third option for > German/English notation (I guess "French notation" is an > adequate name for do-re-mi stuff). But I warn you that this > would be quite some work because of two reasons: > 1. this would require changing current toggle-style into > multiple choice - like for speed-goal levels > (Prentice/Jman/Wizard) > 2. this would change the way notes are named from char to, e.g. > QString. > Plus there would be different way how to recognize that an user > answered right (she can't press "do" key on the kbd, can she? first > letter: D for do, R for re etc.? what about sol-si?). > > > > For future: how do you call notes with accidentals (sharp/cross > "#" or flat/bemol "b")? These will be needed e.g. for the guitar > fretboard and key signature/scale recognition. How do you call > these? E.g. what is C#? "Do sharp"? "Do with a cross"? Is it > clear what "Do #" might mean? When you see a song book for > guitar players (with chords' names above lyrics/text) how are > chords like "C sharp major" called? Or, for example, what is the > name of Chopin's Prelude opus 45? Or Shostakovitch's Violin > Concerto No.2 Op. 129? > > In Poland we call C sharp "C#" or "cis". I don't really know how > to extend "do-re-mi" system to accidented notes. Maybe this > should be kept only for preliminary lessons, without > accidentals, and not extended for features planned in future? |
From: Marek W. <Mar...@fu...> - 2004-02-28 00:45:17
|
Javier, On Tue, 24 Feb 2004 javier wrote: > I suggest to use alt+C for Cb and ctrl+C for C#. OK, I guess an user should have a choice. I have to look at how Qt handles keys. Does pressing Ctrl itself send a signal? Does it handle keys raw or does it look at xmodmap stuff (e.g. does it tell Alt_L form Mode_switch etc.)? > And using an fretboard instead of the keyboard image > will convert all the guitar players of the world > potencial users Yes, sure. The fretboard is the main focus now. :) > (piano players know already to read music). But the point was quite different: even if you are a guitar player seeing e.g. connection of a key signature to a scale is much clearer on a piano keyboard. That's why at some point piano kbd should be there too. But I agree: NOT for the price of slowing down work on the fretboard. ~Marek ---------- Forwarded message ---------- Date: Tue, 24 Feb 2004 13:45:16 -0600 (CST) From: "[iso-8859-1] javier" <oxy_amigo@yahoo... Reply-To: javierpulido@canada... To: Marek Wieckowski <Marek.Wieckowski@fuw... Subject: Re: [kln2-devel] Re: KLearnNotes2-devel digest, Vol 1 #10 - 2 msgs I suggest to use alt+C for Cb and ctrl+C for C#. And using an fretboard instead of the keyboard image will convert all the guitar players of the world potencial users (piano players know already to read music). I have ADSL now and I still have problems compiling from the command prompt. What are the requeriments? I have upgrade my fedora system and still stock in a library from aRts, but I have it installed. If Mo have OSX, that could help to attract more programmers, so maybe a binary for apple computers is a good idea. Somebody else speaks spanish? cheers! Javier _________________________________________________________ Do You Yahoo!? La mejor conexi=F3n a internet y 25MB extra a tu correo por $100 al mes. ht= tp://net.yahoo.com.mx |
From: Marek W. <Mar...@fu...> - 2004-02-24 01:26:37
|
Hi e-body, On Mon, 23 Feb 2004, Mo wrote: > "DEBUG: midi_turnOn(): couldn't open midi device!" >Although I have ALSA working on my computer. What else am I missing? Mo, it's not you, it's kln2 that is missing something. :( It uses OSS/Free, because this is what I have, and this is what I could test. Remarks below do not end with anything constructive, so if you are not interested just ignore them. This is just to let you imagine where I am with thinking about the problem. ============================================== Yes, there are different ways of generating (midi) sounds and users should have a choice. A good source for implementing different solutions is for example 'solfege'. They have there: * OSS (/dev/sequencer , /dev/sequencer2 == /dev/music) sorted out better than what I have written based on very raw code * external programs: timidity -idqq %s drvmidi -i d %s playmidi -f %s (although the last two would work only with OSS, I believe). Plus, they use some properties of python which look almost like overriding virtual C++ members, so maybe even part of the structure of the (quite clear and extensible :) code could be preserved. Timidity is very popular and works for virtually everyone, so this is probably the solution we need fast (Javier voted for this quite some time ago). And it should be very easy to implement (based on e.g. solfege). So, this may happen soon. ALSA? How? (maybe see how old 'rosegarden' uses it) Another solution would be to use some library which would take care of different hardware and sound libs. libkmid is the most obvious choice (but I wasn't able to implement it; on the other hand I spent on this very little time; Mo: does kmid program play midi files on your computer?). And making use of aRts (instead of suspending it, as it is done now) would be nice. BTW: is there a gnome equivalent? allegro ? jackd ? (see how new 'rosegarden' uses it) BTW, right now the only SF kln2 programming "help wanted" post is about this problem. So maybe someone experienced with the subject will still volunteer. ================================================ Conclusion: one day (let's hope soon) someone will have to look at this. For now, sorry, midi will not work for you. From kln2 point of view it is not that important. Please, try to ignore the problem. :( ~Marek -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |