Getting precompiled code (e.g., quicklisp, quicklisp libraries, swank, own libraries) running again on recent Opusmodus versionsBy torstenanders
After updating to a recent Opusmodus version 1.3, I ran into some errors when loading code that had been loaded and compiled before, e.g., quicklisp, quicklisp libraries, swank (the interface that allows using Emacs Slime with Opusmodus), and my own Lisp libraries. The errors I saw were rather cryptic, like the following:
Error: The value "CL" is not of the expected type list.
While executing: (:internal ccl::operation-on-all-specs ccl::%define-package), in process Listener-1(7).
After exchanges with Janusz (thanks a lot for your help!) I learnt that the underlying Common Lisp version of Opusmodus had been upgraded to CCL version 1.12, and the format of compiled files (fasl files or dx64fsl files) of this version had changed.
So, in case you run into similar problems, these can be fixed simply by deleting all previously compiled files (which Lisp stores if they do not change to speed up the load process), so that the Lisp compiler has to compile them again. In the folder ~/.cache/common-lisp just delete any folders starting with ccl-, so that all compiled files in this directory are compiled again.
I am working on porting libraries from other algorithmic composition environments so that they are usable in Opusmodus.
The library Cluster Engine is a constraint solver for solving polyphonic constraint satisfaction problems where both the pitch and the rhythmic structure can be restricted by an arbitrary number of constraints (rules), and a constraint solver then searches for a solution that is consistent with all constraints. This library supports user-defined rules, and highly flexible ways to control which aspects of the resulting score are controlled by certain rules. For example, you can independently control with compositional rules the melody and harmony of the music you generate.
The library Cluster Rules is extension of Cluster Engine that provides predefined rules and some utilities.
Plain Common Lisp versions of these libraries are available at https://github.com/tanders/cluster-engine and https://github.com/tanders/cluster-rules, together with installation instructions etc.
These libraries are very powerful, e.g., I use them to revise the underlying harmony of preexisting Opusmodus scores such that the result follows standard voice leading rules etc.
However, these libraries may be somewhat tricky to learn, in particular if you never before had any contact with constraint programming. I therefore recommend to start learning these libraries first in PWGL, where their documentation is better (they come with interactive tutorials).
By Timothy Rolls
I'm hoping someone on the forum can help me with this. Since the last update, on my laptop I am unable to use any of my spectral libraries I've created. The tbn-cs one that comes in the app still works, just the ones that I created are not found. I try recreating them and they seem to recreate fine, but after I restart Opusmodus, they still cannot be found. When I check my spectral-data/data and spectral-data/partials, I do see all the necessary files I have created. I think that is happening on my desktop machine, but I can't get to it right now to be sure (I think it was on the desktop that I first found my libraries not being found). However, on both machines, when I first start Opusmodus, I get the following error:
> Error: The function double is predefined by Opusmodus.
> While executing: ccl::cerror-if-redefine-om, in process Opusmodus Extension Initialization(5).
> Type cmd-/ to continue, cmd-. to abort, cmd-\ for a list of available restarts.
> If continued: Replace the definition of double.
> Type :? for other options.
Afterwards, everything not related to my spectral libraries has seemed to run fine.
I have not created any extensions, and I cannot find in any of my work where I might have tried to define something as double.
I've tried reinstalling Opusmodus and it is not changing anything.
Does anyone have any ideas short of reinstalling OSX? I suppose that's a possibility, but I don't want to have to try that till there is no other choice. Thanks.