/[gsharp]/gsharp/gui.lisp
ViewVC logotype

Log of /gsharp/gui.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.98 - (view) (annotate) - [select for diffs]
Sun May 17 16:11:57 2009 UTC (4 years, 11 months ago) by crhodes
Branch: MAIN
CVS Tags: HEAD
Changes since 1.97: +57 -0 lines
Diff to previous 1.97
Slightly rudimentary support for view/buffer handling (C-x b and C-x k)

The major thing that needs fixing is being currently unable to name and
refer to views with a sensible (unique) string name.

Revision 1.97 - (view) (annotate) - [select for diffs]
Mon Apr 20 15:04:47 2009 UTC (4 years, 11 months ago) by dlewis
Branch: MAIN
Changes since 1.96: +22 -4 lines
Diff to previous 1.96
Basic time signature support. Only some sigs supported and spacing is basic.
Key and time signatures now share a staffwise-elements slot in the stave.

Revision 1.96 - (view) (annotate) - [select for diffs]
Wed Nov 19 16:05:13 2008 UTC (5 years, 4 months ago) by crhodes
Branch: MAIN
Changes since 1.95: +7 -7 lines
Diff to previous 1.95
Export make-key-signature, key-signatures from gsharp-buffer

Revision 1.95 - (view) (annotate) - [select for diffs]
Wed Nov 19 15:45:47 2008 UTC (5 years, 4 months ago) by crhodes
Branch: MAIN
Changes since 1.94: +1 -1 lines
Diff to previous 1.94
Remove gsharp-buffer:: prefix from key-signature (since it's exported).

Revision 1.94 - (view) (annotate) - [select for diffs]
Sat Feb 9 16:58:35 2008 UTC (6 years, 2 months ago) by crhodes
Branch: MAIN
Changes since 1.93: +12 -0 lines
Diff to previous 1.93
Work-in-progress hooks for drawing routines, used for now for
tenuto and staccato articulation marks.

The quality of the graphical rendering of the marks is not really up to
scratch; horizontal placement seems to be off by somewhere between half
and one pixel, and of course a note with both marks on at once gets an
ugly graphical clash.  As I say, "work in progress".

Revision 1.93 - (view) (annotate) - [select for diffs]
Wed Jan 30 09:59:25 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.92: +4 -14 lines
Diff to previous 1.92
Added the ESA menus the Gsharp menu.

Revision 1.92 - (view) (annotate) - [select for diffs]
Wed Dec 19 11:06:03 2007 UTC (6 years, 3 months ago) by thenriksen
Branch: MAIN
Changes since 1.91: +6 -6 lines
Diff to previous 1.91
Provide default values for commands expected to accept numeric
arguments.

Revision 1.91 - (view) (annotate) - [select for diffs]
Sun Nov 25 14:19:29 2007 UTC (6 years, 4 months ago) by crhodes
Branch: MAIN
Changes since 1.90: +4 -3 lines
Diff to previous 1.90
Fix gsharp-common :new-process t

We need a lexical variable to use inside RUN, which may be called inside
a new thread.

(Also, we might need to have bound *ESA-INSTANCE*, so let's do that
proactively.)

Revision 1.90 - (view) (annotate) - [select for diffs]
Thu Nov 22 09:33:03 2007 UTC (6 years, 4 months ago) by crhodes
Branch: MAIN
Changes since 1.89: +16 -14 lines
Diff to previous 1.89
Make the Print Buffer To File command output eps if the pathname type is
"eps".

No error-checking for multiple pages or anything sensible like that.

Revision 1.89 - (view) (annotate) - [select for diffs]
Wed Nov 21 19:22:03 2007 UTC (6 years, 4 months ago) by crhodes
Branch: MAIN
Changes since 1.88: +25 -33 lines
Diff to previous 1.88
Define a method on esa-current-buffer, not frame-current-buffer, after
Troels' reworking.

Also rewrite BUFFERS method so that if the window doesn't yet have a
view nothing bad happens.

This allows writing gsharp:gsharp and gsharp:edit-file in terms of
executing commands on an (adopted) gsharp frame, reducing code
duplication and also fixing a bad bug in gsharp:edit-file, which would
destroy the layer/staff structure if the file's first layer spanned
multiple staves.

Revision 1.88 - (view) (annotate) - [select for diffs]
Sat Oct 27 02:10:55 2007 UTC (6 years, 5 months ago) by mjonsson
Branch: MAIN
Changes since 1.87: +5 -1 lines
Diff to previous 1.87
Implemented play-buffer and made play-layer available in play menu

Revision 1.87 - (view) (annotate) - [select for diffs]
Tue Sep 18 21:19:03 2007 UTC (6 years, 7 months ago) by crhodes
Branch: MAIN
Changes since 1.86: +4 -2 lines
Diff to previous 1.86
Support long ("lunga") notes and rests.

It's a bit weird, because the lunga has the same notehead as a breve,
but also has a stem; so having a NOTEHEAD of :long is a bit of a
misnomer.  Hey ho.

Revision 1.86 - (view) (annotate) - [select for diffs]
Mon Sep 17 20:30:59 2007 UTC (6 years, 7 months ago) by crhodes
Branch: MAIN
Changes since 1.85: +2 -2 lines
Diff to previous 1.85
More likely space requirements handling.  (More likely to actually work,
that is.  Thanks to Athas and hefner for the ideas and the debugging
patience.)

Revision 1.85 - (view) (annotate) - [select for diffs]
Fri Sep 14 15:52:57 2007 UTC (6 years, 7 months ago) by crhodes
Branch: MAIN
Changes since 1.84: +8 -8 lines
Diff to previous 1.84
Reverse the notehead rotation order for C-r.  I apologise if this
destroys someone's finger macros, but the current order is too illogical
in the default state.

Revision 1.84 - (view) (annotate) - [select for diffs]
Fri Sep 14 15:48:05 2007 UTC (6 years, 7 months ago) by crhodes
Branch: MAIN
Changes since 1.83: +8 -6 lines
Diff to previous 1.83
Support for breves and breve rests.

Revision 1.83 - (view) (annotate) - [select for diffs]
Tue Aug 7 14:00:09 2007 UTC (6 years, 8 months ago) by crhodes
Branch: MAIN
Changes since 1.82: +5 -0 lines
Diff to previous 1.82
Better final accidentals:

* look back through the current bar / layer, no further than the
  currently active key signature, to find a note on the same staff with
  the same pitch: if there is one, and the accidentals are the same,
  no need to have an accidental displayed.

Remaining to do:

* more or less any editing action should invalidate the
  already-computed final accidentals of the current bar.  At present,
  final accidentals aren't recomputed often enough.

Revision 1.82 - (view) (annotate) - [select for diffs]
Tue Aug 7 11:06:09 2007 UTC (6 years, 8 months ago) by crhodes
Branch: MAIN
Changes since 1.81: +35 -1 lines
Diff to previous 1.81
Printing to file.

It's still somewhat hacky, but the worst of it is gone:

* light glyphs ink is taken from the view, so we can construct a dark
  ink for light glyphs;
* code to draw a single page is shared between the printing and
  screen-drawing routines;
* new-page is called the right number of times;
* the user is prompted for a filename (with a sensible default).

Remaining stuff to do:

* factor out a little bit more shared code between draw-buffer and
  print-buffer;
* when creating the view, copy the current view;
* be cleverer about the medium transformation.

Revision 1.81 - (view) (annotate) - [select for diffs]
Fri Jul 6 14:16:20 2007 UTC (6 years, 9 months ago) by crhodes
Branch: MAIN
Changes since 1.80: +20 -0 lines
Diff to previous 1.80
Reducing my deviation from upstream, part $n$: M-: support.

Revision 1.80 - (view) (annotate) - [select for diffs]
Thu Jul 5 21:13:03 2007 UTC (6 years, 9 months ago) by crhodes
Branch: MAIN
Changes since 1.79: +69 -73 lines
Diff to previous 1.79
Alright, let's try this: more correct key signatures, I hope.

The major change to the protocol is that REMOVE-ELEMENT takes as a
required argument the bar as well as the element; this allows more
symmetric methods to be written for the various stealth mixin bits of
functionality.

Key signatures are elements, as before, within a layer.  However, they
are also kept on a list sorted by sequence in a slot of the staff, and
KEYSIG is responsible for checking the relevant staff for other key
signature elements.  Editing actions or commands are also responsible
for maintaining this list sorted in the right order.  New almost-correct
function for testing the temporal-and-logical ordering of elements.

Drawing code now computes the correct key signature for the each staff;
linebreaking is done with a conservative assumption for how wide the key
signature will be.

Please test.

Revision 1.79 - (view) (annotate) - [select for diffs]
Thu Jun 28 13:56:53 2007 UTC (6 years, 9 months ago) by mjonsson
Branch: MAIN
Changes since 1.78: +4 -2 lines
Diff to previous 1.78
Completed implementation of quartertone playback for regular temperaments. Fixed keybinding bug for microsharper.

Revision 1.78 - (view) (annotate) - [select for diffs]
Thu Jun 21 11:14:25 2007 UTC (6 years, 9 months ago) by crhodes
Branch: MAIN
Changes since 1.77: +62 -12 lines
Diff to previous 1.77
Support for semi/sesqui sharp/flat.

* don't declare the type of the accidentals slot any more; we can put
  that back in a little, after we work out a declarative way of defining
  all properties of accidentals.

* microsharpen and microflatten commands and functions; define sharpen
  and flatten in terms of those (and knowing which accidentals are the
  tonal ones).  Keybindings for the commands.

* a more declarative table-based system for kerning accidentals, along
  with the ability to specify a per-glyph default (and a default
  default).  Choose a sensible default default; also alter the
  :sharp/:sharp table when +4 steps away, as the previous value was
  colliding a little too much.

* support for playing the semi accidentals in equal temperament.  No
  support in linear temperament, as I don't know what they mean.

* glyphs defined with a little too much liberal cut'n'paste.  Some
  FIXMEs note the essential differences between the related glyphs.

Revision 1.77 - (view) (annotate) - [select for diffs]
Mon Jun 18 15:18:17 2007 UTC (6 years, 10 months ago) by mjonsson
Branch: MAIN
Changes since 1.76: +9 -0 lines
Diff to previous 1.76
Added support for regular temperaments

Revision 1.76 - (view) (annotate) - [select for diffs]
Sun Jun 10 08:15:28 2007 UTC (6 years, 10 months ago) by crhodes
Branch: MAIN
Changes since 1.75: +32 -0 lines
Diff to previous 1.75
select-layer-by-layout commands and keybindings (C-down and C-up for
now)

Revision 1.75 - (view) (annotate) - [select for diffs]
Thu Jun 7 09:26:04 2007 UTC (6 years, 10 months ago) by crhodes
Branch: MAIN
Changes since 1.74: +92 -0 lines
Diff to previous 1.74
Somewhat hacky motion-by-layout commands (line- and page-based).  These
was by far the most annoying motion commands to be lacking when actually
editing scores, in my opinion; C-a and C-e are absolutely wired into my
fingers.

Future candidates for inclusion: motion by layer (ideally in a way
that's related to the layout, so that in the common case where there is
one layer per staff the Right Thing happens); motion by
note-in-associated-layer (lyrics).

Also remove C-h binding for delete-current-element, and put Backspace in
instead; this lets the ESA help bindings work.

Revision 1.74 - (view) (annotate) - [select for diffs]
Tue Jan 16 05:17:40 2007 UTC (7 years, 3 months ago) by rstrandh
Branch: MAIN
CVS Tags: works-with-0_9_4
Changes since 1.73: +422 -422 lines
Diff to previous 1.73
Replaced (current-buffer *application-frame*) by (current-buffer) as
required by ESA now.

Also, untabified to make editing with Climacs easier.

Revision 1.73 - (view) (annotate) - [select for diffs]
Thu Nov 16 12:58:23 2006 UTC (7 years, 5 months ago) by crhodes
Branch: MAIN
Changes since 1.72: +2 -2 lines
Diff to previous 1.72
Update for CVS HEAD mcclim.  (The previous version, working with McCLIM
0.9.3, was tagged as works-with-McCLIM_0_9_3, or possibly that with the
hyphens and underscores exchanged)

Revision 1.72 - (view) (annotate) - [select for diffs]
Thu Sep 14 14:34:47 2006 UTC (7 years, 7 months ago) by crhodes
Branch: MAIN
CVS Tags: works-with-0_9_3
Changes since 1.71: +5 -5 lines
Diff to previous 1.71
Fixes for ESA changes from Troels Henriksen.

Revision 1.71 - (view) (annotate) - [select for diffs]
Wed Aug 2 02:14:44 2006 UTC (7 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.70: +1 -1 lines
Diff to previous 1.70
Implemented a name change suggested by Magnus Johansson:

   Insert Measure Bar -> Insert Barline

Revision 1.70 - (view) (annotate) - [select for diffs]
Wed Aug 2 01:53:51 2006 UTC (7 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.69: +4 -4 lines
Diff to previous 1.69
Implemented the name change suggested by Magnus Johansson:

   Insert Staff After -> Insert Staff Below
   Insert Staff Before -> Insert Staff Above

Revision 1.69 - (view) (annotate) - [select for diffs]
Mon Jun 19 17:40:34 2006 UTC (7 years, 10 months ago) by crhodes
Branch: MAIN
Changes since 1.68: +89 -3 lines
Diff to previous 1.68
Merge keysigN patch, with all its attendant horribleness.

Revision 1.68 - (view) (annotate) - [select for diffs]
Sat Jun 17 19:15:02 2006 UTC (7 years, 10 months ago) by rstrandh
Branch: MAIN
Changes since 1.67: +11 -4 lines
Diff to previous 1.67
Recompute measures in a :before method on redisplay-frame-pane
as opposed to redisplay-frame-panes.  This turns out to be necessary
because redisplay-frame-panes is not always called.  In particular
redisplay-frame-pane is called from adopt-frame without going through
redisplay-frame-panes, and adopt-frame is called when Gsharp is
started from the CLIM desktop.

Revision 1.67 - (view) (annotate) - [select for diffs]
Wed Jun 14 19:20:41 2006 UTC (7 years, 10 months ago) by rstrandh
Branch: MAIN
Changes since 1.66: +22 -0 lines
Diff to previous 1.66
New commands: com-octave-up and com-octave-down that work for
clusters, bound to Meta-U and Meta-D.

They move the current note up/down by an entire octave.  These
commands are useful when the automatic pitch follower gets it wrong.

Revision 1.66 - (view) (annotate) - [select for diffs]
Wed Jun 14 03:38:56 2006 UTC (7 years, 10 months ago) by rstrandh
Branch: MAIN
Changes since 1.65: +28 -2 lines
Diff to previous 1.65
Display page numbers in the info pane.

Revision 1.65 - (view) (annotate) - [select for diffs]
Tue Jun 13 19:39:56 2006 UTC (7 years, 10 months ago) by rstrandh
Branch: MAIN
Changes since 1.64: +20 -0 lines
Diff to previous 1.64
Implemented commands to go to the beginning and to the end of the
score, bound to M-< and M-> respectively.

Revision 1.64 - (view) (annotate) - [select for diffs]
Thu Jun 1 04:57:10 2006 UTC (7 years, 10 months ago) by rstrandh
Branch: MAIN
Changes since 1.63: +1 -0 lines
Diff to previous 1.63
Removed bogus menu entry.

Revision 1.63 - (view) (annotate) - [select for diffs]
Tue May 23 11:43:29 2006 UTC (7 years, 10 months ago) by crhodes
Branch: MAIN
Changes since 1.62: +4 -4 lines
Diff to previous 1.62
Make the File menu basically work.  I couldn't find a way of graying out
or invalidating commands, but that's not a big deal really yet.

Revision 1.62 - (view) (annotate) - [select for diffs]
Tue May 23 10:55:26 2006 UTC (7 years, 10 months ago) by crhodes
Branch: MAIN
Changes since 1.61: +30 -28 lines
Diff to previous 1.61
Make the Measure menu work again; have only one definition of
com-forward/backward-measure.

Document one or two commands; make com-erase-element take a numeric
prefix parameter.

Revision 1.61 - (view) (annotate) - [select for diffs]
Mon May 22 13:39:30 2006 UTC (7 years, 10 months ago) by crhodes
Branch: MAIN
Changes since 1.60: +16 -0 lines
Diff to previous 1.60
Movement by measure, bound to M-C-f and M-C-b.

Revision 1.60 - (view) (annotate) - [select for diffs]
Sun May 14 07:51:27 2006 UTC (7 years, 11 months ago) by crhodes
Branch: MAIN
Changes since 1.59: +12 -1 lines
Diff to previous 1.59
Scrolling.

* change space requirements after drawing to a score pane
* intercept window-clear on score panes, so as not to reset sheet
transformations, viewport positions, and so on, but just to clear the
output record and draw in background ink.

Revision 1.59 - (view) (annotate) - [select for diffs]
Thu Mar 2 09:29:44 2006 UTC (8 years, 1 month ago) by crhodes
Branch: MAIN
Changes since 1.58: +4 -0 lines
Diff to previous 1.58
Make the tempo (for playback only, currently) a segment slot; add
command-line UI for setting it.

Revision 1.58 - (view) (annotate) - [select for diffs]
Thu Mar 2 09:21:34 2006 UTC (8 years, 1 month ago) by crhodes
Branch: MAIN
Changes since 1.57: +3 -4 lines
Diff to previous 1.57
Implement octaviated treble clefs.  This isn't terribly general, I
concede; the clef protocol might need to be rethought.  However, it does
capture functionality which was previously expressed in multiple places
in the functions B-POSITION, F-POSITION and BOTTOM-LINE.

Revision 1.57 - (view) (annotate) - [select for diffs]
Wed Mar 1 00:15:42 2006 UTC (8 years, 1 month ago) by rstrandh
Branch: MAIN
Changes since 1.56: +5 -0 lines
Diff to previous 1.56
Make rotate-notehead work again for rests.
(thanks to Christophe Rhodes).

Revision 1.56 - (view) (annotate) - [select for diffs]
Wed Feb 15 17:46:52 2006 UTC (8 years, 2 months ago) by rstrandh
Branch: MAIN
Changes since 1.55: +49 -11 lines
Diff to previous 1.55
Gsharp now has an info pane (what Emacs calls a "mode-line").

Revision 1.55 - (view) (annotate) - [select for diffs]
Wed Feb 15 03:18:03 2006 UTC (8 years, 2 months ago) by rstrandh
Branch: MAIN
Changes since 1.54: +2 -106 lines
Diff to previous 1.54
Cleaned up some dead code.

Revision 1.54 - (view) (annotate) - [select for diffs]
Wed Feb 15 02:54:26 2006 UTC (8 years, 2 months ago) by rstrandh
Branch: MAIN
Changes since 1.53: +38 -12 lines
Diff to previous 1.53
Added a new package and a new file ESA-BUFFER allowing buffers to be
named, to be associated with a file name, and to have a `needs-saving'
and a `read-only' flag.

Added a new package and a new file ESA-IO containing
application-independent functionality to create buffers from files,
and to save buffers to files.  This package also supplies filename
completion.  Most of the code was adapted from Climacs.

Abstracted out all Gsharp-specific I/O to ESA-IO.  In particular, this
means that we now have commands such as C-x C-s, and C-x C-w, which we
didn't before.

The old I/O code is still there.  Cleanup is next.

Revision 1.53 - (view) (annotate) - [select for diffs]
Mon Feb 13 23:51:34 2006 UTC (8 years, 2 months ago) by rstrandh
Branch: MAIN
Changes since 1.52: +39 -5 lines
Diff to previous 1.52
Reorganized the command tables so that there are command tables
that are specific to element types.

Implemented find-applicable-gsharp-command-table that determines
a command table based on the layer the cursor is in and (if any) the
current element.

Added `tie-left' and `tie-right' accessors to notes and lyrics
elements and commands for modifying the ties.  Ties are not rendered
yet.

Revision 1.52 - (view) (annotate) - [select for diffs]
Thu Feb 9 03:17:25 2006 UTC (8 years, 2 months ago) by rstrandh
Branch: MAIN
Changes since 1.51: +3 -35 lines
Diff to previous 1.51
The default key signature of a staff is now represented by an instance
of the new class `key-signature', rather than by just a vector.  The
commands `com-more-sharps' and `com-more-flats' now call new protocol
generic functions on the key signature.

I used the suggestion from the patch by Christophe Rhodes to introduce
a new class `rhythmic-element' below `element' and move slots that
have to do with duration to that new class (rbeams, lbeams, dots).
The `key-signature' class does not inherit from `rhythmic-element',
but instead directly from `element'.

In order to avoid having to alter the external format yet again, the
reader tests whether a vector was read as the key signature, and if
so, replaces it by an instance of the new class.

As a nice side effect, I was able to remove the symbol
`invalidate-everything-using-staff' from the list of exported symbols
of `measure.lisp', because it is now used by the :after methods on
`more-sharps' and `more-flats', defined in the same package.

What I haven't done (I'll let Christophe do it, unless he takes too
long) is to incorporate the parts from Christophe's patch that make it
possible to insert key signatures as elements into layers.

Revision 1.51 - (view) (annotate) - [select for diffs]
Thu Jan 5 19:14:45 2006 UTC (8 years, 3 months ago) by rstrandh
Branch: MAIN
Changes since 1.50: +2 -18 lines
Diff to previous 1.50
Fixed a bug reported by Christophe Rhodes.  The symptoms were that the
stems were not recomputed when the clef of the staff was changed.  In
fact, all elements that display on a staff need to be invalidated when
the clef of the staff changes.

Again, I used only the CLIM Desktop to accomplish this modification.

Revision 1.50 - (view) (annotate) - [select for diffs]
Tue Jan 3 14:25:46 2006 UTC (8 years, 3 months ago) by crhodes
Branch: MAIN
Changes since 1.49: +1 -1 lines
Diff to previous 1.49
Make the C clef have the right octave.

(FIXME: why are there two identical NOTE-POSITION methods?)

Revision 1.49 - (view) (annotate) - [select for diffs]
Tue Jan 3 03:10:14 2006 UTC (8 years, 3 months ago) by rstrandh
Branch: MAIN
Changes since 1.48: +105 -74 lines
Diff to previous 1.48
Prepared Gsharp for multi-buffer, multi-frame, and multi-view features.

This modification involved getting rid of the frame-global `buffer'
and `cursor' slots.  Now, a new class `gsharp-pane', a subclass of
score-pane, contains a slot for a view.  The idea is that a pane has a
particular view on display, and the view contains the buffer and the
cursor to be displayed in the pane.

Eventually C-x b will be used to change the view on display in the
current pane, C-x k will kill the view (and if it is the last view
that displays a certain modified buffer, the user will be asked to
confirm), C-x 2 will clone the view into a new top-level window.

There will also be commands to alter the class of the current view to
obtain parts views etc.  At least, this corresponds to my current
thinking.

This modification was obtained without using Emacs (except for typing
this message).  Instead I used the CLIM Desktop.  Specifically, I used
Climacs for editing source code with Swine for incremental compilation
and calling Closure to read CLHS documentation, and the CLIM Listener
to compile and execute Gsharp.  While Climacs and the other tools
still have some quirks, I must say I am VERY impressed with what they
can already do.

Revision 1.48 - (view) (annotate) - [select for diffs]
Mon Dec 5 03:27:26 2005 UTC (8 years, 4 months ago) by rstrandh
Branch: MAIN
Changes since 1.47: +2 -1 lines
Diff to previous 1.47
Final (?) step in separating coordinate computation and drawing.

Revision 1.47 - (view) (annotate) - [select for diffs]
Thu Dec 1 01:54:10 2005 UTC (8 years, 4 months ago) by rstrandh
Branch: MAIN
Changes since 1.46: +3 -34 lines
Diff to previous 1.46
Removed the cursor-drawing code from the score-drawing functions.  Instead
we now store the x and y positions and the width of each bar.  Cursor
drawing is now implemented as looking up those stored values and draing
the cursor based on them.

Revision 1.46 - (view) (annotate) - [select for diffs]
Thu Dec 1 00:19:39 2005 UTC (8 years, 4 months ago) by rstrandh
Branch: MAIN
Changes since 1.45: +3 -3 lines
Diff to previous 1.45
The input state is again visible.

Revision 1.45 - (view) (annotate) - [select for diffs]
Sat Nov 26 21:30:13 2005 UTC (8 years, 4 months ago) by rstrandh
Branch: MAIN
Changes since 1.44: +50 -30 lines
Diff to previous 1.44
Invalidated elements of layers using a staff that has its key signature
altered.

Revision 1.44 - (view) (annotate) - [select for diffs]
Sun Nov 20 19:17:22 2005 UTC (8 years, 4 months ago) by rstrandh
Branch: MAIN
Changes since 1.43: +13 -0 lines
Diff to previous 1.43
Patch to allow the current note to be deleted.
(thanks to Robert J. Macomber)

Revision 1.43 - (view) (annotate) - [select for diffs]
Mon Nov 14 20:26:14 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.42: +1 -1 lines
Diff to previous 1.42
Fixed prompt bug in com-delete-staff-from-layer.
(thanks to Robert J. Macomber)

Revision 1.42 - (view) (annotate) - [select for diffs]
Mon Nov 14 14:27:32 2005 UTC (8 years, 5 months ago) by crhodes
Branch: MAIN
Changes since 1.41: +6 -6 lines
Diff to previous 1.41
Sync esa with climacs.

Implement FIND-APPLICABLE-COMMAND-TABLE.

Revision 1.41 - (view) (annotate) - [select for diffs]
Thu Nov 10 17:37:16 2005 UTC (8 years, 5 months ago) by crhodes
Branch: MAIN
Changes since 1.40: +1 -1 lines
Diff to previous 1.40
rescue MAKE-LAYER: make the gui.lisp command call it with a list of one
staff, and make the constructor functions &allow-other-keys.  (Possibly
the &a-o-k should instead be just an additional keyword argument NAME).

Revision 1.40 - (view) (annotate) - [select for diffs]
Mon Nov 7 20:00:52 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.39: +1 -1 lines
Diff to previous 1.39
Improved on the constructors for buffer-related classes.

Revision 1.39 - (view) (annotate) - [select for diffs]
Mon Nov 7 05:23:57 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.38: +0 -1 lines
Diff to previous 1.38
remove the numbering stuff in favor of just calling POSITION
each time.

We are likely going to change the representation of sequences from
lists to something more elaborate anyway (where it matters), so the
numbering will not be relevant in the future.

Revision 1.38 - (view) (annotate) - [select for diffs]
Wed Nov 2 19:28:09 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.37: +2 -3 lines
Diff to previous 1.37
Put back some more constructors.

Two things need to be fixed ultimately:

  * Clefs should not be named objects.  Instead, the exact type should
    probably be identified by subclassing

  * There is not compelling reason for bars to be subclassed.  The
    distinction between melody and lyrics (and percussion, ultimately)
    is enough to enforce at the level of the layer.

Revision 1.37 - (view) (annotate) - [select for diffs]
Wed Nov 2 05:01:10 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.36: +25 -37 lines
Diff to previous 1.36
Put back some of the constructor functions.

Added more documentation about buffer protocols.

Revision 1.36 - (view) (annotate) - [select for diffs]
Tue Nov 1 18:08:02 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.35: +2 -2 lines
Diff to previous 1.35
Removed MAKE-INITIALIZED-BUFFER

Revision 1.35 - (view) (annotate) - [select for diffs]
Tue Nov 1 00:23:26 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.34: +2 -2 lines
Diff to previous 1.34
Removed the function MAKE-INITIALIZED-SEGMENT

Revision 1.34 - (view) (annotate) - [select for diffs]
Mon Oct 31 21:16:04 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.33: +6 -6 lines
Diff to previous 1.33
Removed make-lyrics-element and make-empty-segment

Revision 1.33 - (view) (annotate) - [select for diffs]
Mon Oct 31 20:48:17 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.32: +12 -10 lines
Diff to previous 1.32
Removed MAKE-CLUSTER and MAKE-REST in favor of
MAKE-INSTANCE 'CLUSTER and MAKE-INSTANCE 'REST

Revision 1.32 - (view) (annotate) - [select for diffs]
Mon Oct 31 20:38:49 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.31: +1 -1 lines
Diff to previous 1.31
Removed the function MAKE-LYRICS-STAFF in favor of
MAKE-INSTANCE 'LYRICS-STAFF

Revision 1.31 - (view) (annotate) - [select for diffs]
Mon Oct 31 20:16:51 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.30: +4 -3 lines
Diff to previous 1.30
Removed the function MAKE-FIVELINE-STAFF in favor of
MAKE-INSTANCE 'FIVELINE-STAFF.

Revision 1.30 - (view) (annotate) - [select for diffs]
Mon Oct 31 19:55:30 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.29: +2 -2 lines
Diff to previous 1.29
Removed MAKE-CLEF in favor of MAKE-INSTANCE 'CLEF

Revision 1.29 - (view) (annotate) - [select for diffs]
Mon Oct 31 18:24:39 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.28: +40 -35 lines
Diff to previous 1.28
Removed the function MAKE-NOTE in favor of MAKE-INSTANCE 'NOTE

Revision 1.28 - (view) (annotate) - [select for diffs]
Mon Oct 31 01:49:47 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.27: +14 -8 lines
Diff to previous 1.27
Improve and rename main entry point to `gsharp'.  Export that symbol from
the gsharp package.

Revision 1.27 - (view) (annotate) - [select for diffs]
Mon Oct 31 01:41:13 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.26: +6 -92 lines
Diff to previous 1.26
Extracted midi-related computations to a new file: play.lisp

Renamed notehead-duration to undotted-duration, which better reflects
the intention.

Revision 1.26 - (view) (annotate) - [select for diffs]
Fri Oct 28 17:20:19 2005 UTC (8 years, 5 months ago) by crhodes
Branch: MAIN
Changes since 1.25: +2 -1 lines
Diff to previous 1.25
Make the cursor be drawn in the right place.  Dunno why we need to
negate y-offset.

Revision 1.25 - (view) (annotate) - [select for diffs]
Fri Oct 28 16:22:01 2005 UTC (8 years, 5 months ago) by crhodes
Branch: MAIN
Changes since 1.24: +8 -3 lines
Diff to previous 1.24
Implement command table switching.  If we select a lyrics layer, then we
want to be in lyrics mode -- activate the lyrics command table.

Revision 1.24 - (view) (annotate) - [select for diffs]
Thu Oct 27 01:28:08 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.23: +2 -1 lines
Diff to previous 1.23
Removed Gsharp-specific code for double buffering.
Replaced it by general mechanism now available in McCLIM.
This should also fix the pixmap-focus bug, though I can't test that
because I never could reproduce the problem.

Revision 1.23 - (view) (annotate) - [select for diffs]
Sun Aug 7 23:18:02 2005 UTC (8 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.22: +1 -1 lines
Diff to previous 1.22
More modifications to allow incremental redisplay.  There is still a
problem with beam drawing which has to be converted to use the correct
superclass.

Revision 1.22 - (view) (annotate) - [select for diffs]
Tue Aug 2 00:34:41 2005 UTC (8 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.21: +15 -12 lines
Diff to previous 1.21
Fixed a bug in esa.lisp that made numeric arguments not work.

Error messages are now displayed in the minibuffer.

Some commands like forward-element, backward-element, and
delete-element now accept numeric arguments.

Prepared for incremental redisplay by changing inheritance of pixmap
records.  This is nontrivial, though, and will require some more
thinking about.  The best thing would be to fix McCLIM, but that looks
nontrivial as well.

Revision 1.21 - (view) (annotate) - [select for diffs]
Sun Jul 31 23:36:56 2005 UTC (8 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.20: +102 -104 lines
Diff to previous 1.20
Changed the sheet transformation of the score pane to be the default
for CLIM stream panes (0,0) in the upper-left corner.  This was in
order to simplify the rest of the code, and in particular the output
recording stuff.  There are probably some edge cases that don't yet
work like they are supposed to with the possibility of off-by-a-pixel
errors.

Removed all the rectangle output records in favor of calls to
draw-rectangle*.

Temporarily removed the double buffering as a preparation for better
seeing what is going on with incremental redisplay.

Getting incremental redisplay to work might require fixing a problem
in McCLIM which does not necessarily rely on the output-record
protocol, but instead sometimes assume the existence of a slot in the
record, whereas no such slot is required by the specification.  The
result is that the user cannot define his or her own output records
and have them work with incremental redisplay.

Revision 1.20 - (view) (annotate) - [select for diffs]
Mon Jul 25 11:14:37 2005 UTC (8 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.19: +2 -5 lines
Diff to previous 1.19
fixed some minor problems

Revision 1.19 - (view) (annotate) - [select for diffs]
Mon Jul 25 09:52:14 2005 UTC (8 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.18: +27 -66 lines
Diff to previous 1.18
Climacs is now an ESA (Emacs-style application) using the new package that
was abstracted out of Climacs.

Revision 1.18 - (view) (annotate) - [select for diffs]
Sun Aug 15 15:49:41 2004 UTC (9 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.17: +89 -23 lines
Diff to previous 1.17
Better filename completer that works for both SBCL and CMUCL.

Gsharp no longer destroys the port before starting up.  This is in
preparation to run applications from the listener, or from some other
application.

Made some cosmetic changes after having learned about the existence of
CONSTANTLY.

*gsharp-frame* (is it still needed?) is no longer setf'ed but bound,
so that each thread has its own copy.

Added numbering of the segments of a buffer as :after method on
initialize-instance on a buffer.

Revision 1.17 - (view) (annotate) - [select for diffs]
Sun Aug 1 15:14:33 2004 UTC (9 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.16: +4 -3 lines
Diff to previous 1.16
Lyrics input now allows for accents, provided that your keyboard
is capable of generating dead keys for these accents.  It only works for
X11 at the moment, I would think.

The way I do it is not great, since now I get messages about missing
commands for the control keys.  I have to think of a better way of
doing it.

Loading a file now calls select-layer so that the appropriate mode is
selected.  Loading the bach score with lyrics now immediately lets
you edit the lyrics.

Revision 1.16 - (view) (annotate) - [select for diffs]
Sat Jul 24 20:09:55 2004 UTC (9 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.15: +25 -2 lines
Diff to previous 1.15
Gsharp definitely has lyrics.

When a lyrics layer is selected, the ordinary alphabetic keys append
characters to the preceding lyrics element.  use C-Space to insert a
new lyrics element.  Use C-h to erase the last character of a lyrics
element.  It's a bit clunky, but it works.  I seriously doubt the full
power of Goatee is needed to edit lyrics.

I noticed that (probably unintentionally) McCLIM can handle Unicode
texts in the form of vectors of integers to draw-text.  It probably
just passes them on to the port-specific functions, and it happens to
work with clx.  It probably won't work on all backends, but it would
be nice if it did.  The default font on my machine can probably only
do character codes up to 255, but with a good font, it should be able
to do up to 65535.  But right now, I can get the German national
characters, which are needed for Bach.

Check out the new file Scores/bach181-lyrics.gsh.

In it, you will also notice that there is one place in which words
overlap.  To fix that (which is not just a lyrics problem, but also
happens with clusters with many accidentals) Gsharp must learn to
compute how much extra room an element might need, and adjust spacing
accordingly,

Unfortunately McCLIM does not handle input from a US-international
keyboard, so I actually had to put in the 's manually, but it should
work for others.

With lyrics, MIDI file generation is most likely broken, but I haven't
checked that yet. It should just skip lyrics layers.

Revision 1.15 - (view) (annotate) - [select for diffs]
Fri Jul 23 16:51:16 2004 UTC (9 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.14: +171 -200 lines
Diff to previous 1.14
These current modifications are not in a good state yet.  Some of them
are terribly kludgy, but I do not think anything is broken.

New files:

  modes.lisp containing key bindings
  sequence-dico.lisp: a dictionary that searches for objects
                      associated with sequences (lists really).

Utilities:

  Added some horribly kludgy Unicode support.

Buffer:

  New types: lyrics-staff, melody-element, lyrics-element, melody-bar,
             lyrics-bar, melody-layer, lyrics-layer

  Layers are no longer ordered.

Cursor:

  Removed functionality that used layer ordering.

Gui:

  Removed commands that used layer ordering.
  Added new commands to navigate, insert, and delete layers.
  Factored out and improved command processing.
  Some menus in menu bar work better.
  Added new presentation methods and types.
  Still no support for typing lyrics, but you can see them if they
  are already in a .gsh file.

Input state:

  It no longer contains the staff.  Instead the current staff is the first
  in the list of staves in the current layer.

Drawing:

  We can now draw lyrics.

Score pane:

  Now has a lyrics-staff presentation type.

Revision 1.14 - (view) (annotate) - [select for diffs]
Wed Jul 21 14:45:43 2004 UTC (9 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.13: +86 -46 lines
Diff to previous 1.13
completions for staves, staff types, and clef types work better now
(should no longer fail on parse error).

improved rename-staff command and made staff names unique.

Revision 1.13 - (view) (annotate) - [select for diffs]
Wed Jul 21 12:42:59 2004 UTC (9 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.12: +37 -37 lines
Diff to previous 1.12
added preseentation types for staff and clef in score pane.

score pane is no longer `use'd by other packages, exported symbols
from score pane are explicitly prefixed by client code.

removed presentation type for staff-line in score pane.

Revision 1.12 - (view) (annotate) - [select for diffs]
Mon Jul 19 06:23:53 2004 UTC (9 years, 9 months ago) by rstrandh
Branch: MAIN
Changes since 1.11: +81 -4 lines
Diff to previous 1.11
Staff types, staves, and clef types are now presentation types.

Add staff commands prompt for existing staff and name, type, clef
types, etc. for staff to insert.  We still do not verify that staff
name is unique.  We also need to add completion for staff names.

Updated documentation and release notes to reflect changes.

Revision 1.11 - (view) (annotate) - [select for diffs]
Sat Jul 17 08:21:13 2004 UTC (9 years, 9 months ago) by rstrandh
Branch: MAIN
Changes since 1.10: +1 -1 lines
Diff to previous 1.10
A '() somehow got forgotten after #-cmu

Revision 1.10 - (view) (annotate) - [select for diffs]
Fri Jul 16 13:21:47 2004 UTC (9 years, 9 months ago) by crhodes
Branch: MAIN
Changes since 1.9: +3 -1 lines
Diff to previous 1.9
allow gsharp to compile under non-cmucl.  Since this code is probably
going to be removed anyway, we can bypass best practice restrictions
from <http://www-jcsu.jesus.cam.ac.uk/~csr21/papers/features.pdf>.

Revision 1.9 - (view) (annotate) - [select for diffs]
Wed Jul 14 18:07:33 2004 UTC (9 years, 9 months ago) by rstrandh
Branch: MAIN
Changes since 1.8: +43 -45 lines
Diff to previous 1.8
General:

  removed presentation test code. in gui.lisp

Staves as presentations:

  draw-staff now also takes a staff object as an argument so that we
  can use the CLIM present function inside draw-staff.

  added present method for a staff object on a textual view.

  modified com-inssert-layer-after to take no arguments, but instead
  to use accept to gather a staff object.

Redisplay:

  pane is no longer cleared after each interaction, so redisplay is
  much smoother.


Filename completion:

  added completable-pathname presentation type and an accept method
  for this type.  The accept method uses a CMUCL-specific function
  (ext:ambiguous-files) to complete prefix pathnames.  Contributions
  for other Lisp systems to make this work would be welcome.

  modified com-load-file and com-save-buffer-as to take no arguments, but
  instead to use accept to gather its file name.  This modification probably
  should not have been necessary, as CLIM ought to use accept to
  gather unsupplied arguments, no?

Revision 1.8 - (view) (annotate) - [select for diffs]
Fri Feb 27 09:34:30 2004 UTC (10 years, 1 month ago) by rstrandh
Branch: MAIN
Changes since 1.7: +1 -2 lines
Diff to previous 1.7
Now that it is possible to start a second Gsharp after the first one
exits, make the quit command call frame-exit in both CMUCL and SBCL.

Revision 1.7 - (view) (annotate) - [select for diffs]
Fri Feb 27 09:27:42 2004 UTC (10 years, 1 month ago) by rstrandh
Branch: MAIN
Changes since 1.6: +7 -13 lines
Diff to previous 1.6
Changed the implementation of keyboard macros to store functions
instead of keys.  Once we get numeric arguments, we must store
thunks that call the commands with appropriate arguments.

Revision 1.6 - (view) (annotate) - [select for diffs]
Thu Feb 19 08:50:27 2004 UTC (10 years, 1 month ago) by rstrandh
Branch: MAIN
Changes since 1.5: +1 -1 lines
Diff to previous 1.5
Forgot to save buffer before committing.

Revision 1.5 - (view) (annotate) - [select for diffs]
Thu Feb 19 06:39:41 2004 UTC (10 years, 1 month ago) by rstrandh
Branch: MAIN
Changes since 1.4: +37 -1 lines
Diff to previous 1.4
Added Emacs-style keboard macro facility.

Revision 1.4 - (view) (annotate) - [select for diffs]
Wed Feb 18 18:16:16 2004 UTC (10 years, 2 months ago) by crhodes
Branch: MAIN
Changes since 1.3: +2 -0 lines
Diff to previous 1.3
Workaround the :shift problem with #\# commands: add an unshifted
variant.

Revision 1.3 - (view) (annotate) - [select for diffs]
Mon Feb 16 18:43:54 2004 UTC (10 years, 2 months ago) by crhodes
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2
Make the sbcl version of run-program search through $PATH for timidity

Revision 1.2 - (view) (annotate) - [select for diffs]
Mon Feb 16 16:08:00 2004 UTC (10 years, 2 months ago) by rstrandh
Branch: MAIN
Changes since 1.1: +107 -77 lines
Diff to previous 1.1
Updates since 0.2 release.

Revision 1.1.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Mon Feb 16 15:46:17 2004 UTC (10 years, 2 months ago) by rstrandh
Branch: strandh
CVS Tags: release-0-dot-2
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 , to next main 1.98
import of 0.2

Revision 1.1 - (view) (annotate) - [select for diffs]
Mon Feb 16 15:46:17 2004 UTC (10 years, 2 months ago) by rstrandh
Branch: MAIN
Branch point for: strandh
Initial revision

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5