klearnnotes2-devel Mailing List for KLearnNotes2 (Page 3)
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-04-27 03:44:33
|
Hi e-body,
If anyone feels like doing any of the following, please write a
short note to kln2 devel not to double the work. Thnx.
As I said in the previous e-mail, I'm leaving for almost two
weeks - I'm sorry, but I will not be able to assist you if there
is any confusion about the new code. :(
In general we need to
I. make the piano2name exercise more like the old v1.1 from
user's point of view (for example similar kinds of comments
in comments box)
II. make name2piano really work.
====================================
I. things in piano2name (the one that is activated at startup as
a default):
__Easy_n_simple__:
1. make a midi sound whenever a piano key is highlighted (this
one should be really simple!)
2. when starting - coherent strings on the start/stop button and
start/stop menu action
3. disabling checkboxes and sliders during test (new slots of
pianokbd and buttonsbox, say "prepareForTestStop()" and
"prepareForTestStart()" connected to starting(), stopping()
signal - if you would like to do this, see how does it happen
that in the main window some menu actions are disabled during
tests)
4. maybe after selecting a new exercise, its short description
should appear in comments box?
5. when sliding a slider above the piano kbrd it jitters over
B-C and E-F (there is no black key, so I tried to make it not
stop in between, but apparently I missed something)
__Bigger_tasks_(but_still_shouldn't_require_much_of_code_change)__:
6. better stings in during-test and after-test comments (more
like in 1.1 exercise)
7. lessons (ranges of keys/active names) for the new exercises; for
notes' names I would suggest the same order as in the staff exercises:
C&G, keys around C, keys around G etc; + some reasonable key ranges
8. graphics for the piano keyboard; it is terribly flat; I don't
think we should change the view to anything isometric etc. But
within this, straight view, I think the keys should have little
shadows:
-white keys - dark shadow on lower edge
-black keys - a highlight by top edge
(a bit like in M$Windows freeware "vanBasco's KaraokePlayer",
but better ;); if you would like to do this, see how it is done
for Note class - there is a QCanvasEllipse inherited but a nice
picture is displayed; here, a piano key inherits
QCanvasPolygonalItem, but we want a nice picture.
9. make the main window aware of number of questions in a test
(signal-slots only!) current question number and make the
"clock" above results box run during a test
10. calculate reasonable test lengths for new exercises (right
now there is a hard-coded number of 10 questions in each test)
11. there are probably still thousands of little things which
need correcting - feel free take one up :)
====================================
II. About the second part: "make name2piano really work":
Well, it does work; kind of. It is shown, the test can be
started; the only problem is that ... when a question is
selected it is actually never shown and when an answer is
provided it is never checked. ;)
It's all about FancyButton and NameButtonsBox. We need
re-implementation of highlightForTest() and checkAnswerByXXX().
It shouldn't be that difficult once you'll understand how
PianoKbdKey and PianoKbd work in piano2name exercise work.
Regards,
~Marek
--
\/ /|\ Marek Wieckowski
##### | | |
= . . = \|/ Institute of Theoretical Physics
U | Warsaw University
/ ~ \___ |
<| | |
> . < | http://www.fuw.edu.pl/~wiecko
<<___>> | http://klearnnotes2.sourceforge.net
|
|
From: Marek W. <Mar...@fu...> - 2004-04-27 03:38:13
|
Hi e-body,
I have just committed new version of two more exercises:
piano-key-to-note-name (functional) and note-name-to-piano-key
(almost working ;).
Now, in terms of code structure this is a MAJOR update. Please,
find some time to go through (or at least glimpse at) the
following description. I used piano keyboard as an example. I
know, we were to move toward the guitar fret asap, but this is a
real reconstruction of foundations of kln2 and I thought making
it work on an easier example (which the piano keyboard is) was
really needed.
==========================
All objects have been separated into few types (the separation
is not complete, because I kept the old staff2name exercise
untouched for now):
* KLearnNotes2 class - should be responsible for mainWidget,
general setup [like note naming convention ('notation')],
menus, help, input handling (keyboard, voice recognition, in
future: pitch recognition, midi kbd input etc.), choosing a
type of an exercise
* different graphical test widgets which are collections
randomObjects: for now there is a NameButtonsBox and
PianoKeyboard; once the staff code will be extracted in the
analogous way we will have easy to setup "piano-to-staff,
staff-to-piano, name-to-staff and staff-to-name" exercises
(the last one was the only kln2_v1.1 exercise)
* Exercise class which binds everything together.
Now, the idea is that to recycle widgets and use e.g.
PianoKeyboard for different kinds of exercises it should
communicate with other widgets by signals, not direct function
calls. This way it is up to Exercise class which slots will be
connected to which widgets, and thus how the particular exercise
is setup.
Example in piano2name exercise:
There are two widgets, NameButtonsBox and PianoKeyboard. When
user clicks on name checkboxes (and, say, deactivates one of the
buttons) the NameButtonsBox emits activeNotesChanged() signal.
Now, piano2name exercise connects it to PianoKeyboard
setupActiveQuestions() slot. This way PianoKeyboard knows it
should check which keys should be considered active. But
NameButtonsBox doesn't know to what it is connected to - in
future it could be e.g. connected to a Staff or a
GuitarFretboard etc. It's up to Exercise. The same widgets can
be used in different types of exercise without changing its
code. :) Similarly, "PianoKeyboard knows it should check which
keys should be considered active" [cite from above] but it
doesn't know which widgets are its partners at the moment - it
will call Exercise methods to check which key should be
considered active, and the Exercise (which knows what are the
parts of the test) will check this of the PianoKeyboard.
***
* It may look messy at first, but, believe me, it isn't. The rule
* is quite simple: PianoKeyboard sees only things connected to it
* by its exercise and the exercise itself. The same for
* NameButtonsBox. The same for the main kln2 window (which has its
* currentExercise). Exercise-inheriting classes are what set up
* all the communication.
***
That is also, why after putting together a pianoKey2noteName
exercise it was so easy to write a noteName2pianoKey one - the
widgets can be used both as question widgets and answer widgets.
Another thing is abstracting some common features. All
collections of RandomObjects (for now NameButtonsBox is a group
of FancyButtons and PianoKeyboard is a group of
PianoKeyboardKeys) inherit RandomObjectsContainer class which
handles all the random features: checking which RandomObjects
are active for test, during a test selecting a random question
etc.
==========================
Plans for future:
1. Well, I'm using the long May weekend to get out of town. :)
So not much will be done by me during next two weeks (a really
long w/e, isn't it ;).
2. Many little things in the new exercises need correcting - I
will write an e-mail about this in a moment.
3. Once I'm back, I plan to extract all the staff code to
another RandomObjectsContainer class; this means lots of code
from klearnnotes2.{h,cpp} and KLNcanvasitems.{h,cpp} will be
rearranged or even moved to a different file!!! IF YOU ARE
WORKING ON THINGS INVOLVING THESE FOUR FILES, PLEASE COMMIT
YOUR CHANGES WITHIN NEXT TWO WEEKS, even if your code is not
fully functional yet. Otherwise it may be very hard and time
consuming to understand how your changes fit into rearranged
code. :(
Once it is done we'll have 6 exercises (staffnote-2-notename,
staffnote-2-pianokeyboard etc... I don't know if there is a
point in providing all 6), new midi outputs (timidity works ; I
hope tse3/alsa can be worked out too), Solfeggio, some new
translations. It certainly does amount to a new big release! :)
But there are at least two other things that I really fancy: the
game (which is a really cute idea, believe me) and new clefs. I
hope this could emerge in time for this new release too. :)
We'll see about it.
Another possibility (which, frankly speaking, I do like) would
be to make a release asap, just when the piano exercises start
working (leaving the old staff2note without a change and
changing it only after the next release). We'll see about it.
Anyway, it will still take some time and meanwhile I am very
much open to new ideas. Any small improvements are very much
welcome!
Regards,
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-04-18 02:14:50
|
Hi, I changed the GUI so now it allows the selection of the Solfeggio notation. Now, instead of a toggle kind of button, there's a submenu with all the available notations. The selected notation is also preserved between sessions. Saludos! Fernando. __________________________________ Do you Yahoo!? Yahoo! Photos: High-quality 4x6 digital prints for 25¢ http://photos.yahoo.com/ph/print_splash |
|
From: Marek W. <Mar...@fu...> - 2004-04-14 00:46:46
|
On Sunday 11 April 2004 08:56, Fernando Cuenca wrote:
> The first stage of the implementation of the Solfeggio
> notation is checked in.
Thanks! It does work. :) And it is a really neat (and well
commented :) piece of code, too.
> Unfortunatelly, there isn't much you will see, since I
> haven't changed the GUI
Just for e-body to see, I've committed a slightly changed code:
the Solfeggio is hard-coded as a default if someone exited kln2
with German notation selected (English stays English) - this way
anyone can see all the Do/Re/Mi stuff at a startup. But when a
user switches to the English/German notations, for now there is
no way to switch back to Solfeggio. E-body, note: names on buttons,
notes' highlight names, names of lessons (in the lessons combo),
comp. keyboard input, changing a clef...
Fernando, I understand, you are working on changing
English/German toggle action to a multiple choice menu item now,
right? :)
> > The problem is the following:
> > in KLearnNotes2::setClefByAction() midi pitches are setup.
I believe this was a problem for old widgets only. The new one
(PianoKeyboard and new NameButtonsBox) deal with notes through
BaseMusicNote and should handle changing of notes naming
convention a bit differently (coded only partially).
Anyway, as I don't know if you can hear midi sounds I corrected
this myself (and already committed changes). This part of code
relied on specific note's name. I changed it to rely on note's
pitch (and its number in in its octave). I also corrected
buttons' clicking slots [to run checkanswer() with a proper
arguments].
It works really smoothly. :)
Regards,
Marek
PS:
On Sunday 11 April 2004 08:56, Fernando Cuenca wrote:
> -- [...] <Marek.Wieckowski@fuw[GRRR]> wrote:
The kln2-devel mailing list is archived and available through
WWW. Therefore, to reduce spamming possibilities, please, try to
avoid citing full e-mail addresses in an open text in an e-mail
body when replying. M.
--
\/ /|\ Marek Wieckowski
##### | | |
= . . = \|/ Institute of Theoretical Physics
U | Warsaw University
/ ~ \___ |
<| | |
> . < | http://www.fuw.edu.pl/~wiecko
<<___>> | http://klearnnotes2.sourceforge.net
|
|
From: <oxy...@ya...> - 2004-04-13 17:41:15
|
[root]rpm -Uvh klearnnotes2-1.1.040410-0.i386.rpm
Preparing...
########################################### [100%]
[root]# klearnnotes2
klearnnotes2: error while loading shared libraries:
libqt-mt.so.3: cannot open shared object file: No such
file or directory
_________________________________________________________
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: Fernando C. <fer...@ya...> - 2004-04-11 06:56:46
|
Hi all, The first stage of the implementation of the Solfeggio notation is checked in. Unfortunatelly, there isn't much you will see, since I haven't changed the GUI so you can actually select the Solfeggio notation, but believe me that the required infrastructure is already there! :-) The main thing to note is that the orderOfNotes array is gone, and replace by a ScaleNotation object, which you can obtain by calling the getNotation static function in the BaseMusicNote class. The ScaleNotation class is designed to be somewhat backward-compatible with the array. Now, some comments on a previous e-mail from Marek: --- Marek Wieckowski <Mar...@fu...> wrote: > The problem is the following: > in KLearnNotes2::setClefByAction() midi pitches are setup. > Whenever a user changes a clef, the pitch for the note just > above the five staff lines is set (that is G for treble > clef, B for bass clef). Now, starting from this one other > notes' pitches are set up in steps of +2 or -2 semitones. The > only difference is E-F and B-C = one semitone. Now in Solfeggio > one-char notes' names changed, and this part of code does not > recognize, that there should be one semitone difference. The > simplest solution would be adding another 'if' : 'T' (ti) and > 'M'(mi) for going up. 'F' for going down works even now, but > ... 'D' (do) for going down would get confused with 'D' in > English/German notation. Therefore this code will have to be > current-scale-notation aware. I'm not sure what you are refering to here, or how that function works, but it doesn't seem to be dependant on the current notation. Maybe the implementation changed since the time of that e-mail (I just updated my environment yesterday). > * correct the compilation problems [...related to strndup...] I reimplemented the class in terms of QString, to avoid all those GNU-specific functions. Saludos! Fernando. __________________________________ Do you Yahoo!? Yahoo! Tax Center - File online by April 15th http://taxes.yahoo.com/filing.html |
|
From: Marek W. <Mar...@fu...> - 2004-04-10 15:14:57
|
On Sat, 10 Apr 2004, javier wrote: > if you send me a rpm I can try it with alsa. http://www.fuw.edu.pl/~wiecko/klearnnotes2-1.1.040410-0.i386.rpm Thanks! :) ~Marek PS: You also need tse3 libraries : http://ccrma-www.stanford.edu/planetccrma/software/libraries.html#SECTION00039900000000000000 -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |
|
From: <oxy...@ya...> - 2004-04-10 08:53:29
|
I can't compile in my system, but if you send me a rpm I can try it with alsa. _________________________________________________________ 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-04-09 16:50:40
|
Carlo,
On Mon, 29 Mar 2004, Carlo wrote:
> I changed this another time, according to TSE3 documentation.
> I hope this works as supposed.
I'm getting a bit tired with this. :( After some minor changes (that
shouldn't really change anything - like splitting auto adding Note_Off
event into a separate command) it works. And then after a similar change
in a different version of the code it doesn't and so on. Usually such a
random situation means, that for example some variables randomly are or
are not initialized to proper values. Volume? Midi patch? I tried some,
but didn't find any pattern.
But if you have time to continue working on this - please, do. :) Probably
at some point there will be a minor change which will make it work for me
too.
I wonder if it works for anybody with Alsa...
> > 2. change back to channel=0 (I don't really know what
> > TSE3::MidiCommand::AllChannels does [docs on this are quite
> > poor, aren't they?]. All I know is, it doesn't work.)
> I thought it was intended to have the note on every channel, and...
I think, T::MC::AllChannels cannot be used for any midi command. It
probably can be used to e.g. set volume of all channels or midi patch of
all channels. But it seems, it does not cycle putting each note to a
different channel. It's just a guess, because :
> I agree, the whole TSE3 documentation is poor
:(
> I added mixer and i'll commit changes in a moment. I encountered
> problems with setVolume not linking (see the lines commented out).
Ha! That's a good one. I looked into tse source. It looks like
MixerChannel::setVolume() is OK, but MixerPort::setVolume() is declared
but never defined! :( I'm not sure what to do about it. For now - just
forget about (=don't use) MixerPort::setVolume(). Maybe in future we'd
define it ourselves?
From user's point of view: if setting mixer volume does nothing, any user
can use external mixer program to setup volumes. Not convenient, but for
now I suppose that's all we can do fast.
~Marek
--
\/ /|\ Marek Wieckowski
##### | | |
= . . = \|/ Institute of Theoretical Physics
U | Warsaw University
/ ~ \___ |
<| | |
> . < | http://www.fuw.edu.pl/~wiecko
<<___>> | http://klearnnotes2.sourceforge.net
|
|
From: Carlo <si...@bl...> - 2004-03-29 20:59:10
|
Hi, Il ven, 2004-03-26 alle 22:20, Marek Wieckowski ha scritto: > 1. split NoteOn and NoteOff to two separate events (I don't > have a clue why TSE "matching event" doesn't work. But I don't > think splitting these into two separate commands might hurt > anybody.) I changed this another time, according to TSE3 documentation. I hope this works as supposed. > 2. change back to channel=0 (I don't really know what > TSE3::MidiCommand::AllChannels does [docs on this are quite > poor, aren't they?]. All I know is, it doesn't work.) I thought it was intended to have the note on every channel, and... I agree, the whole TSE3 documentation is poor (motivation to make our better). > * volume; Carlo, did you want to use MidiOutput::noteVelocity > property for this? Yes, you are right. Thank you Marek for clearing out about the 3 volumes. > I think TSE mixer (or OSS mixer as it is done now) > should be used for this. I added mixer and i'll commit changes in a moment. I encountered problems with setVolume not linking (see the lines commented out). I also had to increase the delay time before playing a chord (midi-TSE.cpp line 127), but I still don't understand why the forked processes hang up. regards, Carlo |
|
From: Marek W. <Mar...@fu...> - 2004-03-26 22:20:53
|
Hi e-body,
Carlo, thanks for committing your changes.
On Wed, 24 Mar 2004, Marek Wieckowski wrote:
> I can't hear any sound when I choose OSS/TSE. :(
To make OSS/TSE make sound on my computer I had to:
1. split NoteOn and NoteOff to two separate events (I don't
have a clue why TSE "matching event" doesn't work. But I don't
think splitting these into two separate commands might hurt
anybody.)
2. change back to channel=0 (I don't really know what
TSE3::MidiCommand::AllChannels does [docs on this are quite
poor, aren't they?]. All I know is, it doesn't work.)
I committed both changes into CVS.
Does Carlo's code work for Alsa people? Mo? Javier? (choose
ALSA/TSE in sound setup dialog).
> On Thursday 18 March 2004 20:41, Silhusk wrote:
> > MIDI patches are not implemented yet, but volume should work.
What works (after these changes):
* I can hear right sounds both on raw OSS/Free and OSS/TSE
* I can change device ("TSE port")
* kln2 does not crush when changing back to OSS/Free
* and, due to TSE SchedulerFactory usage (added by Carlo :) kln2
falls back to OSS when I choose Alsa (which I don't have)
instead of crushing. Nice. :)
What doesn't (apart from midi patch assignment):
* notes' lengths (would using MidiOutput::noteLengh instead of
'duration' work and be enough?)
* volume; Carlo, did you want to use MidiOutput::noteVelocity
property for this?
There are 3 "volumes":
- master and midi volumes set up in mixer
- velocity of an individual note.
Usually a user sets up mixer settings, and the
song/piece/program sets up note's velocities. This way user can
- have a huge master volume (to listen to her CD loud)
- small midi volume (to listen to some midi music silently)
- the midi file itself sets up velocities (thus within the small
midi volume some parts of the piece can be a bit more silent
or a bit louder).
We probably won't ever have whole pieces with changing dynamics
(velocities), but letting the user change velocities directly
can confuse her (and can confuse people reading the source).
To summarize: yeah, there is a noteVelocity property, but I
don't think this is what should be used directly by a user to
setup volumes (and right now a user does not have any influence
on this). I think TSE mixer (or OSS mixer as it is done now)
should be used for this.
~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-24 04:04:23
|
On Wed, 24 Mar 2004, Marek Wieckowski wrote:
> I will commit my version (with your correction to Makefile.am)
> in a moment and let you know.
OK. Done.
Carlo, please commit your version to CVS now.
To do this:
* backup(!) the files modified by you
* update them from CVS (this will actually downgrade your files,
but this will keep repository consistent, so that you could
commit)
* replace the updated files by your backuped version
* check that everything compiles
* commit modified files to CVS.
~Marek
PS: to all:
When you want to commit a modified file, which was meanwhile modified and
committed by someone else you will have to update the file from CVS first.
In such a case always (!) make a backup copy of your local file. If
changes are in different parts of the file they will be merged smoothly
during the update, but if e.g. two people modify the same line of code,
update from CVS may corrupt your local file.
--
\/ /|\ 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-24 03:09:42
|
Hi e-body,
Number of changes made by different people grows (not everything is CVS
yet, though). Some comments to the new source is very, very much needed.
I suggest doxygen format, because I used it already in all other parts of
the code. See how it is done e.g. in src/keypressed.h (you can compare the
source with doxygen/html/classKeyPressDialog.html ).
Basically:
- comments should be placed just _before_ variables/classes
- //! starts a short description
- /*! */ contains a longer description (e.g. usage suggestions).
(note the exclamation mark, which marks comments which should be included
in doxygen docs).
I know, I haven't been careful enough to do this for all my submissions,
but please, try to provide at least short //! descriptions for all new and
changed methods and properties. You have just written the code - it
shouldn't take much time.
~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-24 02:35:46
|
Carlo,
On Monday 15 March 2004 03:35, Silhusk wrote:
> I managed to compile the version of kln2 [...]
> by editing the file src/Makefile.am as follows:
> [...] $(LIBTSE3)
On Thursday 18 March 2004 20:41, Silhusk wrote:
> here are my changes to TSE/OSS and TSE/Alsa support, plese test it
> and let me know about the results
Yes, it compiles both with and without TSE3.
> MIDI patches are not implemented yet, but volume should work.
No, for me it doesn't. I can't hear any sound when I choose
OSS/TSE. :( And when switching back to OSS/Free kln2 crushes in
OSSMidiOutput::addNoteToChord(). I am trying to figure out what
the problem is.
Anyway, as due to your correction to the Makefile.am everything
compiles, we can put the files to the CVS. As I said your
version doesn't work for me (though it doesn't crush either - as
long as I don't switch midi modes back and forth). Therefore I
think we should have both in CVS. But I also think your version
should be considered basis for further development (and my old
one should be just a backup).
I will commit my version (with your correction to Makefile.am)
in a moment and let you know.
~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-24 02:31:27
|
Hi, On Saturday 13 March 2004 22:10, javier wrote: > Here is a program that we can use to implement the > voice/microphone input: > > http://www.geocities.com/harpin_floh/kguitune_page.html ? It looks quite complicated (because of oscilloscope-like rather than note's name output). I extracted a part of gtune http://www.fuw.edu.pl/~wiecko/gtune-extractedConsoleTuner.tgz that works fine for me. All it would require is wrapping this into a Q_OBJECT class which would emit a signal rather than write output to stdout (and in future fine-tune it). The main problem here is that gtune is not GPL. :((( Someone who would deal with this subject would have to write to gtune people and ask them to GPL at least this part of the code [they made up some strange license themselves]. Could someone, please, volunteer to do this? * write a letter to the gtune men (Michael Celli and Harold C.L. Baur) and ask them to GPL this part of code * if they agree - implement this into kln2 (we can talk about details) * if they don't - find some other GPLed, very simple tuner, extract the tune recognition part (so that it worked as the above extraction from gtune) and put it into kln2. > And for the fretboard here is other program that have > multiple strings: > http://www.geocities.com/harpin_floh/kguitune_page.html Javier, I'm sorry, but this is exactly the same link as the one above. :/ Shouldn't it be something else? Considering your previous e-mail, maybe http://xstick.sourceforge.net/ ? > I contacted the kde spanish translation team and they > are asking for a PO file to finish the translation. So far I used Qt .ts / .qm files for translations. I'm not sure if it was reasonable (I guess the .po system is native for glibc and used more frequently). KDE translators are big and well organized group. It would be great if we could use their help. I had quite a bad experience with KDE files placement, though. For example. it is virtually impossible to make the helpfiles be found by KDE help viewer on every system :(. I contacted guys from other older projects and they have the same problem. Basically, if you make things within KDE package (I mean, make it really part of KDE distribution) it works. If you make an external package it should work for most people (if you do it right) but there is no way things like the helpfiles worked for everybody. So before switching to .po we have to check if this would not lead to similar problems. Could someone, please, volunteer to look at the subject? How should the .po translations be prepared and loaded? Is it KDE-independent? Where should be the files placed? Is it possible to automatically convert .po to .ts and vice versa? If yes, we could use KDE translators team help without changing a thing in kln2! :) Yes, this looks as the simplest solution: how to convert .ts to .po and vice versa? ~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-24 02:00:02
|
Javier,
Thanks for summarizing to kln2-devel the ideas you have wrote to
me privately before. Yeah, it's good to share them with others.
On Friday 12 March 2004 07:40, javier wrote:
> possibly linux version is sooooo big that could be
> named Klearnmusic instead.
We will discuss this once enough new features are added. But
there is a number of good reasons why _not_ to rush into project
name changing. Anyway, there is such a possiblility, but right
now it is definitely too soon to open such a discussion.
> input can be choose with 7 diferent systems:
Yes. This is the aim for kln2 too: to have all input ways done
in a similar way, so that any input (or even a few at the same
time) could be used for any exercise.
> 1-"Plain" Piano keyboard
> 4-English Enharmonic Keyboard
> 5-French Enharmonic Keyboard
> 6-German Enharmonic Keyboard
[...]
> 1 have the keys white
> 4 have letters ... C/B#/Dbb over the white keys C
> 5 have letters ... do/sib/rebb over the white keys C
> 6 have letters that says C/H#/Dbbb over the white keys C
But why not use B/H/ti choice for the (3):
> 3-Staff Keyboard
[...]
> option 3 have a little grand staff (treble and bass
> clef) with the notes and the letters that says A B C
> over the notes,
From my point of view there are following input ways needed:
[done or almost done:]
1. clickable piano keyboard
2. computer keyboard
3. buttons with note's names
4. clickable staff
5. voice input [say note's name to your mic]
[planned:]
6. clickable guitar fretboard [with extra options (for mandolin/
bass guitar)]
7. midi keyboard input [should be easy with tse3]
8. microphone pitch input [play or sing the shown note to your
mic]
Now, all the graphical [on-screen] inputs [1,3,4,6] should show
note's name when highlighted. This depends on whether user wants
to use English, German or French(=Solfeggio) notes' naming. Also
computer keyboard input depends on this (it should react to key
B/H/T depending on which naming system a user has chosen).
Therefore, I think of naming convention choice as a choice
independent of which of the 1-8 above a user wants to use as
input.
Plus, all the graphical [on-screen] inputs should be used as a
means for asking questions (which depends just on which
of the signals are really used by an Exercise).
> 5 have letters ... do/sib/rebb over the white keys C
[...]
> AND IS NOT MOVABLE DO ANYWHERE.
True. It looks like what we called "modified fixed Do".
> I insist that the movable do is only for learn to
> sing.
I agree. And because there is no clear name for double
sharp/flat notes nor for E#,Fb,B#,Cb it is virtually impossible
to use movable Do for music learning even if someone wanted to.
> so can be configure like any instrument with
> strings, from a violin (4 strings, 0 frets) to a 7
> string guitar (7 string, 24 frets) and everything in
> between.
I really don't know if there is a point in implementing a
not-fretted "fretboard". (BTW: how do you call the "fretboard"
part of the violin in English?)
In principle it can be done (you click on a picture with no
frets and depending on the point you click on the answer is
considered right or wrong), but is there really a point? Would
it really teach anything? I can imagine, for these instruments
learning to play is more about feeling the real instrument.
I think we should not consider this even as a far-future goal.
But yes, changing number and tunes of strings and number of
frets should be done. In future. First aim is hard-coded
6-string guitar with standard (EBGDAE) tuning.
~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-24 01:52:55
|
OK. I'm back. I will try to catch up with replying to the latest
e-mails.
And BTW: Fernando made first quite successful approach to the
Solfeggio. Unfortunately right now it does not setup notes'
pitches for different clefs right, and until this is corrected
it will not be put into CVS (so that Mo's work on different
clefs wouldn't be screwed up).
~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-18 19:42:10
|
Hi, here are my changes to TSE/OSS and TSE/Alsa support, plese test it and let me know about the results I attached the output of diff comparing klearnnotes2_cvs040310/src (URL given by Marek) and the directory with my changes You can get the edited files src/midi-TSE.h and src/midi-TSE.cpp http://mypage.bluewin.ch/silhusk/files/midi-TSE.h http://mypage.bluewin.ch/silhusk/files/midi-TSE.cpp and the binary http://mypage.bluewin.ch/silhusk/files/kln2_bin.tar.gz MIDI patches are not implemented yet, but volume should work. About cvs: as I understand the man page you should first do a 'cvs add <file>' to your (local) working directory and then do a 'cvs commit' that will effectively add the files to the repository. regards, Carlo |
|
From: Mo <Mo...@no...> - 2004-03-16 08:55:59
|
> Mo: > > I have alsa by default in Fedora core 1, so I think > that I can test a binary with tse3 stuff. > Let me know if I what I can do to get sound to work on my setup. Gentoo Linux 2.4.22 Fluxbox Thanks! Mo |
|
From: Mo <Mo...@no...> - 2004-03-16 08:46:21
|
Hello All Being new to cvs command, how can I add/commit a new file? I have made some new graphics, tenor and alto clefs, and wish to add it to the source folder. This is the input I am entering with the error that follows: bash-2.05b$ cvs -d:ext:upa...@cv...:/cvsroot/klearnnotes2 add clefTenor.xpm cvs add: cannot open CVS/Entries for reading: No such file or directory cvs [add aborted]: no repository bash-2.05b$ Any ideas? Thanks! -Mo |
|
From: Silhusk <si...@bl...> - 2004-03-15 02:35:45
|
Hi, I managed to compile the version of kln2 at > http://www.fuw.edu.pl/~wiecko/klearnnotes2_cvs040310.tar.bz2 by editing the file src/Makefile.am as follows: 14c14 < klearnnotes2_LDADD = $(LIB_KFILE) $(LIB_KDEPRINT) $(all_libraries) --- > klearnnotes2_LDADD = $(LIB_KFILE) $(LIB_KDEPRINT) $(all_libraries) $(LIBTSE3) this way it compiles also if you do a './config --disable-midisupport' (disable TSE3 support) or you don't have TSE3 installed. Now a new problem: althought everything compiles, when I run kln2 and change MIDI Output to 'OSS/TSE' the application crashes! I think this is due to TSEOSSMidiOutput constructor (more precisely to transport(&metronome, &scheduler)) but I cannot figure out how to correct this. Someone can help? By the time I'll try to deal with 'Problem 2' > ============== > Problem 2: extra features for OSS > > As I said, OSS with TSE3 basically works (provided you link > manually). But I didn't have time to add volume (=midi velocity > and mixer volumes) control. Also, after choosing OSS/TSE3 one > should be able to turn midi on and off (on => internal_midifd=0, > off => internal_midifd=-1; play => if (internal_midifd==-1) do > nothing). regards, Carlo |
|
From: <oxy...@ya...> - 2004-03-13 21:10:11
|
Mo: I have alsa by default in Fedora core 1, so I think that I can test a binary with tse3 stuff. Here is a program that we can use to implement the voice/microphone input: http://www.geocities.com/harpin_floh/kguitune_page.html I used the same idea (but in hardware) when I did my desing of the nylon midi guitar. Instead of have the name note of the note that is playing, we can use it to trigger the namebuttons in kleannotes2. And for the fretboard here is other program that have multiple strings: http://www.geocities.com/harpin_floh/kguitune_page.html I contacted the kde spanish translation team and they are asking for a PO file to finish the translation. 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: <oxy...@ya...> - 2004-03-12 06:51:03
|
Hi I have a commercial sofware that do all that we want. I have commented with Marek before, and the possibly linux version is sooooo big that could be named Klearnmusic instead. Is a program running in a macintosh classic, in black and white. It teach to read music, to reconize instantly by ear (perfect pitch) and to read rhytm. It have midi input. You can check in google practica musica from ars nova, I have version 3. The system we are using in Klearnnotes2 is the pentagram and buttons with the names of the notes like here http://www.musictheory.net/load.php?id=82 But in practica musica all input can be choose with 7 diferent systems: 1-"Plain" Piano keyboard 2-Guitar fretboard 3-Staff Keyboard 4-English Enharmonic Keyboard 5-French Enharmonic Keyboard 6-German Enharmonic Keyboard The options 1, 3, 4 & 5 are identical, just option 1 have the keys white, option 3 have a little grand staff (treble and bass clef) with the notes and the letters that says A B C over the notes, option 4 have letters that says C/B#/Dbb over the white keys C and the black keys only says #/b, option 5 have letters that says do/sib/rebb over the white keys C and the black keys only says #/b, option 6 have letters that says C/H#/Dbbb over the white keys C and the black keys only says #/b, AND IS NOT MOVABLE DO ANYWHERE. This input system permit to learn the notes, scales, rhytms, memorize songs, key signatures, read in diferent clefs, chords, arpeggios, inversions, ear training, etc inclusive melody writing. Also you can use at the same time: 1-the computer keyboard (A B C) 2-mouse clicking in the key/string 3-midi input. I insist that the movable do is only for learn to sing. If everthing is confusing, I can try to hack the program to send pictures (is protected to print screen command). This perfect is perfect to learn music at any level, I just wish that it could: 1-run in Linux 2-be user definable the number of frets (0 to 24), number of strings (4 to 7) and tunning of each string (C to B), so can be configure like any instrument with strings, from a violin (4 strings, 0 frets) to a 7 string guitar (7 string, 24 frets) and everything in between. 3-Have voice input (so I can answer with my violin or use the movable do) 4-Have a fun video game mode OT for a funky string instrument program check xstick in google. 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...@fu...> - 2004-03-12 02:18:29
|
Hi,
On Tue, 9 Mar 2004, Mo wrote:
> 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.
I hope the kln2 program development can follow similar path. :)
> 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.
OK. Plus there is no name for e.g. Fb or B# in Movable Do, right?
One cannot call them E/C (it doesn't make sense from the scale's point of
view). What? Faa and Tii ;))) "Modified movable do". No way.
> "the disadvantage [of Movable Do] is that the singer must do a harmonic
> analysis of the piece in order to sing the correct syllables.
OK. But she has to do harmonic analysis in order to sing the correct
pitch/tune anyway.
> 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.
Exactly.
> > 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.
Mo, I did not understand your last sentence. Could you rephrase for me,
please?
> 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.
Yes. Therefore, if anybody else has some comments about how Solfeggio is
used in his country - please post some short description. Maybe we should
give up Solfeggio in some more complicated exercises in future? If so, we
should make users used to using letters too. Maybe always show a
one-letter name by a solfeggio name (like "Do (C)", "Re (D)") ? Just a
loose idea, please don't take it too seriously for now.
Mo, thanks for your comments. :)
~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-12 01:38:59
|
Hi e-body, I am leaving Warsaw today for 10 days. As usually, I cannot promise to check my e-mails regularly until Mar 23. Sorry. I do have some problems for you to solve while I am away, though. I hope someone will cope with them. I tried to look at possibility to use tse3 library ( http://tse3.sourceforge.net ) for two things: 1. ALSA midi output (really, really needed) 2. midi piano keyboard input (requested independently by few persons) [in future: 3. reading midi files for training notes for a specific piece of music rather than random ones]. Let's stick to the first subject for now. I don't have ALSA, I use OSS. But I managed to make TSE3 OSS interface work on my computer and tried to add ALSA support in a similar way. Unfortunately, I don't have ALSA and can't test it. If you look at http://tse3.sourceforge.net/doc/doxygen/namespaceTSE3_1_1Plt.html you will see, that tse3 deals with OSS, ALSA and aRts in a similar way: you just replace a OSSMidiScheduler for an ALSA or arts MidiScheduler. This means anyone who is interested can help add new features independently of which of these systems you use! :) ============== Problem 1: compilation This is a big problem. But I hope there is a simple solution. Things do not compile. A "-ltse3" option is not passed to linker even if tse3 library is installed. When linking, /bin/sh ../libtool --silent --mode=link --tag=CXX g++ ... breaks with an error midi-TSE.o: In function `TSEOSSMidiOutput::TSEOSSMidiOutput(void)': midi-TSE.o(.text+0x28): undefined reference to `TSE3::PhraseEdit::PhraseEdit(int)' and so on. To solve this manually, you just have to (in src/) copy the same line ("/bin/sh ../libtool ...") but with extra "-ltse3" (of course, you have to have tse3 library installed first!). Therefore,I cannot commit what I did to CVS, and changed kln2 sources are available only at: http://www.fuw.edu.pl/~wiecko/klearnnotes2_cvs040310.tar.bz2 This is the first problem to solve. If we cannot use CVS it is hard for a few people to work on things simultaneously. :( Adding "-ltse3" as an obligatory option is not a good idea. Users who do not have tse3 library should still have possibility to use kln2, just the extra features should be turned off. That's where the mess came from: configure needs to check if there is the tse3 lib, and if yes add some defines (WITH_TSE3 or HAVE_TSE3_TSE3_H) and -ltse3, if no don't define the constants and do not add -ltse3. So the question is: how to make the bloody configure.in.in work. Lines 7-8 of this file is how I tried to make it check for tse3 libs, but it doesn't. It checks for headers, but still doesn't find libs and doesn't add the -ltse3 option for the linker :( . Therefore, everything below the 9th line: # FROM KGUITAR 0.4.1 - check for TSE3 : is taken from kguitar. But it doesn't work either. :( Apparently I am missing something. Maybe some nasty workaround would do for now? Note that, if you modify the configure.in.in file you may need to type make -f admin/Makefile.common cvs to update 'configure' and other scripts. ============== Problem 2: extra features for OSS As I said, OSS with TSE3 basically works (provided you link manually). But I didn't have time to add volume (=midi velocity and mixer volumes) control. Also, after choosing OSS/TSE3 one should be able to turn midi on and off (on => internal_midifd=0, off => internal_midifd=-1; play => if (internal_midifd==-1) do nothing). Could someone with OSS look into this? TSE support for ALSA and aRts works in exactly the same way, so if anybody adds this for OSS, this should work for all the others too! :) ============== Problem 3: ALSA support * test if current ALSA MIDI works (choose it from the sound setup dialog) * if yes, add some TSE3 mixer support (currently volume setup methods are just blank {}) [this is like Problem 2, just for alsa] * if no, delete TSEAlsaMidiOutput definitions, and explicitly copy and modify TSEOSSMidiOutput (there may be a problem with inheriting) ============= Problem 4: aRts support Right now, if kln2 finds aRts (KDE sound server) it suspends it. This means other aRts programs cannot use soundcard when kln2 is running. So using aRts rather than turning it off would be very much welcome. And again, this looks like a VERY simple task - just replace OSSMidiScheduler with an arts one and add new stuff to the sound setup dialog. ============= If anyone would like to coordinate/organize work on one of the above subjects, please write a short note to this list. I hope the subject is challenging enough to make you all interested. :) Best regards, Marek PS: Problems with compilation shouldn't stop development of such important features. Yeah, probably we will need "very unusable" cvs branch in future, just to enable many people to work on things even if some fundamental problems are not solved. PPS: No, I don't plan to drop native OSS sound support. As it is already there, people without tse3 should be able to use sound. Why not? And because of the same reason, native (non tse) alsa would be nice too. It's just that tse solves many problems the same time in a standardized way, so this should be the focus for now. -- \/ /|\ Marek Wieckowski ##### | | | = . . = \|/ Institute of Theoretical Physics U | Warsaw University / ~ \___ | <| | | > . < | http://www.fuw.edu.pl/~wiecko <<___>> | http://klearnnotes2.sourceforge.net |