Skip 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.

Function Examples

Functions, arguments, values and results

  1. Started by born,

    Hello, when using vector-smooth my tendencies start around 0.1 but end >0.2 (should be around 0.1 as well) How can I prevent that? (setf tend-list '(0.1 0.4 0.2 0.6 0.5 0.5 0.9 0.7 0.7 1 0.9 1.2 0.9 0.9 0.5 0.5 0.6 0.2 0.2 0.1)) (list-plot (setf dur-mults (loop for i in durlens with seed = (init-seed 123) collect (vector-smooth 0.3 (gen-tendency i tend-list :variance 0.2)))) :zero-based t :join-points t) Thanks for help, Achim

  2. Ciao, Opusmoders All previous rewrite functions used in conjunction for transformations. Ciao ! https://opusmodus.com/forums/topic/4097-rewrite-len-function/#comment-14209 (setf expressao-omn '((s eb4 d4 e a4 -s s eb4) (h eb4 a4 -s eb4 d4 -s) (e. d4 a4 eb4 d4) (-q e f4 s c5 qs fs4))) (rewrite-pit (rewrite-dyn (rewrite-len expressao-omn '(h -e s q -h q -q s s s)) '(pp< ff mf fff p < < fff ppp fff mf fff p)) '(c4 g5)) https://opusmodus.com/forums/topic/4097-rewrite-len-function/#comment-14209

  3. Started by JulioHerrlein,

    Last one... Time to go to bed in Brasil Function to rewrite lengths BEst, Julio (defun rewrite-len (expressao-omn new-lengths-list) "Substitui os comprimentos (lengths) de uma expressão OMN por uma lista fornecida, repetindo-a ciclicamente e mantendo a estrutura de sublistas original." (let* ((dis (disassemble-omn expressao-omn)) ;; Desmonta a expressão original [2] (old-pit (getf dis :pitch)) ;; Extrai as alturas [4] (old-vel (getf dis :velocity)) ;; Extrai as velocidades [4] (old-art (getf dis :articulation)) ;; Extrai as articulações [4] ;; 1. Mapeia a estru…

    • 0 replies
    • 47 views
  4. Started by JulioHerrlein,

    Hey, Opusmoders Here is one more function in the style of the previous one (rewrite-dyn). This time to rewrite pitches. (defun rewrite-pit (expressao-omn pitch-list) "Substitui as alturas de uma expressão OMN por uma lista customizada, fazendo a repetição cíclica se a lista for menor que o número de notas." (let* ((dis (disassemble-omn expressao-omn)) ;; Desmonta a expressão [3, 6] (pitches (getf dis :pitch)) ;; Extrai alturas atuais (lengths (getf dis :length)) ;; Extrai durações (inclui rests) [7] (velocities (getf dis :velocity)) ;; Extrai dinâmicas [8] (articulatio…

    • 0 replies
    • 33 views
  5. Started by JulioHerrlein,

    Hello, Opusmoders This is a very cool and easy to use function to rewrite dynamics. Check it out. Hope you like it ! Best, Julio (defun rewrite-dyn (expressao-omn dynamic-list) "Substitui as dinâmicas de uma expressão OMN por uma lista customizada, fazendo a rotação cíclica se a lista for menor que o número de notas." (let* ((dis (disassemble-omn expressao-omn)) ; [2, 3] (pitches (getf dis :pitch)) (lengths (getf dis :length)) (articulations (getf dis :articulation)) ;; 1. Mapeia a estrutura de cada sublista (quantidade de notas por compasso) (counts (mapcar #'length pitches)) ; [6] ;; 2.…

    • 0 replies
    • 37 views
  6. Started by JulioHerrlein,

    Hello, Opusmoders Sometime ago I was here searching for a function to displace rhtyhms by a length amount, not just like a list rotation. Now I did this prototype. I think that this can be very useful, specially inside counterpoint dictums where patterns can be displaced ( I did not tried inside the counterpoint function but seems like it will work). Hope it can be useful to you too. All the best, Julio (defun shift-rhythm (rhythm shift-length &key span) ;"Moves rhythmic material by inserting a pause at the beginning. ;Use length-adjust to ensure the result fits within the span." (let* ((rhy (flatten rhythm)) ;;;; Ensures a linear list for processing ;; Adds the …

    • 0 replies
    • 51 views
  7. Hello, Opusmoders I did (with a little help of Notebooklm) this cool function whose function is to concatenate 2 diferent lists with sublists, merging the first sublist of the list A with the first sublist of list B, with the options 1) to choose how many elements of each list to use; and 2) the possibility of not only mix different numbers of elements in each list but also the possibility to select the starting element of the list to pick elements. 3) The function also consider each list as a rotating element: for example, if 5 elements are required from the list (1 2 3), starting in the first element, the result will be (1 2 3 1 2), if the start is on the second eleme…

    • 0 replies
    • 96 views
  8. Does anyone has an idea how to get rid of all successive repeated dynamics and attributes? Thanks a lot, Achim ((-w) (-w) (w cs6 <mp> -14c) (w c6 <mp> -31c) (w c6 <mp> -31c) (w c6 <mp> -31c) (w c6 <mp> -31c) (w c6 <mp> -31c) (w cs6 <mp> -49c) (w cs6 <mp> -49c) (w cs6 <mp> -49c) (w cs6 <mp> -49c) (w cs6 <mp> 5c) (w cs6 <mp> 5c) (w cs6 <mp> 5c) (w c6 <mp>) (w c6 <mp> 2c) (w c6 <mp> 2c) (w c6 <mp> 2c) (w c6 <mp> 2c) (w c6 <mp> 5c) (w c6 <mp> 5c) (w c6 <mp> 5c) (w a5 <mp> -31c) (w a5 <mp> -31c) (w a5 <mp> -31c) (w gs5 <mp> -14c…

  9. Started by born,

    Using this expression (harmonics 'a2 8 :quantize nil :type :hertz) I am getting (110.0 220.0 329.62756 440.0 546.4174 659.2551 772.751 880.0) but I am expecting (110.0 220.0 330.0 440.0 550.0 660.0 770.0 880.0) What am I understanding wrong? Best, Achim

  10. Started by born,

    Are there any examples about how to apply the different features in the :tempo keyword in def-score? Achim

  11. Hi alltogether, with this post, I want to share with you my Math-N-Tonic-Library creators. They use 2 different naming shemes and are compiled in two lisp files. They have been algorithmically created in order to collect all the mathematically possible tonalities: ;; Complete Summary ;; ============================================================== ;; Ditonic‑note scales: 66 ;; Tritonic‑note scales: 220 ;; Tetratonic‑note scales: 495 ;; Pentatonic‑note scales: 792 ;; Hexatonic‑note scales: 924 ;; Heptatonic‑note scales: 792 ;; Octatonic‑note scales: 495 ;; Nonatonic‑note scales: 220 ;; Decatonic‑note scales: 66 ;; Undecatonic‑note scales: 12 ;; Total mathematical tonali…

  12. Started by JulioHerrlein,

    Dear Friends, With the audio tools in windows can we make some breakbeats, like chopping audio files, like beat slicing and starting in different parts of the audio file, like the video below (serato sample plugin), and also sync accurately with midi parts in Opusmodus ? All the best ! Julio SOME HISTORY Here are some breakbeats (amen sample) If possible, would be great to includ a sample of the amen beat inside the documentation with an example of breakbeat. This function can also serve to launch samples of any nature for electroacoustic or mixed music.

  13. Hi, I have a valid rhythmic notation (quarter notes, eighth notes, triplets, etc.) where only quintuplets and septuplets display incorrectly as soon as rests are included in the group (-5q, -7q). Triplets don't cause any problems, but for 5 and 7, the grouping breaks (incorrect braces), as if the engine is closing/reopening the tuplets. Is this a known limitation of how rests are handled within odd-numbered tuplets (5, 7) in OMN, or is there a strict rule to follow to avoid this behavior? Thank you for your help. (setf accent '((q -q -q ) (e -e -e e -e -e) (3q -3q -3q 3q -3q -3q 3q -3q -3q) (s -s -s s -s -s s -s -…

  14. Started by born,

    I am reading the documentation of "harmonics": "The coeff keyword can be used to manipulate the pitches by adjusting the coefficients of the sine waves that correspond to each note. For example, by increasing the coefficient of the sine wave that corresponds to the fundamental frequency of a note, the pitch of that note can be raised. Similarly, by decreasing the coefficient of a higher harmonic, the pitch can be lowered. The use of coefficients in music theory is a mathematical approach to analysing and manipulating the frequency of a note." I have following questions: What is "the sine wave corresponding to each note"? I cannot change the coefficient of higher harmonics…

  15. Started by jesele,

    You can create the infinity series from binary numbers. ones are added, zeros reverse sign. Jesper (defun inf-ser (n &optional (offset 0) &aux tmp) (loop for i to (1- n) do (setf tmp 0) (loop for bin in (decimal-to-binary i) do (setf tmp (if (zerop bin) (- tmp) (+ tmp bin)))) ;(format t "~B = ~D~%" i tmp) collect (+ tmp offset))) (integer-to-pitch (inf-ser 128)) (integer-to-pitch (inf-ser 128 12))

  16. Hey, people ! I´m doing a function to extract the complementary set of notes. For example: 1) Specify a set of notes, like a chord, Dm7 (setf note-list '(d5 f5 a5 c6)) Specify a tonality, like Cmajor or D dorian (same notes) (expand-tonality '(c5 major)) Now, I want a function that gives me all the other available notes from the mode, except the chord tones (the first set of notes). So, this function gives me exactly what I need (for ONE tonality at a time and ONE chord at a time): (let ((rem (expand-tonality '(c5 major))) (super (ambitus '(c5 b5) note-list))) (loop for i in super …

  17. Dear All, Here is a proto-function idea... If Janusz or someone are interested in transform it in a core function, I think it could be interesting... Sometimes I like to take a motive or chorale texture and use it to make a kind of accompaniment or texture ala Reich. I created my way to do it, but it could be perfected in a better function and integrated in the core system. Here is the idea: ;; Motive (setf mat '(h c4 q. d4 e e4 -q w c4 h d4 q e4 -q)) ;; small value (setf fig-value '(e)) The "proto-function". What I could not achieve was how to make it respect the rests in the motive, but it works for generating the texture, respecting the pitch and length boundar…

  18. Started by Vani,

    Hello, I found a function that is missing documentation: 2d-matrix->linearized-upper-trangular. Would you mind explaining this briefly? I hope to see the documentation added to the next update. Thanks!

    • 0 replies
    • 135 views
  19. As hobbyist I am trying to learn how Jazz works and then explore what I have learned using OM for composition. For the composers and musicians among you following might seem trivial, so this post is probably only relevant for beginners like me (except for the question at the end of the post) But for me it's all new and exploring and discovering new concepts is fascinating. OM helps me a lot as learning tool to conceptualize and reuse in a principled, reproducible manner. In Jazz for piano comping, the use of rootless shell-voicings is common as far as I have learned. I have learned in a text book (Jeremy Siskind, Jazz Band Pianist), that typically for chord comping the …

  20. Started by auedpo,

    Hi All, I am taking my first steps into Opus Modus, and it is a big change from using Open Music. I'm trying not to miss the visual environment, which has always worked better for my brain, but there are definitely growing pains along the way. I am trying to complete a fairly simple task, but I just cannot figure out which functions allow me to do so. I want to complete the following; Create a list B of length n and fill that list with elements randomly selected from list A. If list A contains ((1 2) (3 4) (5 6) (7 8) (9 0)) And list B is length 2; We should be able to generate list B that contains two selections of those tuples now in their own list Ex; A = ((3 4) (9…

  21. Started by Cliff,

    I just want to share a AHA-moment and nothing more than my admiration for OM... The function closest-path is documented to voice-lead chords, which already in my view is a great use-case. But do you know that it also helps to get a cohesive monophonic line from otherwise pretty scattered pitch collection as its often the result of a stochastic generation processes ? Most of you will know this already, having a musician background and it might feel trivial (the mere name voice-leading already indicates it). So I am writing this more to share my surprise and learning for those coming rather from „outside“. I was so nudged by the docu which covers chords, so that I did n…

  22. Started by Cliff,

    As far as I have read OMs excellent documentation, there's no function which helps to prepare a binary-list for driving a do-timeline to play/pause solo-instruments with occasional multiplay, where a couple of constraints like probability and max multplay can be defined and one of many possible solutions is returned. I tried with help of chat-gpt to code to do this. Although tests look plausible I believe this is not a well coded function (robustness, edge cases, seed handling, etc). Any thoughts ? ;;; ;;; n solo-instruments play in a band for l periods ;;; the ratio of multiplay is defined by r ;;; max-n instruments can play together ;;; ;;; Function which supports de…

  23. Followup on post: https://opusmodus.com/forums/topic/3989-om-lydian-chromatic-concept-of-tonal-organization-george-russell/ According to LCCOTO chords which are derived from a parent scale have a nice property as they all lean on the same lydian parent-scale- tonic, hence may feel similar in harmonic environment. This may be used for various compositional purposes. Example: A G7 -> Cmaj7 cadence is in LCCOTO basically a movement of F-lydian-parent-scale-tonic to C-lydian-parent-scale-tonic. Moving clockwise on circle of fifths with regards to parent scales tonic. G7 is a chord on mode 2 in f-lydian. Cmaj7 is chord on mode 1 in c-lydian. According to LCCOTO it should…

  24. Followup on post: https://opusmodus.com/forums/topic/3989-om-lydian-chromatic-concept-of-tonal-organization-george-russell/ Here's a first attempt (I am a LISP beginner) for a function which finds the parent scale for a list of chords. ;;; --------------------------------------------------------------------------- ;;; ;;; Find a Lydian Parent Scale for a Melody over a given chord list ;;; ;;; (Lydian Chromatic Scale Concept, George Russell) ;;; ;;; The returned list fulfills the condition that all chord pitches ;;; are included in the scales. ;;; ;;; By default only the 12 lydian scales are queried. ;;; One can supply additional scales according to Russells con…

  25. Started by david,

    Hi, Is there a complete list of chords already included in OM? I would like to write, for example, am7b5/maj7 (a c eb g#), but it doesn't work. Thank you for your help.


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

Account

Navigation

Search

Search

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.