Skip to content
View in the app

A better way to browse. Learn more.

Opusmodus Community

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.

Featured Replies

Dear creators of Opusmodus,

I'm currently trying out the demo, so I'm in the first stages of getting to know OM.

I'm trying to do a very simple referral to a variable to make an OMN-snippet, but I get all sorts of error codes from the listener. Even to the point that copying some of the tutorial code, and replacing the names of the variables makes the code generate errors...?

Here's the example, so any help or suggestion is welcome:

(example is based on 'stage2'-code, I only replaced the names of the variables):

(setf p_arp0 '(c4 cs4 fs4 g4 c5))
(setf l_arp0 (span p_arp0 '(e)))
(setf d_arp0 '(p< < < < ff))

(setf arpeg0
      (make-omn
       :length l_arp0
       :pitch p_arp0
       :velocity d_arp0))

when I evaluate the snippet with the original variables, being 'pitches', 'length' and so on, it works. When I use my own names, however, like in the pasted example, it gives the following error code:

"> Error: OMN Parse Error: (annotate (parse-omn-audition-phrase) (fail nil ((setf l_arp0 (span p_arp0 '(e))) (setf d_arp0 '(p< < < < ff)) (setf arpeg0 (make-omn length l_arp0 pitch p_arp0 velocity d_arp0)))))
> While executing: omn-audition-to-ast, in process Listener-1(6).
> Type cmd-. to abort, cmd-\ for a list of available restarts.
> Type :? for other options.
5 >"

or it shows just any previous evaluation in the Assistant (ignoring the fact that I changed some notes,...)

Another case:

this example works:

(setf arp1 '(w eb4e4gs4a4d5 arp))

this doesn't:

(setf p_arp1 '(eb4e4gs4a4d5)
(setf arp1 '(w p_arp1 arp))

Is there a certain way to name variables? Is there any interference with program-keywords? It would be a vital function, since I compose on paper mostly using a system of variable-substition to keep economy in my material.

Could you please help. I can't find anywhere in the documentation what I'm doing wrong. I'm seriously interested in using/buying Opusmodus...

Greetings from Brussels, Joost Van kerkhoven

The snippet notation and audition is working and I don't see here any error.

To hear or display the arpeg0 expression, evaluate the p_arp0l_arp0 and d_arp0 first, then select the expression:

(setf p_arp0 '(c4 cs4 fs4 g4 c5))
(setf l_arp0 (span p_arp0 '(e)))
(setf d_arp0 '(p< < < < ff))

(setf arpeg0
      (make-omn
       :length l_arp0
       :pitch p_arp0
       :velocity d_arp0))

You can't put a variable into OMN form list.

(setf p_arp1 '(eb4e4gs4a4d5))
(setf arp1 '(w p_arp1 arp))

This is correct:

(w eb4e4gs4a4d5 arp)

Check the OMN The Language documents.

As for variable assembly please check the ASSEMBLE-SECTION and ASSEMBLE-SEQ function documents. You find the documents in the System Library - 1st button on the right - or use the search input - last button on the right.

  • Author

Thanks! It was the evaluation that of the first expressions that was lacking. I just selected everything and launched 'snipped - notation', but indeed, first evaluating sounds logical.

I'll have a look at the 'assemble'-commands!

Thanks & greetings!

  • Author

Hi,

I'd like to ask if, in the not too far future, there could be some tutorials on the LISP-side of Opusmodus... I studied a littlebit this documentation on assemble-seq a.o. and I figured out that my problem above was solvable with using the 'list' and 'flatten' commands, which made me conclude, in the end, that a rather thorough knowledge of Common Lisp is necessary...

The 'stages' and video-tutorials are interesting, but allow me two remarks: first, they are very 'applied', which makes it hard to translate them to other situations, and secondly many of them are strongly biased to generative algoritms, with all possible variations of random or other mathematics-based generation... while this is interesting and all, there exists already a lot of software, like Openmusic to solve those problems.

Since you advertise yourself as exactly positioning 'in between' generative software and score-writers, it'd be very helpful to have some more documentation on that middle-ground focus.

Sorry for all this comment, but I just wanted to share my '50 cents'... On the one hand, I think you guys made a wonderfull, maybe truly innovative program, on the other hand, my first experiences are a lot of error and some littlebit of trial, mainly because the way lisp and opusmodus coöperate is hard to figure out from the documentation...

Starting for example with the little detail that you need to press 'evaluate' before variables are recognized... I'd like some more tips and tricks on those aspects of the program. Meanwhile I'm turbo-reading a LISP-course.

Thanks anyway in advance for all the help!

Greetings, Joost

Thank you Joost for your analyses. I too think we might need a short introduction to Common Lisp.

In the video section you will find two 'Getting Started' videos. One of them talks about exactly that - basis lisp and how to use. 

Create an account or sign in to comment


© 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

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.