< Back to IRCAM Forum

OMOrch - yet another OM interface to a Orchi***-tool

OMOrch!

(- or the story of how Anders spent some cold and dark days during autumn 2023, trying to focus his attention on something else than CNN and Al Jazeera…)

OMOrch is YAOMO ('Yet-Another-OpenMusic-Orch…)-lib, bridging Carmine-Emanuel Cellas ‘Orchidea’ in to OpenMusic. I think it’s useful already.

OMOrch sources are here: GitHub - andersvi/OMOrch: OpenMusic library - interface to Carmine Cellas Orchidea software. As well there’s a release here

https://github.com/andersvi/OMOrch/releases/tag/alpha

The library can be installed in the usual way. The sources include a README and a DEMO-workspace which can show some typical usage.

Features:

OMOrch provides classes and methods to control and call Orchideas’ ‘orchestrate’ cli, and store the output in variuos ways: sound, chord-seq, multi-seq, voice, poly…

OMOrch provides a special ‘orch-note’-class, with slots for various metadata such as instrument, playing-style, dynamics, sample etc. Some of these can be displayed in OMs relevant editors (sound, poly, multi-seq, chord-seq, voice), and forwarded to music-notation packages (LilyPond using Karims omlily, or musicxml).

OMOrch has a special voice-allocation algorithm allowing voices to overlap two or more segments (to see, choose the ‘dur’ view in multi-seq).

Atm. OMOrch uses the cli-version of Carmine’s Orchidea (http://www.orch-idea.org/download/). Linux-users will find the necessary Orchidea cli-tools (‘orchestrate’ is really all you need) already installed in resources/bin.

Orchidea needs an accompanying ‘SOL-type’ sound-database. Typically you’d want to install the ‘FullSOL’ and ‘TinySOL’ databases:

https://forum.ircam.fr/projects/detail/fullsol/

The OMOrch-lib still has some rough edges, and i hope to bring it more into shape with time. Some missing features are planned or are on their way. Check the ‘issues’-pane at the repo for a list of some enhancements and issues i already know about.

I’m very happy for feedbacks of all sorts. Check the README for some guidelines. Have fun!

OMOrch owes much to other “Orch…” libs made for various versions of the Orch…-tools, in particular Geof Holbrooks OM-Orchidea and Jean Bressons lib for Orchidée

-anders

1 Like

Dear Anders,

Thank you very much for this release. I am beginning to test it on Fedora 32. Only a little particular: after extracting the source archive the folder has to be renamed into OMOrc to be read by OpenMusic.

Ciao

fdsdb

You’re right. Guess i’ll have to stop tagging the release at github then? Anyway, just rename the folder or make symlink to OMorch

1 Like

Just a quick note. For Linux-users, the FullSOL zip-archive from IRCAM is corrupt and won’t unpack using the normal ways. A hack is to use “jar xvf FullSOL.zip”

Just in case, perhaps i didn’t make it clear enough: OMOrch depends on a version of Orchidea’s cli-tools which runs on your platform.

The provided binaries in resources/bin are a courtesy for Linux-users (my version is compiled for Fedora 38. Probably better to follow up those kinds of issues in the Orchidea forum

Dear Anders,

Thank you for fast reply. About Linux I think I will update to Fedora 38 as soon as possible, so I would wait for that update to verify if something change.

Then some news if useful:

  • on OsX 10.13 High Sierra the library runs, only I had to copy CLI orchidea tools from Cella’s ones, because those of your library were not executed by my CPU or system. Substituting them it seems to me everuthing runs right

  • on OsX 10.13, again, the OM# version give me an error on loading the library: Error while loading the library OMOrch: “The file #P”/Users/fabio/bin/om-sharp/librerie/OMOrch/src/om-sharp-compat.lisp" does not exist." Indeed this seems a missing file, it i not comprised among your library files.

I hope these news are useful. Many thanks again for your work.

Ciao

Fabio

hose of your library were not executed by my CPU or system

I probably should have been more clear about this in the README: OMOrch depends on the cli-tools from a working Orchidea-installation

the OM# version give me an error

om# support is still on the todo-list. Should be very easy fix, give me a few days

Perhaps it’s better to move to the Orchidea forum for issues w. Orchidea? There are only some very few changes needed to compile the sources on any Linux. Might be useful for non-OM-ists as well…

Hi anders, sorry to resucitate an old thread. Would it be possible to give instruction on how to compile for Linux? Or where i can learn to do that? I have no experience or knowledge compiling stuff and really want to use this hahah, thanks!

Hi zeracosaitam1

Hardly instructions, but a hack to get the tools… :-/

Check out the current orchidea sources from git:

https://github.com/CarmineCella/orchidea.git

2 files need an added include:

modified   src/WavFile.h
@@ -12,6 +12,7 @@
 #include <cassert>
 #include <cstring>
 #include <limits.h>
+#include <stdint.h>
 

modified   src/algorithms.h
@@ -15,6 +15,7 @@
 #include <iostream>
 #include <vector>
 #include <numeric>
+#include <algorithm>

Than when compiling, i did the usual cmake-incantations:


mkdir build
cd build
cmake ../

But: instead of using the resulting Makefile in the build/ dir, go into each of the “tools” directories, e.g. “cd tools/orchestrate” and do a “make” there. The resulting “orchestrate” binary works on my machine.

Though you won’t need them to use OMOrch, the other tools can be compiled in the same manner.

Btw: did you check the provided binaries in OMOrch’s /resources folder?

What Linux-variant are you using? Please tell me if this works on your machine.

Good luck!

-anders

Hi anders, the github link provided does not work :frowning:

I’m on Linux Mint Debian Edition.

And yes, i did check the resources folder, it’s just that i’m not that tech savvy :sweat_smile:

Possibly i misunderstood your question, do you want to install OMOrch?, does it not work?

does the ‘orchestrate’ binary run?

ie, in a terminal:

  • cd <directory-of/OMORch/resources>
  • ./orchestrate

what is the output in the terminal after that?

Sorry, maybe it is I that misunderstood. I thought i need to have Orchidea already compiled and installed from the resources folder in order to be able to run it on Linux. I didn’t even bother to try if it works just as it is. I’ll test it when i get home :slight_smile:

This is the output of the terminal:

./orchestrate: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32’ not found (required by ./orchestrate)

And i realized what I said about the github link came out ambiguous, i meant the repository is not found (404)

The glibc… error seems to be caused by a not-updated libstdc++. Have you updated your machine to run a recent version of the OS? If not, try that first.

You could also try just updating the lib, perhaps something like

sudo apt-get install libstdc++6

Not sure whats the right way on Linux Mint. Is that something like Ubuntu?

About the sources, Carmine’s git repo is not public, and the license says i’m not allowed to share copies of his sources. You should probably ask Carmine Cella if you want access to his sources to compile yourself.

If you have an updated libstdc++ the provided binaries inside resources/* should work. Please tell me if this is not the case.

Perhaps others here have some suggestions?

Hi! I got it running! I had to manually update libstdc++6 because my system didn’t want to update past 3.4.30.

Now the library is running, and I have 2 questions:

  • Where should I put the downloaded database? Does the library looks in some specific folder?
  • How does config files work?

Hi zeracosaitam, so nice you got orchidea’s binaries working after updating your system.

Where should I put the downloaded database?

It’s in the prefs (available after the lib is loaded): “Path to your …blabla.spectrum.db” file

How does config files work?

You can look inside two variants included with OMOrch’s sources. They are full of comments indicating the variuos parameters.

Inside …/resources/bin/ (along with the binaries):

dynamic_orchestration.txt
static_orchestration.txt

2 Likes