Jump to content

Recommended Posts

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

Link to comment
Share on other sites

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.

Edited by opmo
Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy