Search the Community
Showing results for tags 'score'.
-
Greetings! The notion of using this topic to provide insights into individual working methods will be really valuable to the community! Such a great idea! As a modest and simple example I offer this experiment in micropolyphony. ;; Experiement in micropolyphony - inspired by Ligeti ;; Robert Scott Thompson - July 28, 2024 - Roswell (80 deg F, Rain) ;; ;; DEFINE UNIQUE FUNCTIONS ;; ;; A Stepped Function for a line vector - ;; not used in this example (defun stepped-function (start end num-points) (let ((step (/ (float (- end start)) (1- num-points)))) (loop for i from 0 to (1- num-points) collect (+ start (* i step))))) (defun create-stepped-function (start end num-points) (let ((points (stepped-function start end num-points))) (mapcar #'round points))) ;; Example usage: ;;(create-stepped-function 1 10 5) ; => (1 3 5 7 10) ;;(create-stepped-function 0 8 50) ; => (0 3 5 8) ;; A Stepped Function for a line vector with a simple percentage slope adjustment - ;; used in this example (defun generate-stepped-line (start end num-points percentage) (let* ((total-diff (- end start)) (adjusted-diff (* total-diff (/ percentage 100.0))) (step (/ adjusted-diff (1- num-points)))) (loop for i from 0 to (1- num-points) collect (round (+ start (* i step)))))) ;; Example usage: ;;(generate-stepped-line 1 10 5 100) ; => (1 3 5 7 10) ;;(generate-stepped-line 1 10 5 50) ; => (1 2 3 5 6) ;;(generate-stepped-line 1 10 5 200) ; => (1 5 8 12 15) ;; ;; BEGIN COMPOSE ALGO - Micropolyphony Experiment ;; ;; Inspired by Ligeti (et al). This is an experimental texture - what I often refer to as ;; a "compositional primitive" - and often a kind of starting place for the generation of ;; materials for a composition when I begin working with CAC tools like Opusmodus. ;; ;; The notion of the "primitive" is that it remains a small compact program, easy to change ;; and manipulate as materials are developed. What is so helpful with OMN is that the output ;; can be "deconstructed" algorithmically and used in myriad contexts. ;; ;; More complex programs - perhaps defining an entire work - are often less easy to manage in this ;; manner. Yet, they also are quite good, depending upon the context of the musical research. ;; ;; In this example, there are some simple functions for control vectors defined. The musical idea ;; is of two lines (here a flute and 'cello) that begin more or less together in a polyphonic flux ;; but divert with the cello moving slowly down in tessitura over the duration of the passage. ;; ;; Textures such as this one are used in various elaborate contexts in my work FLEXURE for two ;; violins (Music for Strings recording - for example) and also NEXI for violin and viola (same). ;; However, these works were not created using CAC techniques (computer assisted composition). ;; Rather, they were composed using more traditional methods and aided by graph paper, charts, and lists. ;; Both scores are available from American Composers Edition, New York. ;; ;; First Step - to define some duration (length) materials: ;; mat1 - flute (setf mat1 (sieve-tree 16 2 5)) (setf m1span (get-span mat1)) ;; mat2 - cello (setf mat2 (flatten (gen-loop 22 (gen-tuplet 1 2 '? 'n 'q '(5 3 4) :times 1 :omn t)))) (setf mat2s (get-span mat2)) ;;(setf mat2R (length-rest-invert mat2)) ;;(setf m2span (get-span mat2R)) ;; spanning the cello durations to the flute durations (setf mat2span (length-span m1span mat2)) ;(get-span mat2span) ;; getting counds of legth events for later use (setf m1cnt (get-count mat1)) (setf m2cnt (get-count mat2)) (setf m2scnt (get-count mat2span)) ;; Second Step - to create pitch material for the micropolyphony ;; first for the flute (setf stream_pitches (filter-repeat 1 (gen-eval m1cnt '(rnd-sample 1 '(b3 c4 cs4 ds4))))) ;; then for the cello - but changing based on duration values (setf stream2_pitches (filter-repeat 1 (length-map '((5q b3) (3q c4) (s cs4) (e ds4)) mat2span))) ;(get-count stream2_pitches) ;; transforming cello pitches to integers. This step is important to the creation of the ;; diverging cello line that moves progressively lower in pitch. (setf stream2_pitches_int (pitch-to-integer stream2_pitches)) ;; getting the count of output pitches from cello (setf stream2_pitches_cnt (get-count stream2_pitches_int)) ;; Third Step ;; generation of the stepped line function to drive the cello pitch set progressively lower ;; in pitch ;; defining the stepped fucntion (setf stairs (generate-stepped-line 0 -12 stream2_pitches_cnt 100)) ;(get-count stairs) ;; adding the step function to the original pitches (as integers) (setf stream2_sum_int (mapcar #'+ stream2_pitches_int stairs)) ;(get-count stream2_sum_int) ;; converting the resulting cello pitches from integers back to pitches (setf stream2_pitches_sum (integer-to-pitch stream2_sum_int)) (get-count stream2_pitches_sum) ;; creating dynamincs vectors for the musical fragment (setf stream_vel (gen-cresc-dim m1cnt 'ppp 'f)) (setf stream2_vel (gen-cresc-dim m2scnt 'ppp 'f)) ;; Creating the OMN (setf stream (make-omn :length mat1 :pitch stream_pitches :velocity stream_vel )) ;(get-count stream) (setf stream2 (make-omn :length mat2span :pitch stream2_pitches_sum :velocity stream2_vel )) ;(get-count stream2) ;; Creating the score (def-score DuoTest (:title "Duo Test" :key-signature 'chromatic :time-signature '(4 4) :tempo 60 :layout (list (bracket-group (flute-layout 'flute) (violoncello-layout 'cello)))) (flute :omn stream :channel 1 :sound 'gm :program 'flute) (cello :omn stream2 :channel 2 :sound 'gm :program 'cello) ) rst A Micropolyphonic Fragment for Flute and Cello Duo - TEST.opmo
-
i like the concept of "brownian bridge" to produce complex curves from a to b, but not completely randomized or controlled. in the video you see all the generations for one evaluation... how it could sound - mapped on different tonalities Brownsche Brücke – Wikipedia DE.WIKIPEDIA.ORG for understanding in OPMO: axiom: start end (50 23) gen1 => 1 step (50 8 23) gen2 => 3 steps (50 15 8 -3 23) gen3 => 7 steps (50 40 15 13 8 -14 -3 29 23) gen4 => 15 steps (50 58 40 33 15 22 13 4 8 4 -14 -16 -3 17 29 17 23) ...and so on ------------------------------------------------------------------------------- some evaluations with same AXIOM: Bildschirmaufnahme 2023-07-08 um 11.09.51.mov ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; BROWNIAN BRIDGE -> could be use as a rnd-process from A to B (integers or pitches) ;;; if you have a look to example with ":all-gen t", you will see the process with all generations, how it works ;;; or take a look to: ;;; https://de.wikipedia.org/wiki/Wiener-Prozess#/media/File:BrownscheBewegung.png ;;; https://de.wikipedia.org/wiki/Brownsche_Brücke ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; SUB (defun pick (a b &key (span 5)) (let ((rnd1 (car (rnd-number 1 (+ a span) (- a span)))) (rnd2 (car (rnd-number 1 (+ b span) (- b span)))) (n)) (progn (setf n (car (rnd-number 1 rnd1 rnd2))) (if (or (= n a) (= n b)) (+ (rnd-pick '(1 -1)) n) n)))) (pick 2 3) ;;; MAIN ;;; MAIN (defun gen-brownian-bridge (n startend &key (all-gen nil) (output 'integer) (span 5)) (let ((seq)) (progn (setf seq (append (list startend) (loop repeat n with liste = startend do (setf liste (filter-repeat 1 (loop repeat (1- (length liste)) for cnt = 0 then (incf cnt) append (append (list (nth cnt liste) (pick (nth cnt liste) (nth (1+ cnt) liste) :span span) (nth (1+ cnt) liste)))))) collect liste))) (setf seq (if (equal all-gen t) seq (car (last seq)))) (if (equal output 'pitch) (integer-to-pitch seq) seq)))) ;;; EXAMPLES ;; SPAN influence -> span 2 (loop repeat 20 do (list-plot (gen-brownian-bridge 5 '(1.2 5.4) :span 2 :all-gen t) :zero-based t :point-radius 3 :join-points t) do (sleep 2)) ;; SPAN influence -> span 10 (list-plot (gen-brownian-bridge 5 '(50 23) :span 20 :all-gen t) :zero-based t :point-radius 3 :join-points t) ;;; SPAN default (5) (list-plot (gen-brownian-bridge 5 '(50 23) :all-gen t) :zero-based t :point-radius 3 :join-points t) (list-plot (gen-brownian-bridge 5 '(50 23)) :zero-based t :point-radius 3 :join-points t) (gen-brownian-bridge 5 '(50 23) :all-gen t :output 'pitch) (gen-brownian-bridge 5 '(50 23) :output 'pitch)
-
More functionality in MICROPOLYPHONE to control the complexity: (progn (setf interval-series '((0) (1 -1 2 -2) (6 -6 11 -11) (13 -13))) (micropolyphony 4 40 1/16 1/4 :intervals interval-series :interval-prob '(.2 .2 .3 .3) :length-prob '(.1 .9 .5 .9) :proportional t :index 'a :seed 830134 :span 7 ) (micropolyphony 4 40 1/16 1/2 :intervals interval-series :interval-prob '(.2 .2 .3 .9) :length-prob '(.2 .9 .4 .9) :proportional t :index 'b :seed 855650 :span 13 ) (setf rh-a (quantize (ambitus-chord 13 (dissolve-voices (merge-voices a1 a2))) '(1 2 4)) lh-a (quantize (ambitus-chord 13 (dissolve-voices (merge-voices a3 a4))) '(1 2 4)) rh-b (quantize (ambitus-chord 13 (dissolve-voices (merge-voices b1 b2))) '(1 2 4)) lh-b (quantize (ambitus-chord 13 (dissolve-voices (merge-voices b3 b4))) '(1 2 4)) ) (setf rh-1 (omn-to-time-signature (assemble-seq rh-a rh-b) '(4 4)) lh-1 (omn-to-time-signature (assemble-seq lh-a lh-b) '(4 4)) ) (setf rh (dictum '((:do p) (:do mf :bar (1..5)) (:do > :bar (5..7 16..20)) (:last pp :bar 20) (:last fermata :bar 20)) rh-1) lh (dictum '((:do p) (:do mf :bar (1..5)) (:do > :bar (5..7 16..20)) (:last pp :bar 20) (:last fermata :bar 20)) lh-1) ) (ps 'gm :p (list (ambitus '(0 45) rh) (ambitus '(-32 -1) lh)) :tempo 112) ) MP Series.mp3
-
Hi, here's a short score composed for string quartet. All the best to all OM users ! Stéphane stephaneboussuge · Méditation MeditationPourRené.opmo 01 - Conducteur - Méditation.pdf
-
A.S. Mailbox (three serial miniatures for string quartet) dur: circa 4´30 Composer: Julio HERRLEIN Porto Alegre - Jun/2021 I. Email from Anton II. [SPAM] Re: Hauer III. Letter from Alban A.S. (Arnold Schoenberg) Mailbox are a set of three miniatures for string quartet using 12-tone serial techniques and parametric composition processes. The idea is a imaginary mailbox of Schoenberg dialogues with his main disciples Webern and Berg, and also Hauer, his rival in the creation of a 12-tone composition method. All the pieces are (loosely) based in the same all interval 12-tone row: c4 eb4 a4 db4 b4 ab4 g4 d4 e4 f4 bb4 gb4 PERFORMANCE NOTE: The score and parts accidentals favor the FLATS (b) for easier enharmonic reading. Some of the uses of the tone row are also related to the rhythmic span of the orchestration and the algorithmic method for spreading the tones through the lisp lists in the Opusmodus software. The first miniature “Email from Anton” are inspired by the pointilistic textures used by Webern in his op. 28. In a later section, the textures are intensified by melodic figures and tremolos across the instruments of the quartet. The second miniature “[SPAM] Re: Hauer” is an imaginary email from Hauer (lost in “Arnie´s” spam box…) where he shows to A.S. his klangreihen method (as actually described by Dominik SEDIVÝ, 2011, pp. 25-30) to harmonize and make a smooth parsimonious voice-leading of a 12-tone row. The last piece “Letter from Alban” set up some 6-attack melodic motifs based on the hexachords of the basic row, combined with rhythmic ostinato textures of accompaniment and sweet chords derived from retrograde version of the row. All the best !! Thanks to everyone in this forum who have patience with me ! Julio Herrlein, 2021/JUNE
-
Nothing to do during my Covid period and a bit of fever, so... stephaneboussuge · Covid - For - String - Quartet Covid-forStringQuartet.opmo
-
I am sharing here the score of some piece I did some time ago with Opusmodus and which I will touch upon in my presentation at the forthcoming Opusmodus convention. Unfortunately, I only have a score for this and no recording. Torsten Torsten Anders - 2017 - Aschenputtel - for Flute Solo.pdf
-
A short piano piece using GEN-FRAGMENT function. SB. Voile Suspendu.mp3 Voile Suspendu - Partition complète.pdf
-
audio Couleurs du temps présent pour Flute et Piano
Stephane Boussuge posted a topic in Made In Opusmodus
Here's a new piece made in Opusmodus. The pdf itself is raw output of Opusmodus, I've just added Title, name etc... with PdfExpert software. Enjoy. SB. CouleursDuTempsPourFluteEtPiano.pdf -
Hi, A short study about some harmonic procedures and unfold set simple usage. SB. Score: MelodieFlutePiano280819GM.opmo
-
Here's a short study for a small ensemble. All the best ! SB. Mapcar1.opmo
-
The forthcoming POLYGON-RHYTHM function will allow you to think and compose in a clear symmetrical structures. The great amount of keywords (OPMO stile) makes this algorithm very powerful. This is a short example using POLYGON-RHYTHM exclusively. Instruments: VSL Tenor Sax and Jazz Drumset.
-
Hi, Here's a score for 4 hands recently finished. SB. Score: PourEtContre1Edit2.opmo
-
In memoriam Narcis Bonet who was one of my teachers. Opusmodus score attached. SB. PlutonV1-02.opmo
-
Here's a small piano study using my new function make-chord-if-length and few others from my personal lib. Enjoy SB. ;;; UTILITIES ;;; ======================================== ;;; GEN-PITCH-LINE ;;; Fonction de génération de hauteurs basées sur une conversion de vecteur de bruit ;;; avec un grand choix de type de bruit, taux de compression du vecteur, filtrage des répétitions et ambitus. (defun gen-pitch-line (nb-pitch &key (compress 1) (ambitus '(c4 c6)) seed filter-repeat (type :white)) (setf seed (rnd-seed seed)) (let (pitches) (do-verbose ("gen-pitch-line :seed ~s" seed) (labels ((white-or-pink (nb-pitch seed type) (if (eq type ':pink) (gen-pink-noise nb-pitch :seed seed) (gen-white-noise nb-pitch :seed seed :type (if (eq type ':white) :normal type)))) (process (nb-pitch &key (compress 1) (ambitus '(c4 c6)) seed filter-repeat type) (setf pitches (vector-to-pitch ambitus (vector-smooth compress (white-or-pink nb-pitch seed type)))) (when filter-repeat (setf pitches (gen-trim nb-pitch (filter-repeat filter-repeat pitches)))) pitches) ) (process nb-pitch :compress compress :ambitus ambitus :filter-repeat filter-repeat :seed (seed) :type type))))) #| USAGE (gen-pitch-line 24 :compress 0.42 :type :white :filter-repeat 1) (gen-pitch-line 24 :compress 0.42 :type :pink :filter-repeat 1) (gen-pitch-line 24 :compress 0.42 :type :extreme :filter-repeat 1) (gen-eval 8 '(make-omn :pitch (gen-pitch-line 24 :compress 0.42 :type :white :filter-repeat 1) :length (euclidean-rhythm 16 1 16 's :type 2) ) :seed 33) |# ;;; OMN-ARTICULATION-PROCESSOR (defun omn-articulation-processor (map omn-mat &key (section nil)) (do-verbose ("omn-articulation-processor") (let ((artic (pattern-map map (omn :length omn-mat) :otherwise '(default) :section section)) ) (omn-replace :articulation artic omn-mat) ))) ;;; MAKE-CHORD-IF-LENGTH (defun make-chord-if-length-aux (omn &key (test #'>) (length-val 1/8) (interval-list '((4 7)(7 12))) (cycle t)(relative nil) seed) (setf seed (rnd-seed seed)) (let ((s-events (single-events omn))) (loop for e in s-events when (funcall test (omn-encode (first e)) length-val) append (omn-replace :pitch (gen-chord3 (list (second e)) interval-list :cycle cycle :relative relative :seed (seed)) e ) else append e))) (defun make-chord-if-length (omn &key (test #'>) (length-val 1/8) (interval-list '((4 7)(7 12)))(cycle nil)(relative nil) seed) (setf seed (rnd-seed seed)) (do-verbose ("make-chord-if-length :seed ~s :length-val ~s :interval-list ~s :cycle ~s :relative ~s" seed length-val interval-list cycle relative) (let ((test-fn (case test (> #'>) (< #'<) (= #'=) (otherwise test)))) (if (listp (car omn)) (mapcar #'(lambda (x) (make-chord-if-length-aux x :test test-fn :length-val (omn-encode length-val) :interval-list interval-list :cycle cycle :relative relative :seed (seed))) omn) (make-chord-if-length-aux omn :test test-fn :length-val (omn-encode length-val) :interval-list interval-list :cycle cycle :relative relative :seed (seed)))))) ;;; ======================================== ;;;--------------------------------------------------------- ;;; Parameters ;;;--------------------------------------------------------- (setf size 24) (setf flow1 (pitch-transpose -7 (make-omn :pitch (gen-pitch-line 128 :compress 0.33 :seed 729353) :length (rnd-sample size '((s s s s s s s s -q) (e e h)(h.)(q q e e) (e e q q)(s s s s q q) (q s s s s q)(s s e -e s s q) ) :seed 729355) :velocity (rnd-sample size '((ppp)(pp)(p)(mp)(mf)) :seed 729356) ))) (setf flow2 (pitch-transpose -4 (make-omn :pitch (gen-pitch-line 128 :compress 0.73 :seed 353) :length (rnd-sample size '((h. ) (q. e q)(h.)(q q q) (h -q)(e e h) (h e e) ) :seed 729355) :velocity (rnd-sample size '((ppp)(pp)(p)) :seed 729356) ))) (setf flow3 (pitch-transpose -7 (make-omn :pitch (gen-pitch-line 128 :compress 0.33 :seed 7353) :length (rnd-sample size '((s s s s s s s s -q) (e e h)(h.)(q q e e) (e e q q)(s s s s q q) (q s s s s q)(s s e -e s s q) ) :seed 7255) :velocity (rnd-sample size '((ppp)(pp)(p)(mp)(mf)) :seed 7256) ))) ;;; Articulation remap (setf map '(((1/16 1/16 1/16 1/16)(leg leg leg default)))) (setf with-ch1 (omn-articulation-processor map (pitch-ornament (make-chord-if-length flow1 :interval-list '((-7 -19 3 9)(-4 -16 3 7) (-5 -17 4 12)(-3 -15 7)) :cycle nil :relative t :seed 729358 )))) (setf with-ch2 (omn-articulation-processor map (pitch-ornament (make-chord-if-length flow2 :interval-list '((-7 -19 3 9)(-4 -16 3 7) (-5 -17 4 12)(-3 -15 7)) :cycle nil :relative t :seed 729358 )))) (setf with-ch3 (omn-articulation-processor map (pitch-ornament (make-chord-if-length flow3 :interval-list '((-7 -19 3 9)(-4 -16 3 7) (-5 -17 4 12)(-3 -15 7)) :cycle nil :relative t :seed 729358 )))) ;;; SCORE ASSEMBLY (setf piano-rh (omn-replace :articulation '(default leg leg leg default fermata-l) (ambitus-filter '(c4 c8) (assemble-seq with-ch1 with-ch2 with-ch3)) :section '(71))) (setf piano-lh (omn-replace :articulation '(default fermata-l) (ambitus-filter '(c0 b3) (assemble-seq with-ch1 with-ch2 with-ch3)) :section '(71))) ;;;--------------------------------------------------------- ;;; Score and Layout ;;;--------------------------------------------------------- (def-score Study (:title "Mcil-study" :composer "S.Boussuge" :copyright "Copyright © 2018 s.boussuge " :key-signature 'chromatic :time-signature '((1 1 1) 4) :tempo 82 :layout (piano-solo-layout 'piano-rh 'piano-lh)) (piano-rh :omn piano-rh :channel 1 :sound 'gm :program 'acoustic-grand-piano :volume 100 :pan 64 :controllers (91 '(48)) ) (piano-lh :omn piano-lh :channel 2 :controllers (91 '(48)) ) )
-
Here's a short piece for violin solo and Strings ensemble with Fibonacci based harmony. Full score attached to this post fully commented but in French SB. BrinD'or-V04.opmo
-
score Euclidean Rotations ('My Opus In The Modus Of Ghosts")
loopyc posted a topic in Made In Opusmodus
Eno/Byrne-esque 'Beat-Betas' as audition tape (i.e. 60 second continuous excerpts). Opusmodus generated MIDI...Mixed as "prototypes" in Logic 9.1.8,'auditioned' in iTunes 'live' to "Audio Hijack Pro". -
Hi, here's for study purpose the Opusmodus score of the first movement of my piano trio. All the best to the wonderful Opusmodus users community ! SB. PianoTrio-SlonimskyV2.opmo
-
-
Algorithmic avant garde jazz improvisation for tenor saxophone, piano, bass and drums. I thought it is time to add something new to our 'Made in Opusmodus' forum. Samples: VSL Ensemble Pro with Vienna Instruments Pro. If you like to study the score, here it is: DADA Quartet.opmo
- 4 replies
-
- jazz
- avant garde
-
(and 1 more)
Tagged with:
-
Hi, for study purpose only, you will find attached to this post the score script of this Prelude for Piano. SB. PreludeForNicolai.opmo
-
score Work in Progress Strings quartet 1st Movement
Stephane Boussuge posted a topic in Made In Opusmodus
Hi, here's the first movement of a work in progress, my strings quartet No.1. OpmoScore attached. You can also find how it was algorithmically made in this forum article/example: SB. Sqrt1-Full-GM.opmo -
Hi, new piece after a paint by Egon Schiele. SB. mwploaFullScoreEdit.opmo (update)
-
Hi, is it possible to use Klangfarbenmelodie with OMN ? It could be like that: pitch 1, midi channel 1 pitch 2, midi channel 2... Is there any easy way to do it, or maybe a function I haven't see yet ? Thanks Alain