Jump to content

CLM Installation on Windows

Recommended Posts

I'm a new user and have been trying to get this working for a couple of days now with no luck. Things I've tried:

1. Uncommented the contents of 'Load CLM Instruments.lisp'
2. Ran 'Evaluate All' - This produced errors about missing bin and libclm folders in C:\Users\username\Opusmodus\CLM\
3. Created the two missing folders
4. Re-ran 'Evaluate All' - This seems to make a little progress and now clm_complete_add.c and libclm-o64.dll files get created in the libclm folder

However, I'm now getting the below error

OM 3 > load-clm-ins, instruments: ("add" "addflt" "addsnd" "anoi" "add-noise-filtered" "arith" "arith1" "arith2" "autoc" "backandforth" "badd" "bandedwg" "bell" "bird" "bigbird" "bowl" "btest" "canter" "cellon" "circular-scanned" "cnv" "convolve" "cross-synthesis" "drone" "expandn" "expsrc" "fade" "fft" "filter-noise" "fltnoi" "fltsnd" "flute" "fmex" "fmtest" "freeverb" "fullmix" "get-spectrum" "grani" "granular" "grapheq" "insect" "jcrev" "jcrevf" "jcvoi" "jlrev" "kiprev" "lbjPiano" "leslie" "maraca" "maxf" "mlbvoi" "move-sound" "noise" "nrev" "one-cut" "piano" "pluck" "pqw" "pqwvox" "prc95" "prc96" "pvoc" "resflt" "reson" "rev2" "ring-modulate" "rmsenv" "san" "scanned" "scentroid" "shepard" "singer" "sndwarp" "stochastic" "strad" "tb" "tnot" "track-rms" "trp" "ug" "ug1" "ug2" "ug3" "ug4" "ugex" "v" "vowel" "vox" "vslf" "vsum" "wavetrain" "zd" "zipper")
;;; Compiling file C:\Users\username\Opusmodus\clm\instruments\add.ins ...
;;; Safety = 3, Speed = 1, Space = 1, Float = 1, Interruptible = 1
;;; Compilation speed = 1, Debug = 2, Fixnum safety = 3
;;; Source level debugging is off
;;; Source file recording is  on
;;; Cross referencing is off
; (lispworks:top-level-form 0)
; (lispworks:top-level-form 1)
; (defvar amp-env-array)
; (defvar frq-env-array)
; (lispworks:top-level-form 4)
; (lispworks:top-level-form 31)
; Writing "C:\\Users\\username\\Opusmodus\\clm\\libclm\\clm_complete_add.c"
; (lispworks:top-level-form 32)
; Compiling "C:\\Users\\username\\Opusmodus\\clm\\libclm\\clm_complete_add.c"

Error: Failed to compile C file  "(C:\Users\username\Opusmodus\clm\libclm\clm_complete_add.c C:\Users\username\Opusmodus\clm\libclm\libclm-o64.lib)" with error 2.


C:\Users\username\Opusmodus\CLM\instruments>call "c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" 
** Visual Studio 2022 Developer Command Prompt v17.9.3
** Copyright (c) 2022 Microsoft Corporation
[vcvarsall.bat] Environment initialized for: 'x64'
Microsoft (R) C/C++ Optimizing Compiler Version 19.39.33522 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

Microsoft (R) Incremental Linker Version 14.39.33522.0
Copyright (C) Microsoft Corporation.  All rights reserved.

LINK : fatal error LNK1181: cannot open input file 'C:\Users\username\Opusmodus\clm\libclm\libclm-o64.lib'

Not sure if I'm missing something in the VS build tools or if it's something else.

Has anyone managed to get this working on a Windows machine, maybe with a different compiler?

Link to comment
Share on other sites

I've managed to get this working, so putting my notes here in case it is any use to anyone else, or helps to fix the underlying issue.

As per my notes above, I've got Visual Studio 2022 Community installed with the C/C++ compiler set up, I'm not sure this is a requirement as such for Opusmodus itself, but a compiler appears to be needed to build CLM and I had it installed already.

My starting point was where I'd got to before, but for clarity:

1. In the Opusmodus user folder, inside the CLM folder, create two new folders, bin and libclm
    For me, the Opusmodus folder is located here: C:\Users\username\Opusmodus, so the new folders are as follows:
2. In Opusmodus, uncomment the contents of 'Load CLM Instruments.lisp'
3. Run 'Evaluate All' - At this point an error will occur in the Opusmodus listener window, ignore it for now.
    This step is required to make sure Opusmodus copies the libclm-o64.dll into the libclm folder.
4. Open a 'Developer Command Prompt for VS 2022'

5. Change directory in the CMD window to C:\Users\username\Opusmodus\CLM\libclm
6. Run: dumpbin.exe /exports libclm-o64.dll
    This will output information about libclm-o64.dll to the terminal window, use this information to create a libclm-o64.def file containing the function names (generated def file attached)
    This article was helpful, there are many other ways to do it with scripts etc, but I went the manual route: https://www.asawicki.info/news_1420_generating_lib_file_for_dll_library.html
7. Make sure to create the libclm-o64.def file is in the same folder as the libclm-o64.dll
8. With the CMD window still set to C:\Users\username\Opusmodus\CLM\libclm
    Run: lib.exe /def:libclm-o64.def /out:libclm-o64.lib /machine:x64
    This will generate the required libclm-o64.lib and libclm-o64.exp files.
9. Back in Opusmodus, run 'Evaluate All' again, assuming there have been no errors above, the instruments should build correctly.
    Took a while, 10-15 minutes.

I've attached the def file as it's just a plan text file so it's easy to see what's in it, but it can be used to save having to do step 6. I haven't included the lib or exp files as these can be generated with step 8.

Hope that helps. Once the build had completed, I have tested and can now use all of the examples.

The above was done using Opusmodus 3.0.29226


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.

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