Hi AM,
A couple of months ago I followed some online courses on http://www.kadenze.com . Especially the generative art courses as well as The Nature Of Code course. So I started wondering which of the techniques form those courses are supported by standard Opusmodus functions.
That brought me to the idea to make a list of those topics and eventually also have a couple of links to online and free material with inspiring explanations and background info.
Kind regards,
Wim

Hi AM,
What I mean with "high level out-of-the-box algorithms" in this context is something along the line of:
- high level: functions to apply specific compositional techniques (so not included are functions for basic type conversion, looping through lists etc.)
- out-of-the-box: without the need for the composer (Opusmodus user) to do additional low level programming in order for the compositional technique to be utilized
Hope this helps,
Wim
added 3 minutes later
Thanks a lot Torsten!!!!
Kind regards,
Wim Dijkgraaf

In the following line of code, what is the difference between vector and float?
(vector-to-velocity 0.1 0.9 (pitch-to-velocity 'pppp 'ffff '(c1 d1 e1 f1 g1 a1 b1 c2 d2 e2 f2) :type :float))
The function name is 'vector-to-velocity' but in pitch-to-velocity the type is set to :float (instead of :vector).
Looks like they are synonyms.
Thanks in advance,
Wim Dijkgraaf
added 2 minutes later
I guess this is the answer:
Vectors are one-dimensional arrays, therefore a subtype of array.
Wim :-)
added 7 minutes later
Code above being equal to:
(pitch-to-velocity 'pppp 'ffff '(c1 d1 e1 f1 g1 a1 b1 c2 d2 e2 f2))
Got it :-)

Where can I find the full specification of OMN?
I've been searching and found several articles and posts but would be great to have one document. I'm especially interested in how repetitions (what exactly is included in the repetition) and tuplets behave.
With tuplets, how does one write something like 6e:2q -> six eigth notes in the time of 2 quarter notes
Big hug,
Wim

Hi Torsten,
I've adjusted the source code and checked if it still works .. it does.
Just a short explanation of what I did to write the converter:
- used Microsoft XSD tool (included as xsd.exe) to auto generate a C# class from an XML file, with one of the Sibelius soundset files as input.
- I don't know to what degree that format is standardized. Might be that you encounter issues with EastWest files ... or maybe it just works. If both VSL and EastWest use the same XML elements, it should work.
- Wrote some classes with the logic to create Opusmodus Soundsets
- Added a console project that does the reading of Sibelius soundsets, calls the converter and serializes the result back to disc as an opusmodus soundset file.
The output from the converter is not 100% correct; meaning that you'll have to do some manual adjustments in Opusmodus to make sure that the soundset file is 100% Common Lisp 'compatible'. This due to some special characters that the converter doesn't handle correctly (yet) and which can't be used in Common Lisp symbols.
There is also some logic that maps VSL names to standard Opusmodus names that you'll have to adjust in order to be correct for the EastWest library.
I included the SibeliusSoundSet files for your convenience so you can make sure the solution works on your machine. It should be hassle free under Microsoft Visual Studio Community edition and above.
If I can be of some help, please let me know.
Big hug,
Wim Dijkgraaf
p.s. Wrote the code under time pressure and wanted to make sure first that the concept is viable. Should refactor the code :-) Even better ... re-write this code in Common Lisp running in Opusmodus ... :-)