Posts posted by dsyk
-
-
-
I want to write down all the scales provided in “Tonalities” for educational purposes.
I begin with C major scale thus: (setf c-major '(w c4 d4 e4 f4 g4 a4 b4 c5)) and then I apply, for ex. (setf c-minor (tonality-map '(melodic-major) c-major)).Each time I call “Snippet Notation” I get different notes for the new tonality (scale). Is there a way to fix this?
Thanks
-
After a computer crash I lost the dmg of Opusmodus 1. Is there a link that I can download it again?
Thank -
-
-
OMN Parse Error
in OMN Lingo
Posted
I’m writing a piece for flute, oboe clarinet using infinity series and I get the following error:
<<automatic abort>>
OM 6 > infinity-series
gen-repeat
gen-repeat
flatten
infinity-series
gen-repeat
gen-repeat
flatten
infinity-series
gen-repeat
gen-repeat
flatten
ps
Error: OMN Parse Error: fail
1 (abort) Return to top loop level 0.
Type :b for backtrace or :c <option number> to proceed.
Type :bug-form "<subject>" for a bug report template or :? for other options.
OM 7 : 1 >
What am I doing wrong?
My code (with the help of Chat GPT) is:
;; --------- Helper Functions ---------
(defun make-crescendo (start end steps)
(let* ((dynamic-scale '(pp p mp mf f ff))
(start-index (position start dynamic-scale))
(end-index (position end dynamic-scale))
(range (if (< start-index end-index)
(subseq dynamic-scale start-index (1+ end-index))
(reverse (subseq dynamic-scale end-index (1+ start-index)))))
(expanded (loop for i from 0 below steps
collect (nth (floor (* (/ i steps) (length range))) range))))
expanded))
(defun build-omn-with-rests (pitches rhythms velocities articulations)
(flatten
(loop for p in pitches
for r in rhythms
for v in velocities
for a in articulations
collect (cond
((and (eq p 'r) r) (list r 'r))
((and p r v a) (list r p v a))))))
(defun introduce-rests (pitch-list probability)
(loop for p in pitch-list
collect (if (< (random 1.0) probability)
'r
p)))
;; --------- Common Settings ---------
(defparameter tempo 72)
(defparameter time-signature '(4 4))
(defparameter rest-probability 0.3)
;; --------- Flute Material ---------
(setf flute-pitches
(introduce-rests
(infinity-series 100 '(c4 cs4) :ambitus '(c4 c6))
rest-probability))
(setf flute-rhythms
(gen-repeat 25 '(q e e s)))
(setf flute-velocities
(make-crescendo 'pp 'ff 100))
(setf flute-articulations
(gen-repeat 25 '(stacc leg marc ten)))
(setf flute-omn
(build-omn-with-rests
flute-pitches
flute-rhythms
flute-velocities
flute-articulations))
;; --------- Oboe Material ---------
(setf oboe-pitches
(introduce-rests
(infinity-series 100 '(d4 ds4) :ambitus '(d4 d6))
rest-probability))
(setf oboe-rhythms
(gen-repeat 25 '(e e s q)))
(setf oboe-velocities
(make-crescendo 'pp 'ff 100))
(setf oboe-articulations
(gen-repeat 25 '(leg marc ten stacc)))
(setf oboe-omn
(build-omn-with-rests
oboe-pitches
oboe-rhythms
oboe-velocities
oboe-articulations))
;; --------- Clarinet Material ---------
(setf clarinet-pitches
(introduce-rests
(infinity-series 100 '(e4 f4) :ambitus '(e4 e6))
rest-probability))
(setf clarinet-rhythms
(gen-repeat 25 '(s q e e)))
(setf clarinet-velocities
(make-crescendo 'pp 'ff 100))
(setf clarinet-articulations
(gen-repeat 25 '(marc ten stacc leg)))
(setf clarinet-omn
(build-omn-with-rests
clarinet-pitches
clarinet-rhythms
clarinet-velocities
clarinet-articulations))
;; --------- Final Score (Playback + Export) ---------
(ps 'gm
:title "Infinity Series Trio - Final Version with Rests"
:time-signature time-signature
:tempo tempo
:inst '(flute oboe clarinet)
:fl (list flute-omn)
:ob (list oboe-omn)
:cl (list clarinet-omn))