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 
<mailto:rich...@rshann.plus.com> 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 

> mailto:Denemo-devel@gnu.org 

> https://lists.gnu.org/mailman/listinfo/denemo-devel
_______________________________________________
Denemo-devel mailing list
Denemo-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/denemo-devel

Reply via email to