本文提出以 IEEE 1599 標準為基礎制訂一個開放式的自動作曲系統架構,並設計了 一套適用自動作曲需求的修正式 IEEE 1599 標準,以及記載音樂特徵、成果分析結果的 XML 文件大綱。本系統將目標確立、蒐集相關音樂、MusicXML 曲譜搜尋/轉換、特徵 擷取、自動作曲、成果分析、應用與評估等流程當中所產生出的所有描述資訊,存放於 原生式 XML 資料庫,以開放式協定提供存取供程式存取。
我們透過本系統架構,以做出有華語流行音樂及快樂情緒的音樂為範例,蒐集了三 首音樂之片段並分析其和弦、主旋律音高、主旋律音長的轉換機率,求得一階馬可夫鍊 作為自動作曲模型。成果分析則針對自動作曲音樂成果的音高與音長分析,透過觀察主 旋律的第 N 個音與第 N+1 個音計算相差之半音數,以得知旋律的級進與跳進現象,並 計算主旋律最高音出現的次數及位置,了解旋律的方向性及整體感。在音長方面則計算 主旋律的第 N 個音與第 N+1 個音計算相差之拍數,及所有重拍音的平均拍數,以了解 其節奏織度。所有成果分析的結果會以 XML 格式記載並標示於修正式 IEEE 1599 標準 的整合描述檔中。
本文所提出之架構能夠避免在音樂分析及自動作曲的流程中資料過多,而導致協同 研究開發上不清楚彼此之間有何種資料或統計資訊。透過修正式 IEEE 1599 標準使得每 一筆產生的資料均能夠確切的被定義與記載,所牽涉的異質資訊都能夠以具有其內涵意 義與結構化的的方式存入資料庫,以確保資料的一致性與完整性,更避免浪費資源重複 建置相同的資料。
.在未來,使用者或專家能夠針對自動作曲成果反饋意見,或是將其成果修改後再傳 回系統,以期能夠透過蒐集大量音樂統計資訊,探勘出尚未發掘對人類心理聽覺感知的 元素。本系統未來盼能夠提供對創作有興趣的一般人或是專業作曲家之用,創作出符合 音樂理論的作曲,提升電腦自動作曲品質,使其更臻完美。
參考文獻
[1] G. Papadopoulos and G. Wiggins, "AI methods for algorithmic composition: A survey, a critical view and future prospects," 1999, pp. 110-117.
[2] L. A. Hiller and L. A. Isaacson, "Experimental music," ed: McGraw-Hill Book Co New York, 1959.
[3] S. F. Chang, T. Sikora, and A. Purl, "Overview of the MPEG-7 standard," Circuits and Systems for Video Technology, IEEE Transactions on, vol. 11, pp. 688-695, 2001.
[4] T. Sikora, "The MPEG-7 Visual standard for content description-an overview," Circuits and Systems for Video Technology, IEEE Transactions on, vol. 11, pp. 696-702, 2001.
[5] A. T. Lindsay and J. Herre, "MPEG-7 and MPEG-7 audio-an overview,"
JOURNAL-AUDIO ENGINEERING SOCIETY, vol. 49, pp. 589-594, 2001.
[6] B. Manjunath, P. Salembier, and T. Sikora, Introduction to MPEG-7: multimedia content description interface vol. 1: John Wiley & Sons Inc, 2002.
[7] H. G. Kim, N. Moreau, and T. Sikora, MPEG-7 audio and beyond: Audio content indexing and retrieval: John Wiley & Sons Inc, 2005.
[8] G. HAUS, "Introduction to the New Standard IEEE 1599: XML Symbols and Layers for Music Encoding," in Proceddings of the IEEE CS International Comference: The use of symbols to represent music and multimedia objects, 2008.
[9] L. A. Ludovico, "Key concepts of the IEEE 1599 Standard," in Proceddings of the IEEE CS International Comference: The use of symbols to represent music and multimedia objects, 2008.
[10] D. Baggi and G. Haus, "IEEE 1599: Music encoding and interaction," Computer, vol. 42, pp. 84-87, 2009.
[11] "IEEE Recommended Practice for Defining a Commonly Acceptable Musical Application Using XML," in IEEE Standard 1599, ed, 2008.
[12] E. R. Hammer and M. S. Cole, Guided Listening: A Textbook for Music Appreciation:
Wm. C. Brown, 1992.
[13] J. O. Smith and S. A. Van Duyne, "Commuted piano synthesis," in Proceedings of the 1995 International Computer Music Conference, Banff, 1995, pp. 319-326.
[14] J. Chowning, "The synthesis of complex audio spectra by means of frequency modulation," J. Audio Eng. Soc, vol. 21, 1973.
[15] Y.-H. Chen and C.-F. Huang, "Sound Synthesis of the Pipa Based on Computed Timbre Analysis and Physical Modeling," Selected Topics in Signal Processing, IEEE Journal of, vol. 5, pp. 1170-1179, 2011.
[16] J. O. Smith III, "Physical modeling using digital waveguides," Computer Music Journal, pp. 74-91, 1992.
[17] S. A. Van Duyne and J. O. Smith, "Physical modeling with the 2-D digital waveguide mesh," in Proceedings of the International Computer Music Conference, 1993, pp.
40-40.
[18] T. D. Rossing, "Acoustics of percussion instruments: Recent progress," Acoustical Science and Technology, vol. 22, pp. 177-188, 2001.
[19] T. D. Rossing, D. S. Hampton, B. E. Richardson, H. J. Sathoff, and A. Lehr, "Vibrational modes of Chinese two-tone bells," The Journal of the Acoustical Society of America, vol. 83, p. 369, 1988.
[20] Y.-l. YAN, L.-d. KONG, K.-m. CHAI, and Z.-y. SHENG, "Study on the acoustic
characteristics of the ancient Chinese chime-bell [J]," College Physics, vol. 2, p. 017, 2004.
[21] W. Dajun, C. Jian, and W. Huijun, "The feature of the dual tones of Chinese music bells," Mechanics and Its Application, pp. 12-16, 2003.
[22] M. Karjalainen, V. Välimäki, and Z. Jánosy, "Towards high-quality sound synthesis of the guitar and string instruments," in Proceedings of the International Computer Music Conference, 1993, pp. 56-56.
[23] M. Palumbi and L. Seno, "Physical modeling by directly solving wave PDE," in Proceedings of the International Computer Music Conference (ICMC), 1999, pp.
325-328.
[24] G. P. Scavone, "Digital waveguide modeling of the non-linear excitation of single reed woodwind instruments," in Proc. Int. Computer Music Conference, 1995.
[25] M. Wertheimer, "Untersuchungen zur Lehre von der Gestalt. II," Psychological Research, vol. 4, pp. 301-350, 1923.
[26] D. Temperley, The cognition of basic musical structures: The MIT Press, 2001.
[27] H. Schenker, Der freie Satz, 1935.
[28] 申克 and 陈世宾, "自由作曲," ed: 北京: 人民音乐出版社, 1997.
[29] F. Lerdahl and R. Jackendoff, A generative theory of tonal music: The MIT Press, 1983.
[30] A. Alpern, "Techniques for algorithmic composition of music," Hampshire College, 1995.
[31] D. J. Grout and C. V. Palisca, A history of Western music: WW Norton & Company, Inc., 1996.
[32] A. Schoenberg, Style and Idea: Selected Writings: University of California Press, 1984.
[33] L. A. Hiller and L. M. Isaacson, Experimental music: Greenwood Press, 1979.
[34] D. Cope, Virtual music: computer synthesis of musical style: The MIT Press, 2004.
[35] D. Cope, M. J. Mayer, and S. C. University of California, Experiments in musical intelligence vol. 1: AR Editions Middleton, WI, 1996.
[36] 邱士銓, "Computer Music Composition by Discovered Music Patterns," Master, Department of Computer Science, National Chengchi University, 2005.
[37] K. Jones, "Compositional applications of stochastic processes," Computer Music Journal, pp. 45-61, 1981.
[38] C. Ames, "The Markov process as a compositional model: a survey and tutorial,"
Leonardo, pp. 175-187, 1989.
[39] W. Schulze and B. van der Merwe, "Music Generation with Markov Models,"
MultiMedia, IEEE, vol. 18, pp. 78-85, 2011.
[40] E. R. Miranda, Composing music with computers vol. 1: Focal Pr, 2001.
[41] K. Ebcioğlu, "An expert system for harmonizing four-part chorales," Computer Music Journal, vol. 12, pp. 43-51, 1988.
[42] M. J. Steedman, "A generative grammar for jazz chord sequences," Music Perception, pp. 52-77, 1984.
[43] M. Steedman, "The blues and the abstract truth: Music and mental models," Mental Models in Cognitive Science, pp. 305-318, 1996.
[44] M. J. Steedman, "Grammar, interpretation, and processing from the lexicon," in Lexical representation and process, 1989, pp. 463-504.
[45] D. Cope, "Computer modeling of musical intelligence in EMI," Computer Music Journal, pp. 69-83, 1992.
[46] G. Wiggins, G. Papadopoulos, S. Phon-Amnuaisuk, and A. Tuson, "Evolutionary methods for musical composition," DAI RESEARCH PAPER, 1998.
[47] P. M. Todd, "A connectionist approach to algorithmic composition," Computer Music Journal, vol. 13, pp. 27-43, 1989.
[48] M. C. Mozer, "Connectionist music composition based on melodic, stylistic and psychophysical constraints," Music and connectionism, pp. 195-211, 1991.
[49] P. Gibson and J. Byrne, "Neurogen, musical composition using genetic algorithms and cooperating neural networks," in Artificial Neural Networks, 1991., Second
International Conference on, 1991, pp. 309-313.
[50] P. N. Juslin and J. A. Sloboda, Music and emotion vol. 315: Oxford University Press New York, 2001.
[51] C. L. Krumhansl, "An exploratory study of musical emotions and psychophysiology,"
Canadian journal of experimental psychology, vol. 51, pp. 336-353, 1997.
[52] I. Cross, "Music and science: three views," Revue belge de Musicologie/Belgisch Tijdschrift voor Muziekwetenschap, pp. 207-214, 1998.
[53] B. Johanson and R. Poli, "GP-music: An interactive genetic programming system for music generation with automated fitness raters," in Genetic Programming 1998:
Proceedings of the Third Annual Conference, 1998, pp. 181-186.
[54] M. Unehara and T. Onisawa, "Composition of music using human evaluation," in Fuzzy Systems, 2001. The 10th IEEE International Conference on, 2001, pp. 1203-1206.
[55] J. A. Biles, "Life with GenJam: Interacting with a musical IGA," in Systems, Man, and
Cybernetics, 1999. IEEE SMC'99 Conference Proceedings. 1999 IEEE International Conference on, 1999, pp. 652-656.
[56] H. Hild, J. Feulner, and W. Menzel, "HARMONET: A Neural Net for Harmonizing Chorales in the Style of J. S. Bach," presented at the NIPS, 1991.
[57] M. Pearce and G. Wiggins, "Towards a framework for the evaluation of machine compositions."
[58] A. R. de Freitas, F. G. Guimaraes, and R. V. Barbosa, "Ideas in automatic evaluation methods for melodies in algorithmic composition," 2012.
[59] V. C. Wilfred, 實驗審美心理學(下)〈音樂、詩歌篇〉: 台北: 商鼎, 1991.
[60] 莊婕筠, 音樂治療: 台北:心理, 2004.
[61] G. Husain, W. F. Thompson, and E. G. Schellenberg, "Effects of musical tempo and mode on arousal, mood, and spatial abilities," Music Perception, vol. 20, pp. 151-171, 2002.
[62] J. A. Russell, "A circumplex model of affect," Journal of personality and social psychology, vol. 39, pp. 1161-1178, 1980.
[63] S. R. Livingstone and A. R. Brown, "Dynamic response: real-time adaptation for music emotion," presented at the Proceedings of the second Australasian conference on Interactive entertainment, Sydney, Australia, 2005.
[64] E. Selfridge-Field, Beyond MIDI: the handbook of musical codes: The MIT Press, 1997.
[65] G. Haus and M. Longari, "A multi-layered, timebased music description approach based on xml," Computer Music Journal, vol. 29, pp. 70-85, 2005.
[66] D. Sloan, "Aspects of Music Representation in HyTime/SMDL," Computer Music Journal, vol. 17, pp. 51-59, 1993.
附錄一、修正式 IEEE 1599 XML 描述檔案 DTD
<?xml version="1.0" encoding="UTF-8"?>
<!--
File name: ieee1599.dtd
Version: 1.0
Creation date: 25/02/2007 -Last update: 08/04/2007 + Last update: 06/01/2013
+ Notes: modified ieee1599 based on AC purposes.
Description
IEEE 1599 format is an XML-based language aimed at a comprehensive description of music and music-related contents.
It has been designed in response to IEEE Std 1599 - IEEE Recommended Practice for Defining a Commonly Acceptable Musical Application Using XML Language.
-->
<!--===========================================================================================
=====================-->
<!-- Import of external DTDs -->
<!ENTITY % svg
PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
%svg;
<!ENTITY % ChannelRequired "#REQUIRED">
<!ENTITY % mididtd
PUBLIC "-//MIDI Manufacturers Association//DTD MIDIEvents 1.0//EN"
"http://www.midi.org/dtds/MIDIEvents10.dtd" >
%mididtd;
<!--===========================================================================================
=====================-->
<!-- Common attributes parameter entities -->
<!ENTITY % spine_ref
"event_ref IDREF #REQUIRED">
<!ENTITY % spine_start_end_ref
"start_event_ref IDREF #REQUIRED end_event_ref IDREF #REQUIRED">
<!ENTITY % accidental
"(none | double_flat | flat_and_a_half | flat | demiflat | natural | demisharp | sharp | sharp_and_a_half | double_sharp)">
<!ENTITY % formats
"(application_excel | application_mac-binhex40 | application_msword |
application_octet-stream | application_pdf | application_x-director | application_x-gzip | application_x-javascript | application_x-macbinary | application_x-pn-realaudio |
application_x-shockwave_flash | application_x-tar | application_zip | audio_aiff | audio_avi | audio_mp3 | audio_mpeg | audio_mpeg3 | audio_mpg | audio_wav | audio_x_aiff | audio_x_midi | audio_x_wav | audio_x-mp3 | audio_x-mpeg | audio_x-mpeg3 | audio_x-mpegaudio | audio_x-mpg | audio_x-ms-wma | image_avi | image_bmp | image_x-bmp | image_x-bitmap | image_x-xbitmap | image_x-win-bitmap | image_x-windows-bmp | image_ms-bmp | image_x-ms-bmp | application_bmp | application_x-bmp | application_x-win-bitmap | application_preview | image_gif | image_jpeg | image_pict | image_png | application_png | application_x-png | image_tiff | text_html | text_plain_application_postscript | video_avi | video_mpeg | video_msvideo | video_quicktime | video_x-msvideo | video_x-ms-wmv | video_x-qtc | video_xmpg2)">
<!-- Common Elements -->
<!ELEMENT rights EMPTY>
<!ATTLIST rights
file_name CDATA #REQUIRED>
<!--===========================================================================================
=====================-->
<!-- Root Element -->
<!ELEMENT ieee1599 (general, logic, structural?, notational?, performance?, audio?)>
<!ATTLIST ieee1599
version CDATA #REQUIRED creator CDATA #IMPLIED>
<!--===========================================================================================
=====================-->
<!-- General Layer -->
+ <!ELEMENT general (ac?, description, related_files?, analog_media?, notes?)>
+ <!ELEMENT ac (target)>
+ <!ELEMENT target (ac_genres, ac_emotions?, descriptions?)>
+ <!ELEMENT ac_genres (genre*) >
+ <!ATTLIST genre + name CDATA #REQUIRED + description CDATA #IMPLIED + weight CDATA #IMPLIED>
+ <!ELEMENT ac_emotions (emotion*) >
+ <!ELEMENT emotion EMPTY >
+ <!ATTLIST emotion + name CDATA #IMPLIED + weight CDATA #IMPLIED + >
+ <!ELEMENT descriptions (description*) >
<!ELEMENT description (main_title, author*, other_title*, number?, work_title?, work_number?, date*, genres?)>
<!ELEMENT main_title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ATTLIST author
type CDATA #IMPLIED>
<!ELEMENT other_title (#PCDATA)>
<!ELEMENT number (#PCDATA)>
<!ELEMENT work_title (#PCDATA)>
<!ELEMENT work_number (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ATTLIST date
type CDATA #IMPLIED>
<!ELEMENT genres (genre+)>
<!ELEMENT genre EMPTY>
<!ATTLIST genre
name CDATA #REQUIRED description CDATA #IMPLIED weight CDATA #IMPLIED>
<!ELEMENT related_files (related_file+)>
<!ELEMENT related_file EMPTY>
<!ATTLIST related_file
file_name CDATA #REQUIRED file_format %formats; #REQUIRED encoding_format %formats; #REQUIRED start_event_ref IDREF #IMPLIED end_event_ref IDREF #IMPLIED description CDATA #IMPLIED
copyright CDATA #IMPLIED notes CDATA #IMPLIED + uuid CDATA #REQUIRED
>
<!ELEMENT analog_media (analog_medium+)>
<!ELEMENT analog_medium EMPTY>
<!ATTLIST analog_medium
description CDATA #REQUIRED copyright CDATA #IMPLIED notes CDATA #IMPLIED>
<!ELEMENT notes (#PCDATA)>
<!--===========================================================================================
=====================-->
<!-- Logic Layer -->
<!ELEMENT logic (spine, los?, layout?)>
<!-- Spine -->
<!ELEMENT spine (event)+>
<!ELEMENT event EMPTY>
<!ATTLIST event id ID #REQUIRED timing CDATA "null"
hpos CDATA "null">
<!ELEMENT los (agogics*, text_field*, metronomic_indication*, staff_list, part+, horizontal_symbols?, ornaments?, lyrics*)>
<!ELEMENT agogics (#PCDATA)>
<!ATTLIST agogics
bracketed (no | yes) #IMPLIED
%spine_ref;>
<!ELEMENT text_field (#PCDATA)>
<!ATTLIST text_field
extension_line_to IDREF #IMPLIED
extension_line_shape (normal | dotted | dashed) #IMPLIED
%spine_ref;>
<!ELEMENT metronomic_indication EMPTY>
<!ATTLIST metronomic_indication num CDATA #REQUIRED den CDATA #REQUIRED dots CDATA #IMPLIED value CDATA #REQUIRED
%spine_ref;>
<!ELEMENT staff_list (brackets | staff)+>
<!ELEMENT brackets EMPTY>
<!ATTLIST brackets
marker (start_of_staff_group | end_of_staff_group) #REQUIRED group_number CDATA #REQUIRED
shape (square | rounded_square | brace | vertical_bar | none) #REQUIRED>
<!ELEMENT staff (clef | ( key_signature | custom_key_signature) | time_signature | barline | tablature_tuning)*>
<!ATTLIST staff id ID #REQUIRED line_number CDATA "5"
ossia (yes | no) "no"
tablature (none | french | german | italian) #IMPLIED>
<!ELEMENT clef EMPTY>
<!ATTLIST clef
shape (G | F | C | gregorian_F | gregorian_C | percussion | doubleG | tabguitar) #REQUIRED staff_step CDATA #REQUIRED
octave_num (0 | 8 | -8 | 15 | -15) "0"
%spine_ref;>
<!ELEMENT key_signature (sharp_num | flat_num) >
<!ATTLIST key_signature
%spine_ref;>
<!ELEMENT sharp_num EMPTY>
<!ATTLIST sharp_num
number (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7) #REQUIRED>
<!ELEMENT flat_num EMPTY>
<!ATTLIST flat_num
number (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7) #REQUIRED>
<!ELEMENT custom_key_signature (key_accidental)+>
<!ATTLIST custom_key_signature
%spine_ref;>
<!ELEMENT key_accidental EMPTY>
<!ATTLIST key_accidental
step (A | B | C | D | E | F | G) #REQUIRED accidental %accidental; "none">
<!ELEMENT time_signature (time_indication)+>
<!ATTLIST time_signature visible (yes | no) "yes"
%spine_ref;>
<!ELEMENT time_indication EMPTY>
<!ATTLIST time_indication num CDATA #REQUIRED den CDATA #IMPLIED
abbreviation (yes | no) "no"
vtu_amount CDATA #IMPLIED>
<!ELEMENT barline EMPTY>
<!ATTLIST barline
style (dashed | double | final | invisible | standard | medium | short) #REQUIRED extension (single_staff | staff_group | all_staves | mensurstrich) #REQUIRED
%spine_ref;>
<!ELEMENT tablature_tuning (string*)>
<!ATTLIST tablature_tuning
type (D | E | G | A | baroque | flat_french | other) #IMPLIED>
<!ELEMENT string EMPTY>
<!ATTLIST string
string_number CDATA #REQUIRED
string_pitch (A | B | C | D | E | F | G) #REQUIRED string_accidental %accidental; #IMPLIED
string_octave CDATA #REQUIRED>
<!ELEMENT part (voice_list, measure+)>
<!ATTLIST part id ID #REQUIRED
performers_number CDATA "unknown"
transposition_pitch (A | B | C | D | E | F | G) #IMPLIED transposition_accidental %accidental; #IMPLIED
octave_offset CDATA #IMPLIED>
<!ELEMENT voice_list (voice_item+)>
<!ELEMENT voice_item EMPTY>
<!ATTLIST voice_item id ID #REQUIRED
staff_ref IDREF #REQUIRED
notation_style (normal | rhythmic | slash | blank) #IMPLIED>
<!ELEMENT measure (voice+ | multiple_rest | measure_repeat?)>
<!ATTLIST measure
number CDATA #REQUIRED id ID #IMPLIED
show_number (yes | no) #IMPLIED
numbering_style (arabic_numbers | roman_numbers | small_letters | capital_letters) #IMPLIED>
<!ELEMENT multiple_rest EMPTY>
<!ATTLIST multiple_rest
number_of_measures CDATA #REQUIRED event_ref IDREF #IMPLIED>
<!ELEMENT measure_repeat EMPTY>
<!ATTLIST measure_repeat
number_of_measures CDATA #REQUIRED event_ref IDREF #IMPLIED>
<!ELEMENT voice (chord | rest | tablature_symbol | gregorian_symbol)+>
<!ATTLIST voice
voice_item_ref IDREF #REQUIRED ossia (yes | no) "no">
<!ELEMENT chord (duration, augmentation_dots?, (notehead+ | repetition), articulation?)>
<!ATTLIST chord id ID #IMPLIED
%spine_ref;
stem_direction (up | down | none) #IMPLIED beam_before (yes | no) "no"
beam_after (yes | no) "no"
cue (yes | no) "no"
tremolo_lines (no | 1 | 2 | 3 | 4 | 5 | 6) #IMPLIED>
<!ELEMENT repetition EMPTY>
<!ELEMENT duration (tuplet_ratio?)>
<!ATTLIST duration num CDATA #REQUIRED den CDATA #REQUIRED>
<!ELEMENT tuplet_ratio (tuplet_ratio*)>
<!ATTLIST tuplet_ratio
enter_num CDATA #REQUIRED enter_den CDATA #REQUIRED enter_dots CDATA #IMPLIED in_num CDATA #REQUIRED in_den CDATA #REQUIRED in_dots CDATA #IMPLIED>
<!ELEMENT rest (duration, augmentation_dots?)>
<!ATTLIST rest
id CDATA #IMPLIED
%spine_ref;
staff_ref IDREF #IMPLIED hidden (no | yes) #IMPLIED>
<!ELEMENT tablature_symbol (duration, augmentation_dots?, key+)>
<!ATTLIST tablature_symbol id ID #IMPLIED
%spine_ref;
stem_direction (up | down | none) #IMPLIED beam_before (yes | no) "no"
beam_after (yes | no) "no">
<!ELEMENT key (tablature_pitch, tablature_articulation?, tie?, tablature_fingering?)>
<!ATTLIST key id ID #IMPLIED
staff_ref IDREF #IMPLIED>
<!ELEMENT tablature_pitch EMPTY>
<!ATTLIST tablature_pitch
string_number CDATA #IMPLIED key_number CDATA #REQUIRED>
<!ELEMENT tablature_articulation EMPTY>
<!ATTLIST tablature_articulation
shape (cross | tie | other) #REQUIRED>
<!ELEMENT tablature_fingering (#PCDATA)>
<!ATTLIST tablature_fingering
shape (number | dot | other) #REQUIRED>
<!ELEMENT gregorian_symbol (notehead+)>
<!ATTLIST gregorian_symbol id ID #IMPLIED
neume (punctum | virga | punctum_inclinatum | quilisma | apostrofa | oriscus | podatus | pes
| clivis | flexa | epiphonus | cephalicus | bistropha | bivirga | trigon | torculus | porrectus | scandicus | salicus | climacus | tristropha | trivirga | strophicus | pressus | custos) #REQUIRED
inflexion (no | resupinus | flexus) "no"
subpunctis (no | praepunctis | subpunctis | subbipunctis | subtripunctis | subquadripunctis
| subquinquipunctis) "no"
interpretative_mark (no | vertical_episema | horizontal_episema | liquescens) "no"
mora (yes | no) "no"
%spine_ref;>
<!-- Articulation signs -->
<!ELEMENT articulation (normal_accent | staccatissimo | staccato | strong_accent | tenuto | stopped_note | snap_pizzicato | natural_harmonic | up_bow | down_bow | open_mute | close_mute | custom_articulation)*>
<!ELEMENT normal_accent EMPTY>
<!ELEMENT staccatissimo EMPTY>
<!ELEMENT staccato EMPTY>
<!ELEMENT staccato EMPTY>