denemo-devel
[Top][All Lists]
Advanced

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

Re: [Denemo-devel] A possible scheme script


From: rain
Subject: Re: [Denemo-devel] A possible scheme script
Date: Tue, 29 Jan 2019 18:07:48 -0800
User-agent: Zoho Mail

     O.K., to explain a little further, the idea is that someone would use these script shortcuts *AS* they are writing the Cantus in the lower voice (To start; Later, will implement a 'writing Cantus on top, sending auto intervals to lower staff' version). So the approach is an "As you are writing approach", as anything else is too sophisticated for my needs, since one of the main purposes for this is simply as a learning tool, until being able to write the appropriate intervals will become second nature and the crutch will no longer be so necessary. So, now it is working good enough (for my current needs), as long as I am simply writing one note at a time *on the Cantus line*, then the shortcut to make interval appear on staff above, then a new note on the Cantus line, etc.
     Worrying about changing note duration on the staff above the Cantus, I will be able to use my usual keypress-shortcuts for that easily. The script below does work in the manner I described and I've set it up for all other intervals but have just provided an example below (others are the same, just changed the d-AddLowestUp/Down part and number of cursor up/downs for each interval). The only one that gave a problem was the diminished 5th, which needed to be flattened when going down, because the add-diminished-5th down is not in Denemo commands. I will look into adding the part that Richard suggested about dealing with rests later, as that will come in very useful.
     I'll make the menu items, then the palette buttons for shortcuts. Not sure what the best way to make that available when it is ready? Someplace I could upload?

   - new, working example:
(d-AddLowestUpMinor3)
(d-CursorDown)
(d-CursorDown)
(d-CursorDown)
(d-RemoveNoteFromChord)
(d-SetMark)
(d-Cut)
(d-MoveToStaffUp)
(d-SelectionToEmptyMeasure)
(d-MoveCursorLeft)
(d-Paste)
(d-MoveCursorLeft)
(d-SetMark)
(d-Copy)
(d-MoveToStaffDown)
(d-SelectionToEmptyMeasure)
(d-MoveCursorLeft)
(d-Paste)
(d-MoveCursorLeft)
(d-AddHighestDownMinor3)
(d-CursorToLowestNote)
(d-CursorUp)
(d-CursorUp)
(d-CursorUp)
(d-RemoveNoteFromChord)



---- On Tue, 29 Jan 2019 03:37:12 -0800 Richard Shann <address@hidden> wrote ----

On Mon, 2019-01-28 at 15:13 -0800, rain wrote:
> Hello Richard (and or whomever gets this email, I'm not sure who the
> recipients
your email will be useful to more than just the recipients (that is
those subscribed to the denemo-devel mailing list) - it will be seen by
people trawling for information about how to do things in Denemo.
> are),
>
>     Something that you may, or may not be interested in adding,
> eventually: If someone was writing with counterpoint in mind, adding
> intervals easily (good for beginners like me who are learning music
> theory alongside using Denemo) to the staff above (or below) the
> Cantus Firmus could be achieved with something like (with cursor on a
> note on lower staff and staff above blank, in this case):
I'm not quite sure I understand what you are doing - it can help to add
a few lines of script first to set up the initial condition that your
script is to work with, so for example:
(d-New)
(d-AddAfter)
(d-C)
(d-MoveCursorLeft)
;(exit)
(d-AddLowestUpMajor3)
(d-CursorDown)
(d-CursorDown)
(d-CursorDown)
(d-RemoveNoteFromChord)
;(exit)
(d-SetMark)
(d-Cut)
(d-MoveToStaffUp)
(d-MoveCursorRight)
(d-Paste)
(d-MoveCursorLeft)
(d-SetMark)
(d-Copy)
(d-MoveToStaffDown)
(d-MoveCursorRight)
(d-Paste)
(d-MoveCursorLeft)
(d-AddHighestDownMajor3)
(d-CursorUp)
(d-CursorUp)
(d-CursorUp)
(d-RemoveNoteFromChord)

This starts a new score adds a staff below puts the note C into it,
moves the cursor to that note and then executes your sequence of
operations. The result is that the staff above gets a single-note chord
a major third above the C and so does the lower staff. It will do
something more confusing if you are not on the first note of a measure
(perhaps not applicable if you are adding to a Cantus Firmus with one
note per measure). And as you say it could get upset by the presence of
non-music in the bar (for this problem there is this:

(while (and (not (Music?)) (d-MoveCursorRight)))

which will move the cursor rightwards while it is not on a note or rest
("Music").)

Having said that, I'm not sure what you are trying to do - do you
intend to leave the Cantus Firmus unchanged and put a note or sequence
of notes in the staff above? There's something remotely like that for
entry from MIDI keyboard at Input->MIDI->Chords For Bar and I did
something even more elaborate myself https://vimeo.com/62426412 which
shows a script letting you add chords to a bass line (the script is in
Educational->MIDI->Handel's... I think).

It will be great if you can add to the facilities for aiding composers
using Denemo - most work has been done for transcribing. And, indeed,
most composers still use paper and pencil and only turn to a computer
to transcribe their work.

HTH

Richard

>
> (d-AddLowestUpMajor3)
> (d-CursorDown)
> (d-CursorDown)
> (d-CursorDown)
> (d-RemoveNoteFromChord)
> (d-SetMark)
> (d-Cut)
> (d-MoveToStaffUp)
> (d-MoveCursorRight)
> (d-Paste)
> (d-MoveCursorLeft)
> (d-SetMark)
> (d-Copy)
> (d-MoveToStaffDown)
> (d-MoveCursorRight)
> (d-Paste)
> (d-MoveCursorLeft)
> (d-AddHighestDownMajor3)
> (d-CursorUp)
> (d-CursorUp)
> (d-CursorUp)
> (d-RemoveNoteFromChord)
>
> Thanks to Denemo's ability to set the cursor to same not position on
> the staff when moving cursor up and down staffs.
>
>   Rain
>
>
> _______________________________________________
> Denemo-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/denemo-devel



reply via email to

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