-
Notifications
You must be signed in to change notification settings - Fork 35
/
changelog.txt
916 lines (774 loc) · 41.2 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
GUIDO Engine history
----------------------------------------------------------------
version 1.7.7
- introduce special system variables at gmn level to control engine settings
- support for line break ('\n') in text elements
- add new 'hidden' parameter to \meter
- support for guitar tablatures
- add new 'TAB' clef
- add new 'TAB' style to \staffFormat
- add new note style for tablatures
- fix crash bug with repeat begin
- fix issue #168: Slur Collision when the slur spams more than one system
- fix issue #170: Dots not drawn in Tuplets
- fix issue #171: Incorrect beam dash direction
- fix issue #169: Double flat is rendered as four if repeated on a 2nd voice
- fix issue #164: Conflicting notes on a multi voices staff
- fix occasional incorrect dots placement in repeatEnd (depending on context)
- fix issue #173: Cross Staff Grace Notes rendering issue with Beaming
- fix issue #174: Octavia on cross-staff can lead to destructor crash + incorrect rendering
----------------------------------------------------------------
version 1.7.6
- fix crash bug related to pageFormat (issue #159)
- new \auto tag parameter: resolveMultiVoiceCollisions intended to multi-voices note collisions (issue #158)
- fix incorrect font format (issue #157)
- fix incorrect beaming (issue #161)
- fix incorrect beaming (issue #136)
- fix incorrect beaming (issue #58)
- fix incorrect beaming (issue #154)
- fix incorrect beaming (issue #88)
- fix incorrect beaming (issue #137)
----------------------------------------------------------------
version 1.7.5
- extends guido font version 3.92 with inverted turn (with a bar)
- add invertedb type to \turn
----------------------------------------------------------------
version 1.7.4
- fix multiple articulations on chords (issue #151)
----------------------------------------------------------------
version 1.7.3
- fix extra accidental on multi-voice chord (issue #147)
- fix incorrect beaming with empty (issue #146)
- fix accidental extra space in chords (issue #145)
----------------------------------------------------------------
version 1.7.2
- octava add support for dx
- improve \mark spacing
- fix incorrect octava rendering (issue #134)
- fix ledger line width with chords and heads reversed (issue #135)
- fix incorrect accidental rendering with chords (issue #144 and #81)
- fix fontalign state after text drawing
----------------------------------------------------------------
version 1.7.1
- add 'hidden' attribute to \octava
- fix incorrect volta placement
- fix incorrect repeatEnd length with non 5 lines staves
----------------------------------------------------------------
version 1.7.0
- introduce variables
- support single quote strings
known issues:
- variables at the end of a range must be followed by a space (preceding the closing ')')
- variables used as note name followed by note attributes must be followed by a space
----------------------------------------------------------------
version 1.6.9
- new \mrest tag intended to multi measures rests
- new bar tag parameter: measNum: set measure number sequence
- new bar tag parameter: hidden: a boolean to hide the bar and prevent measure num to move
- VGDevice extension to support ellipses
- implement circle with marks
- new interface to change piano roll voices color, based on html names
- fix infinite loop issue in the context of small page width
- fix issue with meter position and staff size
----------------------------------------------------------------
version 1.6.8
- fingering text supports comma-eparated strings, which are rendered vertically stacked
- new "wavy" parameter tag for trills
- new \bow tag
- Guido font extension - version 3.9 - fp glyph
- Guido font extension - version 3.8 - bow up / down glyphs
- fix svg export issue with '&' character
- partial fix for incorrect slurs (issue #90)
- improve articulations placement
- autoHideTiedAccidentals global setting is now 'on' by default
- fix incorrect slur position for beamed chords (issue #100)
- fix incorrect tuplets on chords (issue #103)
- fix incorrect tremolo on chords preceded by a grace note (issue #108)
- fix incorrect incorrect slur position (issue #94)
- fix missing clef and signatures due to staff tag (part of issue #96)
+ known issue: incorrect system map for examples/beethoven.gmn
----------------------------------------------------------------
version 1.6.7
- \accel and \rit tags revised: support now format strings (as \tempo do)
- new \footer tag
- tempo support text parameters (issue #23)
- new global setting (\auto) to hide accidentals on tied notes (issue #78)
- correctly handle harmony string in harmony tag
- add position attribute to harmony tag
- add harmonyPos attribute to auto tag
- add new GuidoGetTempoList API
- add new GuidoGR2SVGColored API
- update wasm bindings
- add 'autopos' attribute to \intens
- add 'autoIntensPos' and 'intensAutoPos' attributes to \set and \auto global voice settings
- key supports a 'free' parameter, the "free=..." value is becoming obsolete
- fix stem length issue on last note when beaming reverse directions
- fix incorrect stem direction with cross staff chord
- fix staff lines count limitation + various layout issues with bars
- fix missing initialisation in static Times font
- fix crash bug with special tempo form
- fix crash bug with tremolo and accidentals
- fix incorrect arpeggio position when embedded in text tag
- fix incorrect beaming with chords spanning different staves
- fix incorrect slur position with different staves
- fix incorrect tempo position (stacked on the beginning of the staff)
- fix incorrect flag position with multi staves chords
- fix crash bug with nested beams (issue #86)
- fix incorrect last bar numbering (issue #25)
----------------------------------------------------------------
version 1.6.6
- new pedalOn and pedalOff tags
- intens tag: add text before and after attributes
- fingering tag: add position attribute, add global settings
- add -viewport option to guido2svg
- new \arpeggio tag
- new GuidoGetMetersAt API
- fix slur rendering with one grace note and a regular note
- fix slur collision with chords
- fix incorrect cresc. on single chord
- fix incorrect articulations position in case of enforced beaming
- fix incorrect text position for marks
- fix \intens bounding box
----------------------------------------------------------------
version 1.6.5
- fix noteFormat issue within chords (issue #17)
- dm parameter removed from \cresc and \decresc tags (redundant with \i)
- fix ignored dx parameter for \systemFormat tag
- fix inverted dy for dynamics (\cresc, \decresc)
- ornaments syntax change (affects \trill, \mordent, \turn): they don't use a chord for
specification any more, but can be applied to (real) chord. Tag parameters have been redesigned.
- slurs: dx[12] and dy[12] are now taken into account when curve direction (up | down) is set,
dx and dy are now applied as offsets to dx1, dx2 and dy1, dy2
-----------------------------
version 1.6.4
- new staff distance parameter for fixed stave spacing feature (\staffFormat<distance>)
- new GuidoShowElement API
- the \instr tag supports font attributes (font, size, format...) and auto position
using the autopos attribute or using the \auto or \set tag
- new autoInstrPos attribute for the \set tag
- fix incorrect tempo position at line break
- fix incorrect barline between a grace note and note
- crash bug fixed: may occur with \newLine tag followed by a \meter tag
- new mapping behaviour:
- if a rest starts a bar, GuidoGetStaffMap extends its mapping box to the left barline (to keep
old behaviour, use GuidoGetStaffMapV1)
- if all bars at a given date, over all staves, start with a rest, GuidoGetSystemMap extends the
first mapping box of the measure to the left barline (to keep old behaviour, use GuidoGetSystemMapV1)
- new \harmony tag
- SVG output change: tags are not using the short form anymore (e.g. <line ... /> is now <line ...></line>)
- grace notes are included in the previous event mapping area
- supports complex meters with different units
- strategy changed for key change: naturals are hidden by default when the key increases or decreases
in the same direction (flats or sharps). This behavior can always be overridden using the 'hideNaturals' tag parameter.
- svg device font colors management changed in order to avoid setting the color when no color is specified on gmn side.
- fix svg export viewBox size with piano roll
- fix slope issue with slurs
- new autopos attribute for dynamics (\cresc and \dim)
- fix newline issue with crescendo and diminuendo
- fix beaming issue with trills
- whole measure rests management (ignored when the meter is not set):
rest appearance is forced to semibreve
fix rest centering with end bar, double bar and repeat bars
- support for \clef<"c0">
- fix grace notes beaming issue: regular beaming ignores graces notes
they may be beamed using a dedicated \beam tag
- fix native graphic device issues
- new GuidoGetNotesDensity API. The notes density is computed on the x axis only.
It represents the ratio between the space occupied by the notes over each measure of each staff.
The maximum density is retained over a single line.
- new feature to check and solve lyrics collisions, available using an extension of GuidoLayoutSettings.
Note that solving collisions modifies the internal AR representation but changes are reverted when
no check is required.
- new repeat attribute for trills
- new autoLyricsPos attribute for the \set tag
- fix automatic y position for lyrics
----------------------------------------------------------------
2017-01-03 version 1.6.3
- accidentals collision detection improved,
it comes with a change in handling dx in \acc tag: it is now applied to the solved collision
- fix a bug with \space tag at the beginning of a slice (e.g. after a bar): space was ignored
- strategy improved for creating natural keys: when the key signature increases the current key
no natural key is created unless the 'hideNaturals' tag parameter is set.
- key layout improved : decreases right space after a natural key
- fix dispNote issue in tuplets when value is /32 or /64
- octava tag: draw extensions lines
- new autopos attribute for lyrics: when 'on', the lyrics are placed below the bottom of
the bounding box that includes all the notes of the staff.
- fix a bug with incorrect placement of position tags in multi-voices scores with \staff tags
- fix appearance issue with tuplets (dispNote attribute) and durations that normally
required to be splitted. Support of dispNote for rests.
- various issues with clefs corrected (duplicate clefs, clef - meter inversion)
- system style for bar format is now supported by repeat bars
- new style "none" for \acc tag, intended to avoid the second accidental in case of tied notes
- articulations support a position parameter with "above" or "below" values
- default placement of marcato change to above
- chords: better support of articulations tags
- slurs redesigned
- autoMeasuresNum attribute of the \meter tag supports "page" value
- new GuidoGetMeter API
- new 'enclosure' parameter for \mark tag (see sample gmn files)
----------------------------------------------------------------
version 1.6.2
- incorrect beaming corrected:
a beam could sometimes cross a beat,
incorrect beam start corrected for tied notes starting off beat
- bug in Midi export corrected (velocity was always 0)
- crash bug corrected with meter<"0">, was due to new beaming strategy
----------------------------------------------------------------
version 1.6.1
- beamed half notes support arbitrary 'empty' durations
- new \beamsFull tag introduced to allow rests in auto beaming
----------------------------------------------------------------
version 1.6.0
- beanming half notes is allowed
- auto beaming strategy improved
- bug in mapping corrected: rests generated by split could be ignored
- new reduced simplified proportional representation
- added GuidoStream2GuidoString in GUIDOParse which return clean Gmn code from a guido stream
- empty guidostream are now translated in guido code as an empty score: "[]"
- new GUIDOScoreMap API : GuidoGetRAWStaffMap, GuidoGetRAWVoiceMap and GuidoGetRAWSystemMap which return mapping without any treatment (RAW)
- crash bug corrected (with regression-tests/ActorPreludeSample.gmn)
----------------------------------------------------------------
version 1.5.9
- crash bug corrected with piano roll colors management
----------------------------------------------------------------
version 1.5.8
- new function GuidoPianoRollRemoveColorToVoice for piano roll to remove color to voice.
----------------------------------------------------------------
2015-03-23 version 1.5.7
- New param 'dispNote' in \tuplet-tag, allowing to force notes appearance:
- possible values : "/1", "/2", "/4", "/8", "/16")
- doesn't work for chord in tuplet
- integration of GuidoLayoutSettings and GuidoPageFormat in classes. Global or static variables for this data structures are removed.
- bug fixes :
- cairo device : problem on fill color.
- GDI device : remove unused character array mapping in GDI font class.
- Tuplets : correction on automatic brackets direction
- Compilation with visual studio 2010 and cmake > 2.8. The name of visual studio in cmake has changed, adding new condition in cmakelist.
----------------------------------------------------------------
2014-12-09 version 1.5.6
- Proportional rendering available (enabled with GuidoLayoutSettings parameters)
- \special-tag:
- "space" param suppressed (was useless)
- "scale" param changed for "size"
- "color" param added
- \tuplet-tag:
- "position" param added
- "dx" param added
- bug fixes:
- \staffFormat-tag + mapping:
- staff mapping height is not null anymore when we set \staffFormat-tag "style" param to "0-line or "1-line"
- line thickness is now taken in account in staff mapping
- some SVG export bugs fixed
- fix for a mapping bug in some particular cases
- fix for a graphic bug which appeared when a non-standard notehead style was set with \noteFormat-tag
- \units-tag: now, unit is properly reset when we remove \units-tag
- intensity symbol "ffff" corrected in font Guido2
----------------------------------------------------------------
2014-11-7 version 1.5.5
- Fraction is now using 'long long' instead 'int' for numerator and denominator (negative dates were found with complex non-quantified scores, due to overflow)
- new timing API for performance measurements (GuidoGetParsingTime, GuidoGetAR2GRTime, GuidoGetOnDrawTime)
- performances improvement:
- during AR2GR procedure, principally for scores containing lots of chords (time ratio until 3)
- during drawing procedure, principally for very big scores (time ratio until 3)
- color param added for tags: \tremolo, \dotFormat, \accidental, \accolade, \bar, \doubleBar, \endBar, \repeatBegin, \repeatEnd, \daCapo, \daCapoAlFine, \dalSegno, \dalSegnoAlFine, \fine, \breathMark, \key, \octava, \staffFormat, \tempo, \tie, \tuplet, \volta
- size param added for tags: \accolade, \bar
- dx param added for tags: \bar
- dy param added for tags: \accolade, \bar
- \volta-tag :
- display bug fixed
- useless param 'pass' removed
- 'm' param changed to 'mark'
- mapping bug fixed on \cluster-tag
----------------------------------------------------------------
2014-10-22 version 1.5.4
- new piano roll API available :
- piano roll can be generated from an gmn file, an AR, etc. and exported to any classic file format
- two piano roll types available : classic (notes are horizontal) and trajectory (notes are graphically linked to the following note)
- new 'dy' attribute for the \staffFormat-tag to insert an vertical offset
- beams can be applied to grace notes
- new 'autoMeasuresNum' attribute for the \meter-tag to display or not measures number
- \bar-tag :
- new 'displayMeasNum' attribute to choose for each bar to display or not measure number
- new 'numDx' / 'numDy' attribute to adjust measure number position
- huge performances improvement (to quantify : time ratio until 60 for very big scores and 8 for standard 2-pages scores)
- bugs correction
- some SVG export bug fixed
- conflicts with note durations in the trill solved
- problems on dotted trills / cluster
- bad vertical position of the flags of very low/high notes or chord
- size param of \meter tag working properly now
- problems on small lineThickness values in \staffFormat-tag
- various other bugs fixed
- crashes correction :
- when a \composer, \fingering, \label, \mark or \title tag was set under range-tag form
- when a trill composed of a chord containing several different durations was separated into two tied trills
- various other crashes avoided
- new tremolo tag
- grace notes :
- they have slightly bigger spring to avoid being too close to the next note
- the beaming is now possible
----------------------------------------------------------------
version 1.5.3
- experimental proportional notation based on AR or MIDI representation:
new API: GuidoAR2RProportional, GuidoMIDI2RProportional
new tool: guido2rproportional, midi2rproportional
- support for piano roll representation based on AR or MIDI representation:
new API: GuidoAR2PRoll, GuidoMIDI2PRoll
new tool: guido2proll, midi2proll
- bug in MIDI export corrected: incorrect handling of successive tied similar notes
- infinite loop in trill computation corrected
- accidental spacing changed : a bit more space is inserted between the accidental and the note head
to conform more to engraving practices
- incorrect coloring of trills (forced to black even when no color specified)
- bug corrected with the mappings (was introduced with comparison operator on time segments)
- improves graphic rendering of 'exotic' durations (e.g. 1/21)
----------------------------------------------------------------
2013-09-13 version 1.5.2
- improvement of \ritardando-tag and \accelerando-tag: now a dotted line is drawn and it is possible to indicate the tempo of beginning
and end (also possible to change the text style and color)
- improvement of \accol-tag : the accolade can change its style and have a range: now it can envelop the entire system or a part of it
- improvement of \meter-tag (now sums in numerator are allowed)
- new 'position' attribute for the \marcato tag
- new reentrant parser (transparent for users, not for developers)
- new stream parsing mechanism : from now, it's possible to parse a stream as it goes along, and to get intermediate AR's states
- option "Resize page to music" added in GuidoEditor settings and in Guido2Image
- \pageFormat-tag modified : from now, when horizontal / vertical margins sum is superior than width / height, they are set to 0
- new 'lineThickness' attribute for the \staffFormat-tag
- new attributes for the \tuplet-tag: 'lineThickness', 'textSize', 'bold'
- new attributes for the \cresc-tag and \decresc-tag: now it's fully customizable
- bugs correction
- on windows, sometimes Guido crashed when user left-clicked on the score
- dotted events (clusters, chords (vertical dot alignment and collision avoidance) and rests)
- meter size set by user
- now, bars (simple bar, repeatBegin, repeatEnd, double bar, finish bar) adapt their size to staff lines number and to staff size
- some bugs fixed about SVG export
- various bugs fixed and crashes avoided
----------------------------------------------------------------
2013-04-05 version 1.5.1
- new GuidoGetSystemCount API
- bug in midi export corrected: chord notes were ignored
- trill line added : stops at the next element, can be drawn over several staves, systems and pages (if the notes are tied).
- implementation of new notehead types
- implementation of brackets around noteheads
- bug correction : stem length of high chords
- implementation of glissando
- implementation of cluster
- bug correction: incorrect staff mapping was generated for staves with a single slice
- implementation of \staffOff- \staffOn- tags
- implementation of \symbol-tag
- implementation of \fBeam tag (feathered beaming)
- modifications on the beams : change size with the \noteFormat changes, beams can be included in others, bugs solved...
---------------------------------------------------------------
2012-04-05 version 1.5.0
- rendering bug corrected: empty output whith empty \title tag on windows
- bug with incorrect clef displayed in a very specific context (auto clef,
multi-voice staff, new line forced)
----------------------------------------------------------------
2012-04-05 version 1.4.9
- bug in hex colors setting (could be not taken into account)
- crash bug catched (due to syntax error in chords duration modification)
- bug corrected: multiple repeatEnd without repeatBegin
- bug corrected with chords mapping (incorrect event date and duration)
----------------------------------------------------------------
2012-02-21 version 1.4.8
- new juce device and viewer
- tools changes:
guido2svg options change
guido2image options change
known issues:
- incorrect clef displayed in a very specific case: a multi voice staff with
no clef indication, with one voice dispatched to "g" clef and the other dispatched
to "f" clef: the second line may display an incorrect clef when forced with a
\newline tag
----------------------------------------------------------------
version 1.4.7
- supports html colors by name (extended colors keywords)
warning: previous named color (red, green, blue and yellow) values was 200
the corresponding html color value is 255
- new GuidoCountVoices API
- support for guido svg font added to SVG device
- GuidoSVGExport API change to for optional guido svg font support
- new mapping functions providing adjusted mappings for voices, staves and systems
- micro tonal support in free keys
- corrects crash bug with dynamic editing (supports incomplete tag params list)
- corrects incorrect accidentals rendering in multi voice staffs
----------------------------------------------------------------
2011-11-25 version 1.4.6
- memory leaks corrected
- corrects accidentals management with system bar and implicit bars
Important note to developers:
up to now, it was possible to release the ARHandler and GRHandler
(using GuidoFreeAR and GuidoFreeGR) in any order but that was a side
effect of memory leaks. Now, you should release them in the reverse
order of allocation (i.e. call GuidoFreeGR first and next GuidoFreeAR)
----------------------------------------------------------------
version 1.4.5 (not officialy released)
- guido font modified - new version is 3.3 (required for correct whole rest rendering)
- MIDI file export capabilities and new GuidoAR2MIDIFile API
- incorrect rendering of \alter in chords corrected
- potential crash with \acc incorrect spec corrected
- potential crash bug with \text tag corrected
- change in accidental management to cover octave changes
and to comply to the practice described in "Behind Bars" E. Gould p. 79
- corrects a bug in tuplet display (e.g. strange vertical bar with values like [_/28 c2/16])
- corrects a scaling bug in tempo rendering (musical form was not visible)
- duration spec supports absolute time using 'ms' form (e.g. e1*1500ms).
The absolute time is converted to an equivalent music time assuming that a quarter note is 1000mls.
- new GuidoGetVersionStr API
- bug in xxxBeg:id xxxEnd:id parsing corrected: id was always null leading to an incorrect rendering
- new embedded svg device and new GuidoSVGExport API
----------------------------------------------------------------
2011-07-13 version 1.4.4
- factory API revised
- bench tools included but not compiled by default (actually in progress)
- GDeviceOSX change: defaults now to Quartz coordinates space unless _USE_QD_COORDINATES_
is defined. Embedded Quartz device uses QD coordinates.
- clef change resets current accidentals (as described by Gould in "Behind bars" p.78)
- key signature lost after clef change corrected (patch by Yu Fan)
- minimum distance between staves is back to 'uncorrected' version
the change introduced by version 1.4.1 results in incorrect mappings
----------------------------------------------------------------
2011-04-21 version 1.4.3
- \alter tag support for microtonal accidentals
- \acc tag: support for style="cautionary"
- internal restructuration (nvstring almost replaced by std::string)
----------------------------------------------------------------
2011-03-24 version 1.4.2
- slices mapping improved to become consistent along each system
- crash bug corrected: occured whith \noteFormat opened range
----------------------------------------------------------------
2011-02-11 version 1.4.1
- minimum distance between staves corrected
- correct mapping when optimal page fill is off
----------------------------------------------------------------
2010-10-06 version 1.4.0
- bug in system mapping: system dates correction
- bug in page time position corrected (GRPage)
- GDeviceWin32GDIPlus included in the library
pending issues: incorrect mapping when optimum page fill is off
----------------------------------------------------------------
version 1.3.9
- color scheme move outside rendering (apart when forced)
- guido font extended (whole rest, 1/64 note flags, perc clef, double bar)
- dots management corrected and extended
- note flags support up to 1/64
- parser change to support up to 3 dots
- faster score drawing for Qt
- beaming improved and corrected for stems direction changes and beaming across multiple staves
- percussion clef support (\clef<"perc">)
- barlines position adjusted to staff lines count
- \doubleBar implemented
- GuidoQtViewer becomes GuidoEditor, allowing code visualization and edition.
- \meter position corrected according to staff lines count
- "parse error line number" bug fixed.
- new API rolled time to unrolled time mapping support
- old Guido API and code removed (now unsupported)
- old mapping API and code removed and replaced with a new one
- voice number added to ARMusicalObject (for mapping purpose)
----------------------------------------------------------------
2009-08-25 (version 1.3.8) Samuel Brochot
- articulations position corrected
- new articulations added : short/long fermatas, 4 different pizzicati,
harmonics, staccatissimo
- ornaments implemention : mordents, turn, trill
see gmn-examples/new-tags-v1.38 for gmn code examples
----------------------------------------------------------------
2009-03-04 version 1.3.7
- bug in \staff management corrected (ARStaff destructor)
- bug in \meter without params corrected (failure not implemented)
- bug in float parsing corrected (introduced with Qt support)
----------------------------------------------------------------
2009-01-08 version 1.3.6
- bug in volta management corrected
----------------------------------------------------------------
2008-09-12 version 1.3.5
- parsed files incorrectly closed
- library GuidoGetVersionNums corrected (incorrect result)
----------------------------------------------------------------
2008-06-17 version 1.3.4
- parser rewritten (no syntax changes)
not supported any more:
empty tag parameters list: \tag<>
unknown note name: i j ... z
unknown tag name
incorrect sequence specification: { [ c d e ] ] } or { [ [ c d e ] }
absolute notes duration: was previously parsed but not handled
behavior change:
escape char in strings: '\' was used to encode " -> \" but now stripped
- new GuidoParseString API
- incorrect slice list corrected with repeat sections.
----------------------------------------------------------------
2007-10-15 (version 1.3.3.4) Yannick Chapuis
- slur bug in debug mode corrected (kind of memory leak).
- new antialiased device available from VGSystem (mainly for Win32)
- finalization propagation when SystemDistribution is kNeverDistrib (DF)
----------------------------------------------------------------
2007-09-17 (version 1.3.3.3) Yannick Chapuis
- ExportToFile method removed from VGDevice API - external object
created instead.
----------------------------------------------------------------
2007-09 (version 1.3.3.2) Dominique Fober
- memory leaks corrections
----------------------------------------------------------------
2007-08 (version 1.3.3.1) Dominique Fober
- VGDevice fill color management change
----------------------------------------------------------------
2005 to 2007 MISSING LOGS (version should have been incremented)
- new graphical devices system (VGDevice/VGSystem/VGFont) included
in library to replace GDevice obsolete management - new API
(targets: Win32, OSX, OpenGL, Linux/Gtk, PS. Wx is obsolete)
- VGDevice Invalidate method added.
----------------------------------------------------------------
2004-10 (version 1.3.3) Dominique Fober
- default native graphic device included
- incorrect bb (double flat) symbol corrected (MacOS X only)
- incorrect ff (double forte) symbol corrected (MacOS X only)
- incorrect \noteFormat<style="x"> symbol corrected (MacOS X only)
- \noteFormat<style="noHeads"> layout corrected
- bug corrected in incorrect tag end handling (crashed with some finale exported guido
files with unreferenced end tags)
----------------------------------------------------------------
2004-09-15 (version 1.3.2) Dominique Fober
- Introduction of volta.
- Introductions of 'jump' tags ie:
\daCapo
\daCapoAlFine
\dalSegno
\dalSegnoAlFine
\daCoda
\fine
- \coda and \segno improvements: support marking strings
- general improvements of bounding boxes
- debug of \tempo marking string support
----------------------------------------------------------------
2004-08 (version 1.3.1) Dominique Fober & Jerome Berthet
* Features, bug fixes:
- Guido Engine:
- repeat bars bug fixes.
- Introduction of volta.
----------------------------------------------------------------
2004-06 (version 1.3.0) Dominique Fober & Jerome Berthet
* Features, bug fixes:
- Guido Engine:
- Text aligmenent bug fixes.
- Introduction of Coda and Segno.
- The first system of a page does not draw above top margin.
- New tempo tag: splitted graphical and musical informations.
- Windows NoteViewer:
- Fixed the adjust page-size bug in graphic export
- MacOS GuidoViewer:
- Bitmap export (Jpeg, png...)
* Code:
- Brand new Guido Score Engine API
- Time to Graphic mapping: GUIDOScoreMap
- Updated Mac OSX, wxWidgets and Win32 applications
- Improved "bounding boxes" code.
----------------------------------------------------------------
2004-04 (version: 1.2.2) Jerome Berthet
* Features, bug fixes:
- Guido Engine:
- Ties and slurs: Automatic positioning.
- Articulations (staccato, accent...): Better automatic positionning
- Tuplets: Automatic positioning.
- Introduction of breath-marks.
- More descriptive Guido Warnings messages.
- Pre-implementation of the \accol tag. Guido can now display the
"straightBrace" accolade.
- Text positionning ( \text tag ) implementation closer to the Guido specifications.
- Introduction of Longa notes.
- Introduction of diamond heads.
- Octava clefs and double treble clefs.
- Fixed an alignement problem for beams, during Gif export.
- Fixed the intens "ff" and "pp" bugs.
- Improved overall speed.
- Windows NoteViewer:
- Fixed a bug that could cause crash after parse error.
- Compatibility with Windows 95 / 98 restored. (to test)
- Can export Gif files up to 3200x3200 pixels.
- Improved Gmn text edit dialog.
- Fixed a bug in Gif export
- MacOS GuidoViewer:
- Added alert boxes, can display parse error lines.
- Fixed a text alignement bug.
* Code
- New API entry point: GuidoGetParseErrorLine(). Allows applications
to know at which line of a guido gmn file a parse error has occured.
- Sources compile faster.
- Removed a few hundred dynamic_casts.
- nvstring class optimization.
- fraction class optimization.
----------------------------------------------------------------
2004-03 (version: 1.2.1) Jerome Berthet
- Color support for rests.
- Dotted rests.
- Removed a possible accent collision.
----------------------------------------------------------------
2004-01 Dev branch merged to main branch
----------------------------------------------------------------
2004-01 Jerome Berthet
- GuidoLib changes:
- Beaming adjustement on stems seems to be better, but is still not perfect.
- Fixed the beaming direction bug.
- New Guido Engine entry points, renamed a few others.
- Reference counter mechanism for AR structures, so that several GR structure can
be linked to the same AR. More flexibility for AR and GR structures manipulation.
See GUIDOEngine.h for more details.
- Moved to version 1.2
- Some housekeeping in the GuidoToGif lib and app, gif export works better.
- Improved Mac Viewer:
- Scrollbars, resizing, zooming.
- Score Printing,
- Load the musical true-type font from the application bundle.
- Moved to version 0.11
- NoteViewer (win32)
-Updated to match the changes related to zoom and mapping in
the GuidoLib. It has brand new scrollbars.
- The PostScript export now works. It looks for the file "guido2_font.eps"
to use as a font file embeded in exported eps files.
- Try to open the "guido2.ttf" font file from the application directory
( it is no longer stored as a resource )
- Moved to version 0.91
----------------------------------------------------------------
2003-11-26 Jerome Berthet & Stephane Letz
Implement tempo indications. They can be of 3 types :
- Textual only like \tempo<"Allegro"> . It will be displayed as a string.
- BPM like \tempo<"Allegro", "1/4=120">. The string is displayed followed
by a note and the bpm value.
- Note equivalence like \tempo<"Allegro", "1/4=1/8">.
The string is displayed followed by a note = another note.
Modified files : ARTempo.h, cpp, GRTempo.h,cpp
----------------------------------------------------------------
2003-11-07 Jerome Berthet
- MacOS-X multi-documents application that renders gmn files using Quartz,
without using the powerplant framework nor wxWindows.
- The wxWindows application "wxGuidoViewer", when compiled on Windows, now uses
the native GDeviceWin32 graphic device. The wxWindows GDeviceWx is unable to
scale characters (i.e: the accolade), so the score rendering can be somewhat ugly.
- Introduced new VGDevices methods: DrawSymbol() and GetSymbolExtent(), that take
a (int symbolID) as a parameter, instead of (const char * s, int inCharCount)
strings. They are now free to map this symbolID to they want: a function call, a glyph
from a musical font, a bitmap...
- GuidoLib do not use PrintAt() and Text-related functions anymore to display
musical glyphs, it uses the new "Symbol" functions.
- Improved graphic devices classes. Common behavior and members are now
shared among all devices classes via their VGDevice base class.
- Removed most of (all?) hard-coded Scriabin musical font character constants
from GuidoLib classes. Now, each musical symbol is defined by a MusicalSymbolID
constant, which no longer has to match a glyph character code in a given musical Font.
Those new constants are stored in MusicalSymbols.h
- There is now 3 different methods for GRStaff to draw the staff lines:
- The original one, that repeats drawing the staff char as many times
as needed to complete the staff.
- One that only draws one char per staff, after an appropriate scale
of the graphic context.
- One that simply draws lines, with vector graphics functions.
- A new GuidoFactory API. It allows to build an abstract representation (AR)
manually (that is, without the parser). I've split and added several functions
in GUIDOEngine.cpp, (I also did some code factorization), so it's now simpler and
easier to use and to understand.
- Every color attributes inside the GuidoLib are now coded as RGBA, where A is
the transparency (alpha) component. So it's possible, in theory, to draw
semi-transparent or invisible symbols on the score. This feature is not (yet?)
a part of the Guido Music Notation language specifications, so the behavior of
Guido parsers is still undefined if they encounter a RGBA tag, instead of the
traditional RGB one.
- Almost everything is ready, inside the Guido sources, to move coordinates
variables from long to float. Deep-internal calculations are already processed
using float values. Other coordinate-related parts of Guido now use the
"GCoord" type, which is currently defined as a long. It will become a
float when we decide to move everything to floats.
- Sources are now cleaner and more readable. I've also added Doxygen-style comments,
removed type conversions, removed useless #includes, replaced divisions by
multiplications equivalents, renamed class members variables with a leading 'm',
replaced a few int by bool, removed too heavy inlines. The library compiles faster.
- The library no longer draws the white background of pages. Client applications
must draws their own background.
- New GUIDOEngine functions: GuidoUpdateGRMusic(), GuidoUpdateAllGRMusics()
- Renamed GuidoParse3() into GuidoParseFileForAR()
- Renamed GuidoGetNumPages() into GuidoPageCount()
- Renamed GuidoGetPixelSize() into GuidoConvertToDeviceUnits()
- Renamed GuidoGetVirtualSize() into GuidoConvertToVirtualUnits()
----------------------------------------------------------------
2003-07-15 Juergen Kilian
- added unicode support for .gmn files created by the Sibelius2GUIDO
Plugin into guido.cpp. Such a unicode file will be converted into
std. text file before parsing the content.
----------------------------------------------------------------
2003-05-09 Juergen Kilian
- added macos/applications/Guido2Midi/Guido2Midi.pbproj for
a macos gmn2midi application
- added linux/applications/Guido2Midi/makefile for
a linux gmn2midi application
- removed an ugly bug in Gmn2MidiParser.cpp::static short note2pcTable
- added Reload Menu Item to wxGuidoViewer
----------------------------------------------------------------
2003-05-05 Juergen Kilian
- parser didn't accept multiple tags inside chords
[ c \tieBegin d {d \tieEnd, \tieBegin e} e \tieEnd]
- updated parser_t.c and lexy.c
----------------------------------------------------------------
2003-03-19 Jerome Berthet
- I had many problems with characters encoding between mac, windows
and wxWindows. Currently, 10 music symbols are concerned (char
greater than 127). I've solved those problems with a dirty
hack: Mac-Quartz and Mac-wxWindows versions need a FontEncodingConverter,
that uses Apple APIs for character encoding conversion.
- Removed callstru file. Replaced by GuidoOnDrawDesc.
- MacOS X Quartz implementation of GDevice.
- wxWindows implementation of GDevice.
- std c++ console version of GuidoFeedback (GuidoFeedbackStd.h)
- Removed some unnecessary #include, fixed some warnings under gcc.
----------------------------------------------------------------
2003-03-11 Stephane Letz <[email protected]>
Doxygen based documentation of lib-score-engine abstract and graphic classes.
The Score_Engine_Doxyfile can be used to generate a documentation in HTML format.
Doxygen can be found here : http://www.stack.nl/~dimitri/doxygen/
----------------------------------------------------------------
2003-02-20 Jerome Berthet
- GuidoOnDraw() no more draws as many score pages as it can, but
only the one given by callstruct.page.
- Clients can specify the name of text and music fonts to use.
- Simpler GDevice coordinates system.
- wxWindows implementation.
----------------------------------------------------------------
2003-02-05 Jerome Berthet
- Removed all win32 dependencies. and most of non-portable stuff.
- Use of c++ standard headers, keywords and assert().
- Fixed some warnings on Metrowerks codewarrior compiler.
- The lib-score-engine now compiles on MacOS X.
----------------------------------------------------------------
2003-01-30 Jerome Berthet
- Definition of error codes constants. Many Guido APIs have
changed and now return those new error codes.
- New API: int GuidoInit( GuidoInitDesc * );
It must be called at least one time before the first call of
GuidoParse. Client applications can now provide a Graphic Device
object and a Feedback object to GuidoInit. The GuidoEngine
will then uses those objects for all Graphic-related and user-feedback
operations. GuidoInit returns an error code.
- Guido font is no more loaded dynamically in the system, because
this is a too platform-dependant feature. Clients applications
should now do it by themself, or ask the user to do it. This could
also be done by any GuidoLib "installers".
GuidoInit() returns an error code if the font could not be found.
- Windows-dependant code was moved from "GuidoEngine.cpp" to a new
file "GuidoMainWin32.cpp"
- A wxWindows implementation of "GDevice" is in progress. See
"GDeviceWx.cpp"
- Global variables "myvariable" have been renamed "gMyVariable", to
increase code lisibility.
----------------------------------------------------------------
2003-01-21 Stephane Letz <[email protected]>
The parser code has be cleanup up in the following way:
- library specific part of the guido.cpp file have been removed and moved
in new files in the corresponding libraries (GUIDOEngine and Guido2Midi).
The guido.cpp file should now contain only common code.
- new gd_imp_init and gd_imp_exit entry points have been added in the
guido.h file. Their purpose in to allow library implementation of the
parser API to have specific initialization and cleanup code.
gd_imp_init and gd_imp_exit functions are called in the parser global
gd_init and gd_exit entry points.
- new files GUIDOEngineParser.cpp (GUIDOEngine library) and
Gmn2MidiParser.cpp (Gmn2Midi library) have been added.
----------------------------------------------------------------