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.

Support & Troubleshooting

Discuss anything related to Opusmodus that doesn't fit in another sub-forum here!

  1. I'm ok (not great) with music and algorithms, but I know *nothing* about Lisp, so please excuse me if I'm completely off base... I'd like to set up a system where I can tag parts of midi files and then use random weights to create new pieces that are similar to the source material. For example, I'd like to create a new melody from the openings of three different pieces where each of the source motifs are tagged with something like "dark" "rhythmic" "complex" In my day job the way I'd do this is to have all the motifs, melodies, basslines, chord progressions, descriptive tags, etc. stored in a database, and I'd run a query: "SELECT * from motifs WHE…

  2. Started by Rangarajan,

    In the file "Sextet - Pitch.opmo", I noticed that the function "pre-span" is used. However, I cannot find its documentation. Is it one of the "developer" functions to be documented in Ver 2.0? -Rangarajan

    • 0 replies
    • 1.2k views
  3. Started by Rangarajan,

    I have a OMN. I want to replace one of the lengths with rest, randomly. Is there a function to do this? Suppose I have a list of lengths either in the form '(1/4 1/4 1/4 1/4) or '(q q q q), is it correct to replace one of the elements randomly with '- to mean rest? Regards, Rangarajan

    • 8 replies
    • 2.4k views
  4. Started by julio d'escrivan,

    Hi, Sorry if this is too basic!! I'm trying really to understand details in the order of evaluation. In a recursive line, does the inner nest always produce ALL of its elements before passing the list to the outer nest? in the example below I think this is what happens: 1. randomize-octaves in the list x, the randomise operates on each element of the list in turn and thus creates a new list 2. evaluate that 5 times, thus creating five list with different octave randomisation because the seed is nil 3. the 5 lists are modified where each sequential element in a list may be repeated three times for each element that is not repeate…

  5. Started by Rangarajan,

    I am amazed by such frequent and swift releases of Opusmodus! I have never seen this kind of product commitment and support from any other company so far. The product continues to become better day by day. Best wishes to Janusz and team for such a great product and even greater support! Regards, Rangarajan

  6. Hi J, (or anybody else who knows?) I am trying to find what function generates a written out accelerando... in other words something like this starting in whole notes and down to thirty seconds: w h h e e e e s s s s s s s s t t t t t t t t t t t t t t t t or involving tuplets also, or better still, starting from a given rhythmic value (lengths in opmo?) a geometric progression of lengths. In Supercollider, we use Pgeom and give it a start and end and a multiplier and this allows fro some great accell, stutter effects. What would be the equivalent here? Thanks! Julio

  7. Hi J, I am trying to run the distributive-square examples, evaluating all the previous lines before hand (with the exception of the ones that show the output!) so first I run: (setf ds-i2 (distributive-square (interference2 '(3 2)))) ;;then... (gen-length '8 ds-i2) and I get this: Error: The value 8 is not of the expected type list. > While executing: gen-length, in process Listener-1(7). > Type cmd-. to abort, cmd-\ for a list of available restarts. > Type :? for other options. Also, the argument and values list for this function only lists a sequence and nothing else... I imagine that the '8…

    • 3 replies
    • 1.9k views
  8. Started by EAIP,

    Hi, In the following code the mf of the first bar won't show up. Any other dynamic symbol in the first bar will work as expected. Are you able to reproduce this on your system? All the best, Erik (setf omn (make-omn :length '((1/8 1/8) (1/2 1/2) (1 1)) :pitch '((g4) (d5) (f5)) :velocity '((mf) (f) (mf)) ) ) => ((e g4 g4) (h d5 f d5) (w f5 mf f5)) ; no dynamic symb in first bar! (setf omn (make-omn :length '((1/8 1/8) (1/2 1/2) (1 1)) :pitch '((g4) (d5) (f5)) :velocity '((pp) (f) (mf)) ) ) => ((e g4 pp g4) (h d5 f d5) (w…

    • 1 reply
    • 1.6k views
  9. Hi J, I am trying to arpeggiate some chords put together algorithmically, I am following the example document for arpeggios, no2. And adding arp at the articulation keyword for make-omn, but I get an error, so I am wondering if it is just not possible to arpeggiate chords that are changing in the amount of sustain the notes have? (what you call 'duration' in OM language)). My basic premise is that I cannot change the original rhythmic positions of the coreCall set below, yet I want to create different orderings with different octaves and make them sound more legato: see here: ;;identified the core call notes to use as material for c…

  10. Hi J, I am getting this weird behaviour from the scripting environment. I am simply making a new .opmo doc, then pasting a little code from a master .opmo document into it, then if I switch to the master doc and then come back to the new one, it appears blank, and does not allow me to click or add any text to it, as if it were locked. I am using the version from late february, as opposed to the one you rolled out a couple of days ago. Also I am on latest MacOS. This is driving me crazy! thanks, Julio

  11. Started by jens,

    Hi, It seems as though the disassemble-omn function and (omn :articulation) can't handle simultaneous articulations (ex. trem+stacc). For example, (omn :articulation (make-omn :length '(3/8 1/8) :pitch (list s e) :velocity '(p< f) :articulation '(trem+gliss - ))) returns (trem -) but should return (trem+gliss -). My apologies if this issue has already been addressed.

    • 2 replies
    • 1.7k views
  12. Started by Rangarajan,

    Hi, I see that there is a family of functions for computing "unique" elements, sequences, etc. Just wondering if there is a function to pick a random element from a list of lists, such that the result has no duplicates. For example, assuming the function is called "select-unique-elements", I am expecting this behaviour: (select-unique-elements '((1 2 3) (2 4) (3 5))) => (1 2 3) or (1 4 5) or (2 4 3) etc. That is, each time I call this function it will return a possibly different list with one element chosen from each sub-list, but preserving uniqueness in the result. Regards, Rangarajan

    • 11 replies
    • 3.1k views
  13. Started by Rangarajan,

    Hi, I am getting "Error: Unbound variable ..." when I try to use the following modes: phrygian-b4, locrian-b4, blues-scal, blues-scale6, raga-zill, algeria, ewish-scale1, raga-kanakambariraga-kanakambari I checked and found that the last 3 are incorrectly spelt: 'algeria' should be 'algerian' 'ewish-scale1' should be 'jewish-scale1' 'raga-kanakambariraga-kanakambari' should be 'raga-kanakambari' But I do not know about the others. Please check. Regards, Rangarajan

    • 3 replies
    • 1.8k views
  14. Started by julio d'escrivan,

    Hi again! :) I am setting these pitches: (setf pitchOnlyFirstCall '(bb5 bb5 bb5 bb5 gb5 db6 f6 eb6 bb5 eb5 ab5 gb5 db6 f6 eb6 bb5 eb5 ab5 eb5 eb5 eb5 eb5)) then I want to reverse and transpose down so I do this: (setf leftHand (pitch-transpose 'c0 (nreverse pitchOnlyFirstCall)) ) and the first time I evaluate the snippet I get what I want, the second time I evaluate the snippet I only get one note... So, The helpfile says that nreverse 'destroys the argument', does that mean that the variable I just passed becomes unassigned and this is why I get only one note on second eval? Is there a way to reverse a l…

  15. Hi Janusz or guys who may help, I am doing this: (setf loopthing (gen-eval 8 '(randomize-octaves '(gb1 eb8) '(gb2cs3 e4as3 g4 eb5) ) )) and I want to map the resulting randomisations to a rhythm list, as in the example of the help-file... so (span loopthing '(1/80 3/64 13/192 -1/120 871/1920)) but all I get is the rhythm list playing a middle C... not the loopthing list, I tried evaluating it separately and just plugging in the list directly to see if it was due to using the gen-eval, but still doesn't work... I also tried inserting (omn :pitch loopthing) in case I needed to present it as a pitch only list? …

  16. a minor correction suggested... I know this is fairly basic, but it made a beginner like me do a double take... this is the helpfile: but further down it says... yet 'size' (which is in the type for a &key) is not a valid keyword, it refers to 'number'... thought it may help others... must be a nightmare keeping all help-files consistent, my sympathies! best, Julio

  17. Hi, I am encountering a funny problem with the following score. As shown in the comments, notes played in some bars are not as per the supplied pitches list. Strangely, the musicxml notation and what is played agree! Request your comment on what might be wrong. ;;; --------------- ;;; Notes played in the last 2 bars are not as per this list (setf m1 '((c4) (e4) (b4) (d5) (g4) (g4) (c5 d4 c5 c5 c5) (a4 d4 a4 e5 a4))) (setf rhy1 '((-w) (-w) (-w) (-w) (-w) (-w) (1/4 1/4 1/8 1/8 1/4) (1/4 1/4 1/8 1/8 1/4))) ;;; Notes played in the 6th and 8th bars are not as per this list (setf m2 '((c4 g4 c4 f4 f4) (e4 d4 c4 d4 f4) (b4…

    • 6 replies
    • 2.2k views
  18. Started by AM,

    when i evaluate this: (make-omn :pitch '(c5) :length '(3/12 -1/12 4/12 -1/20 3/20 1/20) :velocity '(mf)) the result is wrong (look at (3/12 -1/12 4/12).... but i would like to notate something like valeur ajoutée isn't it possible? thanx a.

    • 7 replies
    • 3k views
  19. Hi, When I was examining the various modes/scales in the pre-defined 'modes library, I noticed that the following modes all have the same interval as 'major scale: (raga-shankarabharanam mela-shankarabharanam xin ararai rast peruvian-major dastgah-mahur dastgah-rast-panjgah hypolydian-medieval lydian-greek ionian major) In other words, the expression: (pitch-to-interval (expand-tonality '(c4 <a-mode>))) returns the same interval list for all the above modes. I can understand that 'ionian' is the same as 'major', but finding the others to be the same as major scale was a bit surprising. Looks like other musical cultures suc…

    • 1 reply
    • 1.4k views
  20. Started by Rangarajan,

    The filter-tie function allows the keyword parameter :omn. On initial reading, I thought this would return the result in OMN form if :omn t is supplied as the option. But that is not the case. Just wondering if changing the behaviour slightly would be useful. For example, (filter-tie (list '(c4 c4 c4 d4 d4 e4) '(e e e e e e)) :omn t) => (q. c4 q d4 e e4) instead of ((c4 d4 e4) (q. q e)) If :omn nil (the default), then the result would be ((c4 d4 e4) (q. q e)) -Rangarajan

  21. Started by Rangarajan,

    The documentation for the function "gen-markov-from-transitions" names the function as "gen-markov-form-transitions". Please check and correct. Rangarajan

    • 1 reply
    • 1.4k views
  22. Started by Rangarajan,

    Hi, In the documentation of "Tonalities", I can see a large number of interesting pre-defined tonalities. Is this collection exposed as a "Library", or in some other manner? How can I programmatically access these tonalities? Regards, Rangarajan

    • 4 replies
    • 1.8k views
  23. Started by Rangarajan,

    Just as compile-score allows us to create a midi output file of the score, is there a way to get mp3 file output? Or should I use some other software for it? Regards, Rangarajan

    • 4 replies
    • 2.1k views
  24. Started by AM,

    what's new/different in Opusmodus 1.1.18273 thanx a.

    • 1 reply
    • 1.4k views
  25. Started by Rangarajan,

    Hi, While single-line comments are accepted within def-score, block comments are not! When I comment out multiple instruments using block comments in def-score, I get compiler error when I "Evaluate and Play". Is this a known issue? Regards, Rangarajan

    • 4 replies
    • 2.1k views

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

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.