-
Posts
81 -
Joined
-
Last visited
Reputation Activity
-
lviklund reacted to Stephane Boussuge in New Zoom into OM - Chord-dictum function
New video exploring the fabulous new Opusmodus function "chord-dictum".
-
lviklund reacted to Stephane Boussuge in Chord-Dictum Score
I've shared a video here on CHORD-DICTUM function and you will find here the code from the video.
Enjoy !
The Score:
;;;-------------------------------------------------------- ;;; SCORE 186 ;;; VARIATIONS POUR PIANO ;;; Etude de la fonction "chord-dictum" ;;; S.BOUSSUGE ;;; WIEN - 27.01.2024 ;;;-------------------------------------------------------- ;;; LEARN OPUSMODUS: WWW.COMPOSERWORKSHOP.COM ;;;-------------------------------------------------------- ;;; To view the score press the Cmd-Option-1 keys. ;;;-------------------------------------------------------- ;;; UTILITY ;;; REA-MARK (defun rea-mark (omn-exp) "Add rehearsal marks even on empty bars." (if (event-restp (nth-event 0 omn-exp)) (position-insert 1 'reh omn-exp :section '(0)) (edit-events '((1 1 'reh :articulation)) omn-exp))) ;;;-------------------------------------------------------- ;;; PARAMETERS (setf seed (rnd-round 1 1000000)) (init-seed seed) (setf chords.p '(h. cs3fs3b3d4fs4bb4 q bb2eb3g3b3eb4gs4 h. cs3fs3b3d4fs4bb4 q fs3bb3d4f4bb4eb5 h b2c3eb3a3c4eb4gs4 q gs2cs3f3g3bb3eb4 h fs2bb2d3e3gs3cs4 q eb2gs2c3d3fs3bb3 h. c3eb3fs3b3d4fs4bb4c5 q d3fs3bb3d4f4bb4f5 b2eb3fs3b3d4fs4bb4c5 g2bb2eb3g3b3cs4fs4a4 e2gs2cs3e3g3bb3eb4f4 a2cs3fs3a3c4eb4gs4b4 f2bb2eb3g3bb3eb4f4 h. c3eb3gs3c4e4fs4bb4d5 q a2fs3a3cs4fs4a4 d3fs3bb3d4f4bb4eb5f5 h f3gs3cs4f4g4bb4eb5g5 f3gs3cs4f4g4bb4eb5g5 w f3gs3cs4f4g4bb4eb5g5)) (setf rvel (rnd-sample (length (omn :pitch chords.p)) '((pp)(p)(mp)(mf)(f)(ff)))) (setf chords.d (omn-replace :velocity rvel chords.p)) (setf dictum1 '( (:len w :chd 7 :div 7 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|2|# (:len w :chd 6 :div 2 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|3|# (:len w :chd 5 :div 5 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|4|# (:len w :chd 4 :div 4 :vel nil :att nil :grp 3 :int nil :var ? :mtd nil :rhy t) #|5|# (:len h. :chd 7 :div 7 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|6|# (:len h. :chd 6 :div 3 :vel nil :att nil :grp 3 :int nil :var ? :mtd nil :rhy t) #|7|# (:len h. :chd 5 :div 5 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|8|# (:len h. :chd 4 :div 4 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|9|# (:len h :chd 7 :div 2 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|10|# (:len h :chd 6 :div 6 :vel nil :att nil :grp 3 :int nil :var ? :mtd nil :rhy t) #|11|# (:len h :chd 5 :div 3 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|12|# (:len h :chd 4 :div 4 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|13|# (:len q :chd 7 :div 4 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|14|# (:len q :chd 6 :div 6 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) #|15|# (:len q :chd 5 :div 2 :vel nil :att nil :grp 2 :int nil :var ? :mtd nil :rhy t) #|16|# (:len q :chd 4 :div 4 :vel nil :att nil :grp nil :int nil :var ? :mtd m :rhy t) ) ) (setf dictum-temp `(list (rnd-sample 8 '(w h. h q)) ; Length map (rnd-number 8 4 8) ; Chord-size map (rnd-number 8 3 7) ; Length division nil ; Velocity map nil ; Attribute map (rnd-sample 8 '((3 4) (3 4) nil)) ; Chord group (rnd-sample 8 '((0 13 1 11) nil (0 6 -6 11) nil)) ; Intervals '? ; Variant (rnd-sample 8 '(m r nil)) ; Methods (rnd-sample 8 '(nil t t nil)) ; Rhythm series )) (setf dictum2 (gen-chord-dictum (eval dictum-temp))) (setf dictum3 (gen-chord-dictum (eval dictum-temp))) (setf out1 (chord-dictum dictum1 chords.d)) (setf out2 (chord-dictum dictum2 chords.d)) (setf out3 (chord-dictum dictum3 chords.d)) (setf out4 (chord-dictum dictum1 chords.d)) (setf piano (assemble-seq chords.d out1 out2 out3 out4)) (setf split1 (ambitus-filter '(c4 c8) piano)) (setf split2 (ambitus-filter '(a0 b3) piano)) (setf piano-rh split1) (setf piano-rh.rea (assemble-seq (loop for i in piano-rh :collect (rea-mark (list i))))) (setf piano-lh split2) (setf titre (concatenate 'string "Score186-Variation-Piano-" (stringify seed) )) ;;;-------------------------------------------------------- ;;; SCORE AND LAYOUT (def-score Score186 (:title titre :subtitle "pour Piano" :composer "Stephane Boussuge" :copyright "Copyright © 2024" :key-signature 'chromatic :time-signature '((1 1 1 1) 4) :tempo 108 :layout (piano-solo-layout 'piano-rh 'piano-lh)) (piano-rh :omn piano-rh.rea ;:port "bus 6" :channel 1 :sound 'gm :program 'acoustic-grand-piano ) (piano-lh :omn piano-lh ;:port "bus 6" :channel 1 ) ) (init-seed nil)
-
lviklund reacted to opmo in Opusmodus Update 3.0.29173
A new Update 3.0.29173 with 4 new functions are now available for download.
They include SPECTRAL, CHORD-DICTUM, MAKE-CHORD-DICTUM and GEN-CHORD-DICTUM.
-
lviklund reacted to Stephane Boussuge in After The Club for Piano
Here's the code.
The original material was play by myself on piano and imported to OM as midi file then processed by OM.
AfterTheClub.opmo
-
lviklund reacted to Stephane Boussuge in Sur le Fil pour Flute et Piano
New score , "Sur le fil" for flute and piano
Sur le fil - Edit 2.wav
-
lviklund reacted to Stephane Boussuge in Invocation for Ensemble
New piece made with OM with the algorithms presented in ComposerWorkshop: 5 Opusmodus Lessons
stephaneboussuge · Invocation pour ensemble
-
lviklund reacted to Stephane Boussuge in VSL - Vienna Symphonic Library Synchron Prime Edition
Yes, here it is.
S.
SyncPrime.lisp
-
lviklund reacted to Stephane Boussuge in Strange attractor for Ensemble (Note Performer render)
Hi,
here's the Note performer rendering of Strange attractor for Ensemble.
stephaneboussuge · Strange attractor
-
lviklund reacted to Stephane Boussuge in Zoom into OM - 6. Pierrot ensemble section on the SACHER hexachord.
Hi folks,
new zoom into om:
SB.
-
-
lviklund reacted to Stephane Boussuge in Zoom Into OM - 4. gen-filter-euclidean
Hi,
Zoom into OM 4: gen-filter-euclidean is online now.
Best !
Stéphane
-
lviklund reacted to Stephane Boussuge in Zoom into OM New video: Adding articulations with pattern matching
Hi folks,
here's my new Zoom into OM video:
Best !
S.
-
lviklund reacted to Stephane Boussuge in Zoom into OM - 2. gen-tendency function experiment is online
Hi folks ,
the new Zoom into OM video session is now online:
Best
Stéphane
-
lviklund reacted to Stephane Boussuge in Zoom Into Opusmodus new serie Video online
Dear all,
the video of the fist Zoom into OM is now online.
In future, the Zoom into OM will be only in video format delivered every weekend.
Best
Stéphane
-
lviklund reacted to Stephane Boussuge in New Zoom into Opusmodus series on ComposerWorkshop.com
On Saturday, January 14, I start a new free Zoom into Opusmodus series on composerworkshop.com
This course is an every week zoom into Opusmodus, focusing on a specific point or technique each week, providing to audience a better understanding and practical view of using Opusmodus for music composition.
Composer Workshop
WWW.COMPOSERWORKSHOP.COM
Best wishes,
Stephane Boussuge
-
lviklund reacted to opmo in Quick search with control-Tab?
The new keys are cmd-= which are working on all keyboards.
-
lviklund reacted to opmo in Codecompletion in v3
Please give me and example.
I see what you mean. As you type press control-y
And for autocompletion press TAB 🙂
-
lviklund reacted to PatrickMimran in Parallel Upgrade/Install?
You are difficult , i think that what Janusz achieve almost alone as a little company is very exceptional and we should be grateful to him for the great software he made available to us instead of focusing to irrelevent points.
Patrick Mimran
-
lviklund reacted to opmo in Apple M1 Arm processor?
Opusmodus v.3.0 release next week 🙂
macOS 10.14 · 10.15 · 11 · 12 · 13
Intel & Apple silicon natively supported
-
-
lviklund reacted to opmo in Micropolyphone series
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
-
lviklund reacted to Stephane Boussuge in pitch-trajectory
Hi,
here's a function I've made for my personal usage.
May be it could be useful for some users...
Best
Stéphane
;;;=================================== ;;; PITCH-TRAJECTORY ;;;=================================== ;;; SB 1.11.21 ;;;=================================== (defun pitch-trajectory (nbpitch range tendency &key (variance 0.5) (type :around) (quantize 1/2) (smooth 1) filter-repeat seed ) (setf seed (rnd-seed seed)) (do-verbose ("pitch-trajectory :seed ~s" seed) (let* ((values (gen-tendency nbpitch tendency :variance variance :type type :seed (seed))) (smoothedval (vector-smooth smooth values)) (out (vector-to-pitch range smoothedval :quantize quantize)) ) (if filter-repeat (filter-repeat filter-repeat out) out)))) #| ;;; Tests divers (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234) (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234 :filter-repeat 1) (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234 :filter-repeat 1 :variance 1 ) (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234 :filter-repeat 1 :variance 0.1 ) (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234 :filter-repeat 1 :smooth 0.1 ) (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234 :filter-repeat 1 :quantize 1/4 ) (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234 :filter-repeat 1 :quantize 1/8 ) (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234 :filter-repeat 1 :variance 1 :quantize 1/8 ) (gen-filter-change (pitch-trajectory 32 '(c4 g5) '(0.1 1 0.1) :seed 1234) 's) |#
-
lviklund reacted to opmo in Opusmodus 2.2.26529
New Function:
search-for-pattern
This function searches for a recurring pattern in a sequence.
The result is a bar number in which the pattern has been found and a count number of the recurrence in the bar.
The pitch and interval element returns a variant recurrence if found.
(setf rh '((-s) (e f4e5 pp -s db5) (-s) (-s eb4 pp c4d5 -) (-s) (-s c4d5 pp eb4 -) (-s) (e db5 pp -s f4e5) (-s) (s gb4f5 p a5 -) (s d4ab4db5 p bb4 -) (-s a5 p gb4f5) (-s) (s b5 f gb4g5 -) (s a3bb4 f ab4 -) (s c4d5 f> eb4 -) (s db5 f> f4e5 -) (-s) (s gb4f5 p a5 d4ab4db5 bb4 -) (-s) (-s a5 pp gb4f5) (-s) (-t b2 f e3 bb3 - d5 c4eb4) (-s) (s db3 f - s. g5 -t) (s gb4f5 p) (-t a3 mp ab3 mf -s. t db5f5 f c4 -) (s e3e4 p) (-t s. d2 f -s ab5 mf) (-s) (t gb4a4 p g3 mp - b2 f e3 bb3 e3 a3 eb4 - g5 mf f4ab4 mp) (-s) (s f2 f - s. c6 -t) (s b2bb3 p) (-s t db5 mp -s. t gb5bb5 f4 f -) (t a3 f ab2 - ab2 a3) (-t f4 f gb5bb5 mf) (-t a3 mp d4ab4 c4 p bb5db6 mf) (-t b2 f3 b2 -) (t bb5db6 c5 f d4ab4 a3 p) (-s) (t b4eb5 p bb3 -) (t d4 p db3 - db3 d4) (-t bb3 p b4eb5) (-s) (-s eb5 p bb3b4 -) (-s) (e d4db5 p -s c5) (-s) (e c5 p -s d4db5) (-s) (-s bb3b4 p eb5 -) (-s) (-s ab3g4 p e4 mf) (-s c4gb4b4 f5) (-s db5 mp bb3a4) (-s) (-s eb4d5 p gb4) (-s e4 p f3g4) (-s b3 p a2bb3) (-s c5db6 pp ab5) (-s) (-s e5eb6 p g5 c4f4b4 p> gb4) (-s) (-e) (e d5ab5db6 pp)))
(search-for-pattern '(eb4 c4d5) rh :element :pitch :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh Pitches: (eb4 c4d5) Prime: bar: 4 count: 1 Retrograde: bar: 6 count: 1 bar: 16 count: 1 Inversion: none Retrograde-inversion: none .....................................................
(search-for-pattern '(eb4 c4 d5) rh :melodize t :element :pitch :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh Pitches: (eb4 c4 d5) Prime: bar: 4 count: 1 Retrograde: bar: 23 count: 1 Inversion: none Retrograde-inversion: none .....................................................
(search-for-pattern '(-8 11) rh :element :interval :melodize t :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh Intervals: (-8 11) Prime: bar: 8 count: 1 bar: 17 count: 1 Retrograde: bar: 58 count: 1 bar: 63 count: 1 Inversion: none Retrograde-inversion: none .....................................................
(search-for-pattern '(t t t t) rh :element :length :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh Lengths: (1/32 1/32 1/32 1/32) Found: bar: 31 count: 1 bar: 38 count: 1 bar: 40 count: 1 .....................................................
(search-for-pattern '(mp p mf) rh :element :velocity :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh Velocities: (mp p mf) Found: bar: 38 count: 1 .....................................................
(search-for-pattern '(stacc) rh :element :attribute :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh Attributes: (stacc) Found: none .....................................................
Search for pattern in none omn-form sequence:
(search-for-pattern '(1 2 3) '((1 2 3 1 2 3) (4 1 2 3 4 5 6))) ..................................................... Score: nil Values: (1 2 3) Found: list: 1 count: 2 list: 2 count: 1 .....................................................
series-analysis
This function searches for recurring series in a sequence.
The result is a size and count number of high recurring series and longest recurring series found in a sequence.
Searching for pitches:
(series-analysis rh :element :pitch :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh High recurrence series: found: (gb4 f5) size: 2 count: 5 Longest recurrence series: found: (c4 d5 eb4 db5 f4 e5 gb4 f5 a5 d4 ab4 db5 bb4 a5 gb4 f5) size: 16 count: 2 .....................................................
Searching for intervals:
(series-analysis rh :element :interval :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh High recurrence series: found: (5 6) size: 2 count: 6 Longest recurrence series: found: (14 -11 10 -8 11 -10 11 4 -19 6 5 -3 11 -15 11) size: 15 count: 2 .....................................................
Searching for lengths:
(series-analysis rh :element :length :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh High recurrence series: found: (1/16 -1/16) size: 2 count: 29 Longest recurrence series: found: (1/16 -1/16 1/16 1/16 -1/16 1/16 1/16 -1/16 -1/16 1/16 1/16 -1/16 1/16 1/16 -1/16 1/16 1/16 -1/16 1/16 1/16 -1/16) size: 21 count: 2 .....................................................
Searching for velocities:
(series-analysis rh :element :velocity :name "Webern, Variationen für Klavier Op.27, I, rh") ..................................................... Score: Webern, Variationen für Klavier Op.27, I, rh High recurrence series: series: (p p) size: 2 count: 18 Longest recurrence series: found: (mp f f f f f f mf mp) size: 9 count: 2 found: (p p p p p p p p p) size: 9 count: 2 .....................................................
Searching for values:
(setf population (gen-population 16 3 7)) (setf pitches (vector-to-pitch 'piano population)) (series-analysis pitches) ..................................................... Score: nil High recurrence series: found: (a0 c8) size: 2 count: 6 Longest recurrence series: found: (a0 c8 a0) size: 3 count: 2 found: (a0 c8 b7) size: 3 count: 2 .....................................................
(series-analysis (modus pitches)) ..................................................... Score: nil High recurrence series: found: (9 0) size: 2 count: 7 Longest recurrence series: found: (0 7 9 5 0) size: 5 count: 2 .....................................................
remove-series
The function REMOVE-SERIES removes a number of successive items from a list.
(remove-series 3 '(c4 cs4 fs4 f4 b4 c4)) => (f4 b4 c4) (remove-series 3 '(c4 cs4 fs4 f4 b4 c4) :from-end t) => (c4 cs4 fs4)
Best wishes, stay safe,
Janusz
-
lviklund reacted to JulioHerrlein in A.S. MAILBOX (three serial miniatures for string quartet) - Julio HERRLEIN
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
-
lviklund reacted to opmo in Automatic opening last MIDI file files in Musescore (or Sibelius, etc)
In the next update:
MUSICXML-TO-EDITOR
The MUSICXML-TO-EDITOR function opens a MusicXML file or the last compiled score (DEF-SCORE, PS or snippet) in any notation editor like Sibelius, Dorico, MuseScore etc...
In Opusmodus the default editor is set to Sibelius:
(defparameter *default-notation-editor* "Sibelius.app")
To change the default editor you need to replace the "Sibelius.app" string with the name of your own editor and paste the expression into the ‘User Source.lisp’ file which you will find in the ~/Opusmodus/Extensions directory.
For example:
(defparameter *default-notation-editor* "Dorico 3.5.app")
(defparameter *default-notation-editor* "MuseScore 3.app")
Examples:
To open the last compiled score (DEF-SCORE, PS or snippet) in the notation editor:
(musicxml-to-editor)
To open the 2nd instrument from the last compiled score (DEF-SCORE, PS or snippet) in the notation editor:
(musicxml-to-editor :instrument 2)
To open a MusicXML file in the notation editor:
(musicxml-to-editor "file-name")
To open the file in Finale:
(midi-to-editor "file-name" :application "Finale")
Should the application not open you can use the identifier keyword with the bundle-identifier.
For example the Sibelius 7.5 version identifier is "com.avid.Sibelius75"
(musicxml-to-editor "file-name" :identifier "com.avid.Sibelius75")
MIDI-TO-EDITOR
The MIDI-TO-EDITOR function opens a MIDI file or the last compiled score (DEF-SCORE, PS or snippet) in any notation editor like Sibelius, Dorico, MuseScore etc...
In Opusmodus the default editor is set to Sibelius:
(defparameter *default-notation-editor* "Sibelius.app")
To change the default editor you need to replace the "Sibelius.app" string with the name of your own editor and paste the expression into the ‘User Source.lisp’ file which you will find in the ~/Opusmodus/Extensions directory.
For example:
(defparameter *default-notation-editor* "Dorico 3.5.app")
(defparameter *default-notation-editor* "MuseScore 3.app")
Examples:
To open the last compiled score (DEF-SCORE, PS or snippet) in the notation editor:
(midi-to-editor)
To open the 2nd instrument from the last compiled score (DEF-SCORE, PS or snippet) in the notation editor:
(midi-to-editor :instrument 2)
To open MIDI file in the notation editor:
(midi-to-editor "file-name")
To open the file in Finale:
(midi-to-editor "file-name" :application "Finale")
Should the application not open you can use the identifier keyword with the bundle-identifier.
For example the Sibelius 7.5 version identifier is "com.avid.Sibelius75"
(midi-to-editor "file-name" :identifier "com.avid.Sibelius75")