@@ -25,6 +25,7 @@ const ArticulationTests = {
25
25
QUnit . module ( 'Articulation' ) ;
26
26
const run = VexFlowTests . runTests ;
27
27
run ( 'Articulation - Vertical Placement' , verticalPlacement ) ;
28
+ run ( 'Articulation - Vertical Placement (Glyph codes)' , verticalPlacement2 ) ;
28
29
run ( 'Articulation - Staccato/Staccatissimo' , drawArticulations , { sym1 : 'a.' , sym2 : 'av' } ) ;
29
30
run ( 'Articulation - Accent/Tenuto' , drawArticulations , { sym1 : 'a>' , sym2 : 'a-' } ) ;
30
31
run ( 'Articulation - Marcato/L.H. Pizzicato' , drawArticulations , { sym1 : 'a^' , sym2 : 'a+' } ) ;
@@ -241,6 +242,67 @@ function verticalPlacement(options: TestOptions, contextBuilder: ContextBuilder)
241
242
ok ( true , ' Annotation Placement' ) ;
242
243
}
243
244
245
+ function verticalPlacement2 ( options : TestOptions , contextBuilder : ContextBuilder ) : void {
246
+ const ctx = contextBuilder ( options . elementId , 750 , 300 ) ;
247
+
248
+ const staveNote = ( noteStruct : StaveNoteStruct ) => new StaveNote ( noteStruct ) ;
249
+ const stave = new Stave ( 10 , 50 , 750 ) . addClef ( 'treble' ) . setContext ( ctx ) . draw ( ) ;
250
+
251
+ const notes = [
252
+ staveNote ( { keys : [ 'f/4' ] , duration : 'q' } )
253
+ . addModifier ( new Articulation ( 'fermataBelow' ) , 0 )
254
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . BELOW ) , 0 )
255
+ . addModifier ( new Articulation ( 'articTenutoBelow' ) , 0 ) ,
256
+ staveNote ( { keys : [ 'g/4' ] , duration : 'q' , stem_direction : Stem . DOWN } )
257
+ . addModifier ( new Articulation ( 'fermataShortBelow' ) , 0 )
258
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . BELOW ) , 0 )
259
+ . addModifier ( new Articulation ( 'articTenutoBelow' ) , 0 ) ,
260
+ staveNote ( { keys : [ 'c/5' ] , duration : 'q' } )
261
+ . addModifier ( new Articulation ( 'fermataLongBelow' ) , 0 )
262
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . BELOW ) , 0 )
263
+ . addModifier ( new Articulation ( 'articTenutoBelow' ) , 0 ) ,
264
+ staveNote ( { keys : [ 'f/4' ] , duration : 'q' } )
265
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . BELOW ) , 0 )
266
+ . addModifier ( new Articulation ( 'articTenutoBelow' ) , 0 )
267
+ . addModifier ( new Articulation ( 'fermataVeryShortBelow' ) , 0 ) ,
268
+ staveNote ( { keys : [ 'g/4' ] , duration : 'q' , stem_direction : Stem . DOWN } )
269
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . BELOW ) , 0 )
270
+ . addModifier ( new Articulation ( 'articTenutoBelow' ) , 0 )
271
+ . addModifier ( new Articulation ( 'fermataVeryLongBelow' ) , 0 ) ,
272
+ staveNote ( { keys : [ 'c/5' ] , duration : 'q' } )
273
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . BELOW ) . setBetweenLines ( ) , 0 )
274
+ . addModifier ( new Articulation ( 'articTenutoBelow' ) . setBetweenLines ( ) , 0 )
275
+ . addModifier ( new Articulation ( 'fermataBelow' ) , 0 ) ,
276
+ staveNote ( { keys : [ 'a/5' ] , duration : 'q' , stem_direction : Stem . DOWN } )
277
+ . addModifier ( new Articulation ( 'fermataAbove' ) , 0 )
278
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . ABOVE ) , 0 )
279
+ . addModifier ( new Articulation ( 'articTenutoAbove' ) , 0 ) ,
280
+ staveNote ( { keys : [ 'f/5' ] , duration : 'q' } )
281
+ . addModifier ( new Articulation ( 'fermataShortAbove' ) , 0 )
282
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . ABOVE ) , 0 )
283
+ . addModifier ( new Articulation ( 'articTenutoAbove' ) , 0 ) ,
284
+ staveNote ( { keys : [ 'b/4' ] , duration : 'q' , stem_direction : Stem . DOWN } )
285
+ . addModifier ( new Articulation ( 'fermataLongAbove' ) , 0 )
286
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . ABOVE ) , 0 )
287
+ . addModifier ( new Articulation ( 'articTenutoAbove' ) , 0 ) ,
288
+ staveNote ( { keys : [ 'a/5' ] , duration : 'q' , stem_direction : Stem . DOWN } )
289
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . ABOVE ) , 0 )
290
+ . addModifier ( new Articulation ( 'articTenutoAbove' ) , 0 )
291
+ . addModifier ( new Articulation ( 'fermataVeryShortAbove' ) , 0 ) ,
292
+ staveNote ( { keys : [ 'f/5' ] , duration : 'q' } )
293
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . ABOVE ) , 0 )
294
+ . addModifier ( new Articulation ( 'articTenutoAbove' ) , 0 )
295
+ . addModifier ( new Articulation ( 'fermataVeryLongAbove' ) , 0 ) ,
296
+ staveNote ( { keys : [ 'b/4' ] , duration : 'q' , stem_direction : Stem . DOWN } )
297
+ . addModifier ( new Articulation ( 'augmentationDot' ) . setPosition ( ModifierPosition . ABOVE ) . setBetweenLines ( ) , 0 )
298
+ . addModifier ( new Articulation ( 'articTenutoAbove' ) . setBetweenLines ( ) , 0 )
299
+ . addModifier ( new Articulation ( 'fermataAbove' ) , 0 ) ,
300
+ ] ;
301
+
302
+ Formatter . FormatAndDraw ( ctx , stave , notes ) ;
303
+ ok ( true , ' Annotation Placement (Glyph codes)' ) ;
304
+ }
305
+
244
306
function drawArticulations2 ( options : TestOptions ) : void {
245
307
expect ( 0 ) ;
246
308
const scale = 0.8 ;
0 commit comments