denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Denemo-devel] Involvement


From: Richard Shann
Subject: Re: [Denemo-devel] Involvement
Date: Sun, 21 Oct 2012 09:42:05 +0100

On Sat, 2012-10-20 at 18:57 +0200, Éloi Rivard wrote:
...
> I joined you a patch that fix translation for the preference dialog.
> The only thing needed to make it work was to extract the gettext
> function call from the macros, so xgettext could parse every call.
ah! basically although the C-semantics are the same, the gettext string
extraction mechanism cannot cope with _() buried inside a macro. Hmm, so
we have to repeat the _() at every call, well, that is a small thing.
Thank you for clearing up my puzzlement about that.
> About my interests, I'd like to get some experience with graphical
> interfaces and ergonomics. Perhaps redesigning the preferences panel
> would be a good start ? I can finish french translation too, as it is
> quite incomplete.
Well, the preferences panel would allow you to familiarise yourself with
some gtk widgets and the gtk packing of widgets, but there is only a
very small scope for making a difference to Denemo for the user there. A
really significant improvement for Denemo would be to sort out
translating the keyboard/mouse shortcut names. 
(You asked in a previous email why Denemo was so pharaonic with respect
to translations and I did not directly address that question then
because without knowing your background the chances were that I could
not have explained it. Since you wrote at the start of August I have
done a lot of work on translation. I have written a parser that takes
the current set of scripted commands - in xml format files - extracts
the scheme and puts it into files which xgettext can work on. I have
also written a compiler for the generation of labels and tooltips of the
scripted commands, so that those now appear compiled-in and hence can be
seen by xgettext  - of course, if you generate a new command neither its
script nor its menu label/tooltip will be translatable, but then you
will probably write it in your native language :). It does mean there is
much clanking of machinery before we can make a release, but most of
Denemo has become translatable since you wrote in August.
 
But this still leaves keyboard and mouse shortcuts. Again, Denemo is
unusual in not making use of GTK's built-in methods, and so not being
easy to translate. GTK deals only with keyboard shortcuts and assumes
that the keyboard is basically for entering text. Denemo allows the
mouse gestures as shortcuts, with names like PrsL for pressing the left
mouse button, RlsR for releasing the right mouse button etc. Denemo is
also unusual in allowing two-key shortcuts - so Del,M deletes a measure
while Del, Del deletes the object at the cursor. To support this Denemo
has to create the menu item labels with the shortcuts itself, and all
this is has to respond to the user changing shortcuts, or indeed a
script changing shortcuts. 

This does present a challenge for translation - not only do the names of
keys need translating ( comma -> virgule etc) but there are keys not
present on some keyboards, or not conveniently placed. This last problem
is probably best left until the set of commands is more complete, but
translating the key and mouse shortcut names could be tackled now, and
doing it would I think complete the translatability project.)
Sorry about the very long parenthesis () ... :)

The overall graphical interface problems are something that need work as
you observed in your first email, for example if you have several songs
in your piece (Movements in Denemo terminology) they are not obvious -
not tabbed. Tackling these problems without having a fair amount of
experience using the program in at least a couple of the main ways of
using Denemo would not be a good idea. (I can think of three main ways
of using Denemo - one is for entering hundreds of bars of music which
has already been composed, another is composing with the program -
inserting, deleting changing rhythms, and finally there are methods for
those who are only doing a few bars of music - a fiddle tune, say - and
are happy to drag and drop individual notes onto the score regardless of
how slow it is, so long as they don't have to spend time learning
shortcuts before they can start). It would be quite easy to create a
nice-looking program which for serious use would be rather impractical,
and indeed I suspect that many of the hundreds of score-writing programs
out there come into this category. You can place a few notes and chords
on the page, but then you have to start dragging things around to avoid
collisions of text with slurs, and once you have more than a few pages
of music the problems are multiplying quickly.

