Jump to content
Sign in to follow this  

Optima Pattern Matching Library

Recommended Posts

As part of my research into other tools that can be used along with Opusmodus, in today's post I have given a basic introduction to the Optima Lisp library for pattern matching. I hope to continue the discussion in the next couple of posts as well. I think this library will be useful if we want to do any operations in Opusmodus involving pattern matching, for example, reading a score and looking for specific patterns in it.




Share this post

Link to post
Share on other sites

I will love to see the use of Optima in action with Opusmodus.

Share this post

Link to post
Share on other sites

I hope to share some examples of use with OM in the next few posts.



Share this post

Link to post
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.

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.

Sign in to follow this  

  • Similar Topics

    • By torstenanders
      Revising some older code of my I noticed that the function length-divide changed its behaviour somewhat and became more likely to cause an error.
      In a previous version, where the arguments count and divide where given separately, it was possible to set the count to some very high number, say, 1000, simply to mean that all notes the function can split (depending on its other arguments) will be split. 
      Meanwhile, the function have been revised to introduce control over intervals (thank you 🙂), but since then it seems it is not possible anymore to set an arbitrarily high count value anymore. For example, the following code now results in an error. I would prefer the previous behaviour, if only because it is more forgiving and stable.
      (length-divide '(1000 2) '(q ab3 num1+leg c4 leg e ab3 leg g3 leg ab3 num1+leg c4 leg)) Error: The value ab3 is not of the expected type sequence.  
      In case it helps: my debugger tells me the functions gen-repeat and then maybe-section are called (perhaps within a nested function of length-divide* ?) with an argument sequence bound to ab3 (i.e. a plain pitch), and a call (length ab3) then causes this error. 
      Thank you!
    • By AM
      short information about this from CT:
      "Currently, only the VST plugin does the pitch bend correctly, there was some reason why I did not fix the problem with the Max version, but I'll take it now.
      In the short term, you can also solve it by sending the pitchbend value immediately after each noteon.
      Pitchbend + - tritone."
      but how to how to send "the pitchbend value immediately after each noteon. Pitchbend + - tritone." ...i have no idea, i will wait for the UPDATE
    • By Andy
      I was wondering what was the preferred method to store snippets? I come across quick ideas I want to quickly store away for future.
      There seems to be two choices..make a .opmo file or 'save the last file as .xml' under the File menu. Are there any others? I guess an xml file is good for seeing the notation rapidly but effectively renders the snippet dead as it loses the reference to the code and an .opmo file keeps the code... though this needs to be evaluated to see the notation quickly. 
  • Create New...