Any idea on how to shorten those stems?
!NoteWorthyComposerClip(2.75,Single)
|Dynamic|Style:pp|Pos:-10|Wide:Y
|Chord|Dur:8th,Grace|Pos:b-2,b-1,b5,b6,b12|Opts:NoLegerLines,Muted|Visibility:Never
|User|Arpeggio.ms|Pos:-3|Dir:down|Rate:64|Visibility:Never
|Chord|Dur:Half|Pos:-2z,-1z,0z,1z,2z,3z,5z,6z,7z,8z,9z,10z,12z,b13|Opts:Crescendo,StemLength=7,Muted
|Note|Dur:8th,Grace|Pos:13|Opts:Crescendo,ArticulationsOnStem,Muted|Visibility:Never
|Spacer|Width:525
|User|Glissando.ms|Pos:1
|Note|Dur:8th,Grace|Pos:-4|Opts:Crescendo,ArticulationsOnStem,Muted|Visibility:Never
|Dynamic|Style:mp|Pos:-10|Visibility:Never
|Spacer|Width:75
|User|Arpeggio.ms|Pos:-3|Rate:64|ForceArrow:Y|Visibility:Never
|Chord|Dur:Half|Pos:-4,-2z,-1z,0z,1z,2z,3z,5z,6z,7z,8z,9z,10z,12z,13z|Opts:Stem=Up,Diminuendo,StemLength=7,NoLegerLines,Muted
|Spacer|Width:650
|User|Glissando.ms|Pos:1
|Bar
|Note|Dur:8th,Grace|Pos:n13|Opts:Diminuendo,ArticulationsOnStem,Muted|Visibility:Never
|Chord|Dur:8th,Grace|Pos:b-2,b-1,b5,b6,b12|Opts:NoLegerLines,Muted|Visibility:Never
|Dynamic|Style:pp|Pos:-10|Visibility:Never
|User|Arpeggio.ms|Pos:-3|Dir:down|Rate:64|Visibility:Never
|Chord|Dur:Half|Pos:-5z,-4z,-2z,-1z,0z,1z,2z,3z,5z,6z,7z,8z,9z,10z,12z,b13|Opts:StemLength=7,Muted
|Note|Dur:8th,Grace|Pos:13|Opts:ArticulationsOnStem,Muted|Visibility:Never
|Spacer|Width:525
|User|Glissando.ms|Pos:1|EndOffsetY:1
|User|Arpeggio.ms|Pos:-3|Rate:64|ForceArrow:Y|Visibility:Never
|Chord|Dur:Half|Pos:-6,-5z,-4z,-2z,-1z,0z,1z,2z,3z,5z,6z,7z,8z,9z,10z,12z,13z|Opts:Stem=Up,StemLength=7,NoLegerLines,Muted
|Spacer|Width:650
|User|Glissando.ms|Pos:1
|Bar
|Note|Dur:8th,Grace|Pos:n13|Opts:ArticulationsOnStem,Muted|Visibility:Never
!NoteWorthyComposerClip-End
N.B. I started to think this is a case for a only visible staff plus a hidden staff playing...
It looks like what you really want is a glissando object that plays (so you won't need to use hidden arpeggios and blank noteheads).
Or as you say, put the playback notes on a hidden staff.
Well, I'll go that way.
What I love the least is to work with invisible notes; invisible in the editor too, I mean.
Thanks
Do you really need a glissando or what trombone players call a gliss, which is actually a portamento?
If the latter, then a pitch change MPC will do the job, especially now that you can set the pitch bend range in the instrument properties.
Don't do stupid things. Then you won't need to solve stupid problems.
Just a thought ::)
Listening to the clip, it sounds very much like harp glissandos to me.
I have toyed with the idea of adding playback to the Glissando.ms object, but from what I have read about their performance, it could be complicated. Different instruments seem to do them differently. For example, on a piano, you would probably want to play just the white (or black?) keys, whereas on a harp, there could be all sorts of options. On a guitar, they would probably need to be in half-steps. And I was considering only discrete (chromatic) glissandos, not the continuous portamento that horns and non-fretted string instruments can do.
I am also trying to add system spanning to the drawing of glissandos, which should be fairly easy now, but for some reason it is proving to be a challenge.
How about just playing a list of MIDI numbered notes in a specified number of clicks?
True, but I was wondering what Flurmy actually wanted rather that what the example showed.
If you do add sound to your gliss object, please make sure there is a way to either disable it (to allow an MPC to work), OR add the pitch sweep capacity of the MPC to allow for Trombones and unfretted stuff.
Full strike! :D
With a harp you often use omophonies so as to have every time a very distinctive glissato, quite different from the usual diatonic or chromatic glissando, not to say about the portamento you (usually) get with MPC.
Of course, in theory you can always tinker with the span and sweep resolution of MPG to get a chromatic glissando... :))
I was wondering what Flurmy actually wanted rather that what the example showed.
No, Lawrie, that's quite close to what I needed.
By the way: I copied the "arpeggio" on a hidden staff, so no problem of invisible noteheads.
Possible adaptation of Version 2.0b of Glissando.ms:
local PlaybackStyle = {'None','Chromatic','AllNaturals'}
local KeyIntervals = {
None = {},
Chromatic = {0,1,2,3,4,5,6,7,8,9,10,11},
AllNaturals = {0,2,4,5,7,9,11},
}
...
local _spec = {
...
{ id='Playback', label='Playback', type='enum', default=PlaybackStyle[1], list=PlaybackStyle },
}
...
local function GlissOctaveNearestNextInterval(t,inOctaveSemiTone)
for i,v in ipairs(t) do
if v >= inOctaveSemiTone then return i-1 end
end
return 0
end
local function CountGlissIntervals(k,v)
local o = math.floor(v/12)
local i = v % 12
return #k*o + GlissOctaveNearestNextInterval(k,i)
end
local function GlissNoteFromInterval(k,v)
local opitches = #k
local o = math.floor(v/opitches)
local i = v % opitches
return 12*o + k[i+1]
end
local function _play(t)
local playback = KeyIntervals[t.Playback]
if #playback < 1 then return end
if not (hasPriorTargetNote(priorNoteidx) and nextNoteidx:find('span', 1)) then return end
local startSPP = priorNoteidx:sppOffset()
local acc = t.TargetAcc
local dur = -startSPP
local v1 = nwcplay.getNoteNumber(priorNoteidx:notePitchPos(1) or '0')
local v2 = nwcplay.getNoteNumber(nextNoteidx:notePitchPos(1))
local inc = (v1<v2) and 1 or -1
local interval1,interval2 = CountGlissIntervals(playback,v1,inc),CountGlissIntervals(playback,v2,inc)
local deltav = math.abs(interval1-interval2)-1
if deltav < 1 then return end
local deltaSPP = dur/(deltav+1)
if deltaSPP < 1 then return end
for i=0,deltav do
local interval = interval1+(inc*i)
local notepitch = GlissNoteFromInterval(playback,interval)
if ((i==0) and (notepitch~=v1)) then notepitch = v1 end
nwcplay.note(startSPP+(deltaSPP*i),deltaSPP,notepitch)
end
end