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.

Support & Troubleshooting

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

  1. Started by Deb76,

    Bonjour Janusz, "Please make changes to your code if you have already played with the FFT functions." What code is it? I've never done that... And concretely what should be done? Best wishes. Didier

  2. Started by vpolajnar,

    Dear Opmo users, i would like to merge voices from one single list. So I would like this (not-working) merge-voice function: (setf test '((s) (-s s) (-e s))) (merge-voices test) To work like this: (merge-voices '(s) '(-s s) '(-e s)) Does anyone has an Idea how to achieve it? Best, Vili

  3. Lets assume that i render few music in the notation viewer without each time play it in the midi player , may i retrieve as midi some previous scores from the notation viewer as midi , i know that i can do it with the last one but what about the previous ones Thanks Patrick

  4. In the toy I made for learning from documented examples, my time signatures only go on for the 4 bars that realize the first list in my dictum. After that, the score just keeps re-using the 4th bar's time signature rather than repeating the same group of meter changes. Clearly, I'm misunderstanding something fundamental, so rather than describe the situation in words, if you preview the toy's score, you'll see how my 2/4 3/8 2/4 2/4 meter only gets used for the first 4 bars. How do I make it span over everything counterpoint generates? (progn (setf my-dictum '(((- 1 2 -)) ((1 - - 2)) ((2 - - 2)) ((1 2 2 1)))…

  5. (gen-chord 11 3 3 0 0 '(c4 cs4 fs4 g4 c5 f5 fs5 b5)) => (c4cs4fs4 g4c5f5 fs5b5) Specifying an ambitus of 11 means that each generated chord's ambitus will be <11, which I can see from the output. All notes from all generated chords also lie within the list of pitches. Then when I do (gen-chord 3 2 2 0 0 '(c4 cs4 fs4 g4 c5 f5 fs5 b5)) =>(c4cs4 fs4g4 c5bb4 fs5e5) The third and fourth chords generated have notes that have been adjusted to stay within the smaller ambitus of 3. What determines the adjustment? The third chord gets a bb4, which does not lie in the list of pitches, and the fourth chords gets an e5, which also doesn't lie within the list of pitch…

    • 0 replies
    • 542 views
  6. (setf my-sequence (make-omn :length (gen-loop times (rnd-sample 1 '((q s) (q q)))) :pitch (gen-repeat times my-pitches) :span :pitch)) (def-score my-score (:title "my-score" :key-signature 'chromatic :time-signature (gen-repeat times '((5 8 1) (4 4 1))) :tempo 161) In my-sequence, my bars are going to be a random sequence of 5/8 and 4/4. I want my score's time-signature to match, of course, but the code above will strictly alternate. It's been a very long time since I've worked with Lisp. I tried a few things using LET, but I just can't figure this out. How do I pass the current lengths generated by g…

  7. Started by david,

    Hi, I would like to do for example (setf ry1 '((e))) (setf c7 (make-scale 'c4 24 :alt '(9 2 -9 9 1 -8 8 2 -9 9 2 -9 9 1 -8 8 2 -8 8 2 -9 9 2))) (setf rc7 (gen-retrograde c7)) (setf ass3 (assemble-seq c7 rc7)) (setf omn3 (pitch-transpose '(0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 -2 -2 -1 -1 11 11) (gen-repeat 12 ass3))) (setf six+deux (omn-to-measure (make-omn :pitch omn3 :length ry1 :span :pitch) '(3/8))) (chordize six+deux) > Error: OMN Parse Error: fail > While executing: omn-to-ast, in process Listener-1(7). > Type cmd-. to abort, cmd-\…

  8. Started by torstenanders,

    What is the opposite of chordize? Sorry for asking that, but I cannot find it. (function-I-am-looking-for 'c4e4g4) => '(c4 e4 g4) BTW, the following could be useful as well (currently nil is returned) (pitch-to-midi 'c4e4g4) => '(60 64 67) Thanks! Best, Torsten

  9. Started by RST,

    Does anyone have any tips on this process?

  10. Hi everyone, Today, when starting OM I got a Fatal error due to a missing file (see attached). This error was caused by opening a MIDI file in Opusmodus, closing again, and then removing the file on disk. Just in case you run into the same error: For me resetting the preferences didn't work, but replacing the MIDI file with a random file of the same name did. - Jor

    • 0 replies
    • 491 views
  11. Hi, Glad that OM 3.0 is built on top of LispWorks. I am curious to know whether the licensed edition is "Professional" or "Enterprise". The latter has nice features that can add extra power to what one can do with Opusmodus. - Rangarajan

    • 0 replies
    • 599 views
  12. I'm working with OM 2.2. Now I have downloaded and installed the update for version 3 within the software. OM restarts and expects the entry of a new licence number or the trial licence. Now all I see is a spinning wheel that spins forever. It is impossible to enter a number and I have to force OM to stop. Since the new installation has overwritten my working version 2.2, I now have no up-to-date OM installation. Please give me some helpful tips. Thanks! REPORT: Mac OS Activation app tells me: Sampling process 4249 for 3 seconds with 1 millisecond of run time between samples Sampling completed, processing symbols... …

  13. There appears to be an issue in omitting dyads (chords) in the notation viewer when attaching attribute 'ped, as in this example: '((q c4 e3e4 ped) (q g3 c3c4 ped h e4 ped) (q c4 ped g4 e4e5 ped)) Similar issues occur when using the attribute-series function: (setf mat '((q c4 e3e4) (q g3 c3c4 h e4) (q c4 g4 e4e5))) (attribute-series '((- 1) (ped 2) (ped 4) (ped 1)) mat)

    • 1 reply
    • 745 views
  14. Hello! I have a series of lists which are algorithmically generated: (setf pitch-mat (vector-to-pitch '(e3 e5) (gen-noise 64 :seed 458 :type :gaussian))) (setf pch1 (flatten (rnd-order (gen-divide 8 pitch-mat)))) (setf size 12) (setf line1 (length-legato (gen-filter-euclidean size 12 1 12 pch1 's :seed 45 :velocity '(p)))) Under the code above, Line 1 evaluates as ((e gs4 p s c5 a4 e s c5 e4 e f4 s gs3 b3) (e. g4 p f4 e4 fs3) (s b4 p e4 fs4 f4 gs4 d4 bb3 bb3 b3 bb3 gs4 c4) (e. d4 p e cs4 e. f4 e fs4 gs4) (e e3 p s b3 e e5 b3 s fs4 e a3 cs4) (s fs3 p cs4 g4 fs4 gs4 fs4 c5 a4 a4 e4 e c5) (e f4 p s gs3 b3 e g4 s eb4 f4 e d4 s e4 bb3) (e c4 p s b4 b3 b4 e4 e fs4 s g…

  15. Started by HenryT,

    Hello! I would like to see this def-score produce a notation in which noteheads are on the lines, not under the lines, AND noteheads turned into crosses (:notehead :cross seems to have no effect), AND I also want to hide the accidentals (:accidentals could perhaps have an option for that...). How to you define a layout? I mean, if you want to make something that can be loaded on startup? Thanks, Henry def-score.pdf

    • 0 replies
    • 553 views
  16. In the documentation for both the gen-ma-time-series and gen-ar-time-series functions, there are similar passages: What is the SAPA book referenced here? I can't seem to find the right google query to find it. Thanks, Jon

  17. Hello all, I've done this before back in 2018, but for some reason it's not working now. I'm trying to create a library of partials of a sea sound. I can get up to the load section of the documentation and everything comes up error free, but when I try to create the library i get the following error message: Error: Parsing of logical pathname "Partials/Sea-sounds1-frames" failed at index 8 (#\/). 1 (abort) Return to top loop level 0. I am following the instructions in the import-spectral-spear instructions. Anyone have any ideas? The data files are all there and seem to be fine. Just the library isn't created. I can send t…

  18. Started by erka,

    Is it possible to open a second notation view to compare two snippets or scores side by side?

  19. Started by mark-syd,

    Hi. I've had to reinstall OM on a new old machine after the new one died unexpectedly. I downloaded the latest version and installed it. At the Activation screen I enter my key and hit activate and it fails with In FORMAT: Missing argument: "Error when checking license: In FORMAT: Missing argument: \"License ~s got error: ~s\" ^" ^ This was previously okay but now not so much. .. mark. opusmodus-bug-form

    • 0 replies
    • 593 views
  20. Hello! I'm trying to use the arp-down function on some chords and not getting any results. Are they still supported? (setf protochords (gen-repeat 5 (respell '(eb2eb4g4bb4 arp-down c2c4e4ab4 ab2eb4ab4b4 arp-down d2d4f4a4 arp-down bb2d4f4bb4 arp-down g2eb4g4b4 arp-down c2c4eb4g4 arp-down ab2eb4ab4b4 arp-down d2d4gb4a4 arp-down bb2d4gb4bb4 arp-down g2d4g4bb4 arp-down c2c4eb4g4 arp-down ab2c4eb4ab4 arp-down f2db4f4a4 arp-down bb2db4f4bb4 arp-down g2d4g4bb4 arp-down eb2eb4gb4bb4 arp-down ab2c4eb4ab4 arp-down f2db4f4a4 arp-down d2d4f4a4 arp-down g2d4g4bb4 arp-down eb2eb4g4bb4 arp-down)))) Thanks! Tom

  21. I've downloaded the trial version of Opusmodus, and it looks like exactly what I'm looking for. I'm having trouble running almost all of the code examples though. (M1 MacBook, Ventura 13.1) For example, I copied the score on this page and pasted it into a new opmo file. (setf pitches '(c4 cs4 fs4 g4 c5)) (setf p-transp (pitch-transpose (pitch-to-integer pitches) (gen-repeat 5 (list pitches)))) (setf r-transp (gen-retrograde p-transp :flatten t)) (setf c-ambitus (ambitus '(c2 c3) p-transp)) (setf p-ambitus (ambitus '(c2 c3) p-transp :type :flat-invert)) (setf s-ambitus (ambitus '((c2 c3) (b2 f3) (g3 cs4) (fs4 g5) (c4 c5)) p-transp)) (setf …

  22. Started by Timothy Rolls,

    I just upgraded to 3.0 and I can't get the LoadCLM instruments.lisp file to load. Am I supposed to do that from within Opusmodus, or am I supposed to do that from in the Terminal? In version 2, it was done from within Opusmodus. I followed the instructions as best I could. If it's in terminal, how do I get to the directory, since terminal doesn't accept spaces in folder names? I'm on Mac OS 13.1, M1 processor Macbook Pro. Thank you, Tim

  23. Started by paul,

    The notes in the preview score say that :output :score will give you a def-score form in the listener but this is always give me the following error shown in the picture below. I don't know what I am doing exactly. It would be great if this works as notated in the function guidlines. Any help would be greatly appratiated. thanks!

  24. Started by fdsdb,

    Hi All, I am on OsX 10.13.6, High Sierra, I have encountered a phenomenon that I think can be useful to share: in using CLM code, the system sample rate setting sets to 48000, so if after that I use SC code I have errors and it does not run. So it is necessary to go to system settings and set again the sample rate to 44100. You can use MIDI Audio Setup --> Audio devices for that. Best Fabio

    • 0 replies
    • 1.1k views
  25. Started by AM,

    dear all as so often i try out strange things 🙂 i switch on midi-entry, read the pitches which i enter from a keyboard. everything clear so far. I am now trying to do this in a 2-second-loop (with sleep-function), so that variable X would always be assigned new values. at the end of the loop sequence, however, X is NIL. only when I evaluate X again are the values assigned. (see video) (the idea is... to IMPORT live-midi into a "realtime-process") some ideas? thanx andré clip.mov


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.