################################
### I. Music theory/instruments
################################
- accidentals (sharps, flats) [[NOW!]]
kind of stupid when just training notes names ("press shift when you
see #", sigh); but already at piano it does make much sense
- finish piano keyboard widget and finish [[NOW!]]
piano-key-to-note-name exercise
- guitar fretboard
- how to sort this out? by pitch ? by fretboard point?
- selecting tuning and number of strings
- teach key signatures
* order of sharps/ order of flats
(exercise1: two lines of buttons(no staff):
drag letters to unscramble the order
exercise2: sharps/flats are shown on staff on right pitch, but in
wrong order: sort it out
exercise3; place N sharps/flats on staff)
* name key signature (both Major and minor)
* find notes between which there is one-semitone separation
* find tonic and dominant notes for a key (and variations: this is
tonic - find a key)
+ the same, with answering with piano/fretboard rather than names/staff
- teach major/minor chords writing in staff and recognition
- theory help (what is the order of sharps/flats etc.)
- extra clefs: tenor and alto [[NOW!]]
- maybe: the grand staff?
################################
### II. KLearnNotes2 - kinds of exercises
################################
- finish implementation of Exercise class so that [[NOW!]]
both direction exercises were usable;
- move the staff from Kln2 class to a separate class; [[NOW!]]
- the staff: enable "select-from-visible-notes" and "find-invisible-note" modes
- using this, exercise in another direction with all testnotes visible:
user can see all testnotes;
one button gets highlighted and she has to click on all notes with
it's name (if OK a note gets green, if wrong a note gets red + label
comments with no.of remaining notes of this name);
user answers until she marks all the right notes;
NOTE: this is probably simpler than notes' name recognition
and might be suggested as an introductory exercise for each
testnotes set;
simpler, because user can click e.g. every second note (C-G-C-G)
- the staff: enable few notes displayed one-by-one and a sequence exercise
- that is: highlight possibilities and scrolling
- custom testnotes & set of testnotes saved
(individual testnotes selection and individually auto-design test)
WHY? if an user makes mistakes about particular notes it may be beneficial
if the program designs for her a special exercise to train these notes
DANGER: user may make mistakes about a note only in particular combinations
(e.g. after a note which is far away in the staff); thus these custom
exercises may not actually address what really is a problem here
details:
LESSON structure save/restore/add etc. can be tested on note-to-name
EXERCISE in 'names of notes' SUBJECT
therefore we need to
* add individual testnotes selection
* add individual auto-designed tests
* custom-lesson add (to combo and to draws-pool) and save
- saving should be in plain text
- it should have SUBJECT and EXERCISE identifiers
- decreasing time of pauses between questions and increasing note's speed
in the game exercise [[NOW!]]
WHY? this should improve dynamics of tests and motivate user to work
on speed/automatic answers
WHAT? two kinds of exercises: without time decrease (introductory) and
with one (maybe)
DANGER: don't over-do; this should not change Kln2 to a mission-impossible
program
################################
### III. Technical improvements
################################
- finish tse3: ALSA & aRts [[NOW!]]
- pitch input - based on console guitar tuners; [[NOW!]]
the best I found is gtune-0.10, but it is not GPL-ed :(
if no other good choice - write to authors of gtune
to ask for permission to use the code
and add guitar tuner too
- voice recognition: enable only what's active [[NOW!]]
- voice recognition: extra commands "note C/D.../H on/off" [[NOW!]]
- mixer interface common to voice recognition and all midi output and
pitch input
+maybe a louder/quieter buttons or volume sliders to a toolbar
non-modal "mixer" popup dialog
* master volume
* midi volume
* mic volume
* i-gain
- zoom in/out items in MenuOptions; make sure all widgets are run-time
scalable [[NOW!]]
- load a sequence of notes from a midi file (tse3!)
- using this: sequence reading exercise:
few notes visible in the staff;
user has to click names of the notes in right order;
correct names should be shown under the staff as she types
(in red if you type wrong, in green if right)
- maybe: the same the other way around:
note's name (not randomly selected, but from a file) and a range of
the staff gets highlighted;
user is to click on notes location (which would make the note appear);
################################
### IV. Small but worth remembering of
################################
- add tooltips and whatis-es to voice recognition dialogs [[NOW!]]
- add a choice of turning interface translations off or even a choice
of all available translations
################################
### Maybe, but maybe not:
################################
- move timer to canvas, change it to countdown with red background
when negative
- use QCursor when over active areas? Eg. over a note.
################################
################################
There is an important issue. Kdelibs are a very nifty extension to qt.
But, while qt has a M$Windows version, kdelibs don't.
If we ever port to M$Windows we could use wxWindows (which is a lot of work)
or mswindows qt (if trolltech will allow for this). To make the other option
easier, it is better not to use too much of kdelibs. :(
So for now: don't use kdelibs if you can do with qt widgets only.
Which parts of kdelibs might be useful?
* KKeyChooser/KKeyDialog
* KListViewItem-s for voice lists
* maybe use KTabCtl instead of 'KDialogBase(Tabbed' in dModelEditor?
- this emits a signal tabSelected(int pagenumber) when the
user selects one of the tabs!
* maybe use KWizard instead of KDialogBase in dVoiceMicroSetup?
* note: KImageEffect can create gradients, blending two images,
fading, rotating and many other;
there is also a KPixmapEffect
* use KStdAccel for Help/Save etc.
|