c@43: (cl:in-package #:amuse-tabcode) c@43: d@179: (defclass tabcode-object (amuse-object) ()) c@43: d@179: (defclass tabcode-composition (standard-composition tabcode-object) d@179: ((bars :initarg :bars :reader tabcode-bars) d@179: (rules :initarg :rules :reader tabcode-rules) d@179: (metres :initarg :metres :reader metrical-signs))) d@179: d@179: (defclass tabcode-pitched-event (standard-chromatic-pitched-event tabcode-object) c@43: ((course :initarg :course :reader course) csr21@58: (fret :initarg :fret :reader fret) d@179: (word :initarg :word :reader word) d@179: (bar :initarg :bar :reader in-bar))) d@179: d@179: (defclass tabcode-time-signature (standard-anchored-period tabcode-object) d@179: ((word :initarg :word :reader word) d@179: (ul)(ll)(ur)(lr))) d@183: (defgeneric ul (timesig)) d@183: (defgeneric ll (timesig)) d@183: (defgeneric ur (timesig)) d@183: (defgeneric lr (timesig)) d@179: (defmethod ul ((timesig tabcode-time-signature)) d@179: (unless (slot-boundp timesig 'ul) d@179: (let ((ul (tabcode::ul (word timesig)))) d@179: (setf (slot-value timesig 'ul) d@179: (when ul d@179: (or (parse-integer ul :junk-allowed t) d@179: ul))))) d@179: (slot-value timesig 'ul)) d@179: (defmethod ll ((timesig tabcode-time-signature)) d@179: (unless (slot-boundp timesig 'll) d@179: (let ((ll (tabcode::ll (word timesig)))) d@179: (setf (slot-value timesig 'll) d@179: (when ll d@179: (or (parse-integer ll :junk-allowed t) d@179: ll))))) d@179: (slot-value timesig 'll)) d@179: (defmethod ur ((timesig tabcode-time-signature)) d@179: (unless (slot-boundp timesig 'ur) d@179: (let ((ur (tabcode::ur (word timesig)))) d@179: (setf (slot-value timesig 'ur) d@179: (when ur d@179: (or (parse-integer ur :junk-allowed t) d@179: ur))))) d@179: (slot-value timesig 'ur)) d@179: (defmethod lr ((timesig tabcode-time-signature)) d@179: (unless (slot-boundp timesig 'lr) d@179: (let ((lr (tabcode::lr (word timesig)))) d@179: (setf (slot-value timesig 'lr) d@179: (when lr d@179: (or (parse-integer lr :junk-allowed t) d@179: lr))))) d@179: (slot-value timesig 'lr)) d@179: d@179: (defclass tabcode-file-identifier (identifier tabcode-object) d@179: ((pathname :initarg :pathname :reader tabcode-pathname))) d@179: d@179: (defclass tabcode-bar (standard-anchored-period tabcode-object) d@179: ((start :initarg :start :accessor start-tabword) d@179: (end :initarg :end :accessor end-tabword))) d@179: d@179: (defclass tabcode-ruleset (standard-anchored-period tabcode-object) d@179: ((rules :initarg :rules :accessor ruleset-rules) d@179: (tuning :initarg :tuning :accessor ruleset-tuning :initform nil))) d@179: