Jump to content
View in the app

A better way to browse. Learn more.

Opusmodus

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Stephane Boussuge

Moderators
  • Joined

  • Last visited

  1. Hi Julio, One possibility is to use the MAYBE-SECTION function within your function. However, Janusz has more powerful tricks to add :section and :exclude in functions. 😊 Additionally, I believe it would be beneficial to include a slot for possible intervals in this function, similar to the ones we have in the length-divide and length-subdivision functions. Best Stéphane
  2.    Vani reacted to a post in a topic: Logic Pro X 48 Midi Instruments Template
  3. close and restart Opusmodus.
  4.    Vani reacted to a post in a topic: Easter Sales on all courses
  5. @torstenanders is the only one who can help I guess...
  6. Did you copy the entire folder I provided? I mean, not just the cluster-engine, but the entire folder with all its dependencies?
  7.    etu reacted to a post in a topic: Constraint Programming in Opusmodus
  8. It’s beautiful, even though it’s not a fugue in the traditional sense, but it’s incredibly intriguing. The code is quite intriguing, and I intend to delve deeper into it when I have some time. Thank you very much for this very interesting example. I will definitely study it more closely soon.
  9. Here's an example code you probably can compile as a test because it works on my side: ;;; Constraint Patterns Generations example. ;;; Useful for couterpoint function or ;;; any cells based workflow. ;;; ------------------------------------------- (asdf:load-system :tot) ;;; Domaines ;; Rythme (setf r-domain (omn-encode '((s s s s)(e e)(q)(h)))) ;; Notes (setf harmo (make-scale 'a3 14 :alt '(2 1))) (setf p-domain (mclist (pitch-to-midi harmo))) ;;; Cluster Gen (setf cluster-out (cr::cluster-engine ;; Number of variables in result 24 ;; Rules (ce:rules->cluster (cr:no-direct-repetition :voices '(0)) (cr:no-repetition :voices '(0) :window 3) (cr:set-intervals :voices '(0) :intervals '(1 2 3 4 6 7)) (cr:resolve-skips :voices '(0) :skip-size 5) (cr:min/max-interval :voices '(0) :max-interval 4 :min-interval 1) (cr:durations-control-intervals :voices '(0) :rel-factor 16 :acc-factor 16) ) ;; Meter '((3 4)) ;; Variable domains (list ;Voice 1 ;; Possible length values for 1st part (rhythmic domain) r-domain ;; Possible MIDI pitches for 1st part (pitch domain) p-domain ))) (setf patterns (omn-to-time-signature (make-omn :pitch (midi-to-pitch (second cluster-out)) :length (first cluster-out) ) (third cluster-out)))
  10.    Cliff reacted to a post in a topic: brownian bridge ornaments
  11. I think you didn't install the right part, please look carefully on the Torsten Github or alternatively you can put this common-lisp folder (for Mac) in your root folder to be sure you will have the right version of the cluster engine. File attached to this post. common-lisp.zip
  12. The OM function length-divide is also an option...
  13.    Stephane Boussuge reacted to a post in a topic: "Voice-leading" monophonic lines
  14.    Stephane Boussuge reacted to a post in a topic: List Generation and Randomization
  15.    Stephane Boussuge reacted to a post in a topic: Windows Port?
  16. Janusz is absolutely true, you are quoting functions, remember, quotes are only for data, never for functions.
  17.    Cliff reacted to a post in a topic: "Voice-leading" monophonic lines
  18. Extremely interesting topic! Unfortunately, I’m currently in travel but will revisit it when I return to Vienna. This kind of constraint also reminded me of constraint programming. We have a very good tool for constraint programming: the Cluster Engine from Orjan Sandred, which was ported to Opusmodus by @torstenanders. I use it occasionally, and it’s a very good tool as well!
  19.    Stephane Boussuge reacted to a post in a topic: gen-binary-solo
  20. I agree, very interesting and I didn't know this possible monophonic usage of closest path. Generally I use vector-smooth function to get more melodic material from vectors but this alternative is very interesting, thank you. (pitch-list-plot (vector-to-pitch '(c3 c6) (vector-smooth 0.02 (gen-noise 32 :seed 42))))
  21. This is because the 'b. This works and give results for both 'a and 'b forms: (pcs-subcomplex '(3 4) (pcs '6-2) :forte)
  22. I completely understand and find this arrow concept absolutely fascinating.
  23. Personally , I like to use encapsulation: (setf var (ambitus '(c4 c6) (tonality-map '(major :root 'eb3 :map 'octave) (pitch-transpose 12 (vector-to-pitch '(c3 c5) (vector-smooth 0.3 (gen-noise 8))))))) => (eb4 eb4 d4 bb4 eb5 eb5 bb4 d5)

Copyright © 2014-2026 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.