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 14:07:41 -0800
User-agent: Zoho Mail

Wow, thank you for all this! It will take me a little while to unpack and make use of it, but it is exactly what I needed to see.
     "And, indeed,
     most composers still use paper and pencil and only turn to a computer
     to transcribe their work."
That is good to know and gives a goal to aim for. I'm thinking of using Denemo as a tool to catapult/propel the thought process into writing by hand more easily (establish ideas in Denemo, then do writing by hand, as the person gets better at transferring the ideas to mind, but I'd see both as being useful all along.
     "I'm not quite sure I understand what you are doing"...
Starting with the future Cantus on a staff with bass clef, and above that, a staff with treble clef. If the user inputs a C note on the bass clef staff, then runs the scheme script via keypress-shortcut or palette button, thence instructing the program to put a note on the upper staff that is a Major third above what the note is on the lower staff (Now a C is on the lower staff, and an E on the upper staff). As far as duration goes, start out with a whole note for the first note, when the next note is entered a Maj 3rd above on the upper staff, it will be a whole note, so the user may want to change it to a half note via keypress-shortcut (but you could write this into the script to change the duration automatically, just it would be easier to have one set [of interval commands, i.e. 2nd up, 3rd up, etc., at the automatically entered duration, which is a copy of the first note duration] and change the notes "manually" each time). There are a few different ways to go about this, but the following code performs it correctly after you have started a new score with two staffs (with bass and treble clefs, for instance) [warning, it does need some refining for differing situations, but this gets the idea started]:

 -This part works only if it is the first note, if another note, use the second script-
(d-AddLowestUpMajor3)
(d-CursorDown)
(d-CursorDown)
(d-CursorDown)
(d-RemoveNoteFromChord)
(d-SetMark)
(d-Cut)
(d-MoveToStaffUp)
(d-Paste)
(d-MoveCursorLeft)
(d-SetMark)
(d-Copy)
(d-MoveToStaffDown)
(d-Paste)
(d-MoveCursorLeft)
(d-AddHighestDownMajor3)
(d-CursorToLowestNote)
(d-CursorUp)
(d-CursorUp)
(d-CursorUp)
(d-RemoveNoteFromChord)

 -second script-
(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-CursorToLowestNote)
(d-CursorUp)
(d-CursorUp)
(d-CursorUp)
(d-RemoveNoteFromChord)

If we want our next note on the staff above the Cantus to be another half note, a perfect 5th above for instance, we just do the same thing with (d-AddLowestUpPerfect5) substituted for the previous two (Up and Down Major3rd's).

Next, these need to be set up for each interval quality, and also so it can be used if the Cantus is starting on the upper staff, or if it is starting on the lower staff. This could be more quickly achieved with a spread-sheet using Apache Open Office Calc, and you could just change a few things for each row and copy/paste as text.

Cheers,
R. Wilber

---- 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]