Jump to content


  • Posts

  • Joined

  • Last visited


Contact Methods

Profile Information

  • Gender

Recent Profile Visitors

10,774 profile views
  1. Opusmodus is not compatible with Apple M1 cpu. We hope CCL will be ported to the M1 by the end of this year.
  2. Soon I will release the documentation for the SCORE-PLAYER and STOP-SCORE-PLAYER function.
  3. You need to download Opusmodus app for your macOS. You can't use OM for Catalina on macOS Big Sur etc... You can do the following: 1. Quit Opusmodus 2. Go to ~/Library/Caches and delete the com.opusmodus.Opusmodus folder. 3. Go to ~/Library/Preferences/ and delete the com.opusmodus.Opusmodus file. 4. Empty trash. 5. Remove any personal files or code from the ~/Opusmodus/Extensions directory if any. 6. Start OM
  4. If possibile the system will use power of 2 values and not tuplets. (/ 3/4 4) => 3/16
  5. We must wait for Apple to allow use of features such as garbage collection, threads or other dynamic features built into the language.
  6. The right mouse click on the download or the app should allow you to OPEN the app. You need to allow apps downloaded from Identified developers - Preferences/Security & Privacy. Opusmodus is notarized, stapled and validated by Apple.
  7. 2.2.26563 – Additional Functionality: COUNTERPOINT - additional dictum keyword :tonality GEN-DICTUM - additional dictum keyword :tonality Additional dictum symbol (=) - repeats last method, harmony or tonality values. In this example we assign an variabile to a list of tonalities: (setf tonality1 '((major :root 'a3 :map step :rotate 1 :variant 'i) (minor :root 'e4 :map step) (major :root 'd4 :map step :rotate 1 :variant 'ri) (minor :root 'fs4 :map step))) (counterpoint patterns '(((1 2 1 2) :methods (r - (ri dl5) (r dl2)) :tonality tonality1))) Tonality defined to all voices: ((1 2 1 2) :methods (r - (ri dl5) (r dl2)) :tonality ((major :map step))) Same as above with repeat symbol (=). The symbol (=) means repeat of the last tonality used: ((1 2 1 2) :methods (r - (ri dl5) (r dl2)) :tonality ((major :map step) = = =)) Assigning variables to a list of methods: (setf m1 '((t5 1 3) (t12 r)) m2 '(t4 (i t12 tie)) m3 '((r d7) (t9 dl3))) (counterpoint patterns '(((1 2) :methods m1) ((2 2) :methods m2) ((2 1) :methods m3)))
  8. Nothing to do with calculation or lengths or any of that sort. Doing any other way the harmonic work is lost. The voices delta time is of essence. The vertical distribution is very useful in "class composition" (number of scores base on structural template) where your harmonic stream is set and you test it with many possibile scores. Everything in the scores stays as it is: velocity, articulation and duration and only the pitch stream (one by one) will be distributed to all voices. The simplest way to understand the function is to think of music analysis.
  9. I will add a new dictum element :tonality. And you will be able to use variables in the :methods, :harmony and :tonality dictum. This will work: (setf harmony2 '((a3b3e4gs4) (b3e4gs4a3) (e4gs4a3b3)(gs4a3b3e4))) ... ((1 2 3 4) :harmony harmony2 :tempo 72) ...
  10. Harmonic voice distribution is vertical (stream). If you wish to apply a series of pitches to voices (instruments) just get count of the lengths form each of the voice and divide the pitch series accordingly - very simple.
  11. 2.1.26558 – New Functions: COLLECT-STREAM DISTRIBUTE-STREAM REPLACE-STREAM COLLECT-SCORE-INSTRUMENTS – Changes and Improvements: ELEMENT-ANALYSIS SEARCH-FOR-PATTERN SERIES-ANALYSIS STATISTIC-ANALYSIS – German Documentation: Binaere Ordnung – System Library Directory: Name changes replace-stream This function replaces pitches in all voices with a new pitch stream distribution. In the following example we replace the pitch stream from Webern "Sechs Bagatellen" with a Bach choral "bwv-0004" pitch stream. (setf webern (collect-score-instruments 'Anton-Webern-OP-9-I)) (setf bach (collect-score-instruments 'bach-bwv-0004)) (setf stream (collect-stream :pitch bach)) (replace-stream stream webern :index 'v) (ps 'vsl :sq (list v1 v2 v3 v4) :time-signature (get-time-signature vn1) :tempo tempo )
  12. :group velocity dyn (:velocity (velocity-to-dynamic x)) Check the doc velocity-to-dynamic function. (velocity-to-dynamic '(p p mp mp f ff mp mp p f)) => (p< < mp< < f< ff> mp> > p< f) (velocity-to-dynamic '(p p mp mp f ff mp mp p f) :extend t) => (p< < < < < ff> > > p< f) (velocity-to-dynamic '(p p mp mp f ff mp mp p f) :end 'pp) => (p< < mp< < f< ff> mp> > p> pp) (velocity-to-dynamic '((pppp ppp ppp pp ppp p p mp mf mf) (f ff mf mp p ppp pppp))) => ((pppp< ppp< < pp> ppp< p< < mp< mf< <) (f< ff> mf> mp> p> ppp> pppp))
  • Create New...

Important Information

Terms of Use Privacy Policy