Let me know your thoughts on all this - comments from others are welcome
too - I have rather slight experience with Finale, and very little with
any other score writing programs.

Richard




> 
> Éloi
> 
> 2012/10/20 Richard Shann <address@hidden>
>         Hi Éloi
>         
>         It would be great to have more help with Denemo - there are
>         many
>         unfinished sub-projects in the code.
>         I wonder if you would like to copy your email to the mailing
>         list
>         (address@hidden) as there will be people listening there
>         that have
>         ideas about what they would like to see progressing in Denemo.
>         Here are a couple of things that I know of, one fairly simple
>         and one
>         which is much more open-ended.
>         
>         1) The preferences dialog is largely not translatable. The
>         code
>         (prefdialog.c) uses macros to avoid repeating the same code
>         for getting
>         and setting the preferences. These take a string which is then
>         wrapped
>         with the function call _() (itself a macro for gettext()
>         IIRC).
>         For some reason this seems not to work. Either a better
>         understanding,
>         or running the compile stage with -E to see the pre-processor
>         output is
>         needed. And some straightforward method of checking that a
>         string will
>         be translatable (I can't trigger running Denemo with
>         translations
>         appearing, for some reason).
>         
>         2) There is the start of code to allow people to transcribe
>         music that
>         is in audio form (that is: create notation for some music that
>         they have
>         a recording of). The code allows to open a recording (.ogg
>         format,
>         perhaps others) and then to synchronise empty measures with
>         the music
>         (by the user tapping the space bar at the start of each
>         measure as
>         Denemo plays the audio back). Each measure has its own tempo
>         setting
>         inserted so that when the notes are inserted into the measures
>         they keep
>         step with the music. When the score is played the audio is
>         played in
>         sync.
>          This works, but only to some extent, discrepancies in timing
>         being
>         audible. At this stage in the development (as I only had a
>         very old slow
>         machine) I stopped work and have not got back to it. There is
>         very
>         little error reporting and the mixing of the audio and the
>         MIDI is done
>         simply by playing one in the left stereo channel the other in
>         the
>         right...
>         
>         One of the things you need to think about is what your
>         personal
>         interests and preferences are: some people enjoy tidying up -
>         I have
>         started towards making Denemo compile with -Wall, some files
>         now pass
>         that without warnings. And view.c is a horror story of
>         multiple topics
>         all stuffed into one file, it needs splitting into at least
>         three.
>         Others would be more interested in making the MIDI playback
>         follow more
>         of the indication in the score...
>         I'll try and put these and other ideas onto the website.
>         
>         Best wishes
>         
>         Richard
>         
>         
>         On Fri, 2012-10-19 at 19:41 +0200, Éloi Rivard wrote:
>         > Hi,
>         > My name is Éloi Rivard, I passed a master degree in software
>         > engineering last year in Bordeaux (France). Currently I work
>         as PHP
>         > developer for a friend's company. I'd like to get involved
>         in a FOSS
>         > project and I though about denemo for several reasons. First
>         I can
>         > program in C, denemo can run on a GNOME environment, and I'm
>         a
>         > musician. I play clarinet and saxophone in a brass band, and
>         guitar.
>         > Sometimes I write some song for my band, so I already used a
>         partition
>         > editor like Noteworthy.
>         > I can give you some help with code, but packaging and user
>         interfaces
>         > or even translation are also subjects I'm interested in.
>         Even if I'm
>         > not very experienced with packaging, user interfaces theory
>         or GTK, I
>         > would be glad to learn about them.
>         > Do you know simple tasks I can do to get familiar with the
>         code, as
>         > gnome-love ones ? It is a bit difficult to find easy bugs in
>         the huge
>         > savannah list.
>         > Let me know if I can be useful !
>         >
>         > Éloi
>         
>         
>         
> 
> 
> 
> -- 
> Éloi Rivard - address@hidden
>         
> « On perd plus à être indécis qu'à se tromper. »
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]