Jump to content
Sign in to follow this  

Music xml import, convert to Score?

Recommended Posts

I have converted many of my scores made in Notion to music xml in order to display them in the Assistant..which is very nice indeed.


I'm wondering if I can convert those xml scores to an Opusmodus score direct or do I have to re-import them as midi? I see I can go the other way..xml to Notion, but cannot find how to go this way or if it's possible.



Share this post

Link to post
Share on other sites

That's great to hear Janusz, thanks.

Share this post

Link to post
Share on other sites
On 1/14/2019 at 5:51 PM, opmo said:

At the moment you can't convert musicxml file into omn score.
But it is in our TODO list.

Looking forward to this. Now I´m trying to get some Ravel Piano scores onto OMN to make some tweaks.

Share this post

Link to post
Share on other sites
14 minutes ago, Stephane Boussuge said:

That is the main and most important point on the todo list i'm waiting for !



Heavy pressure by Monsieur Boussuge !😂😂😂

Indeed, really important and time saver for the composer.

This would let us  import stuff, maintaining the attributtes (dynamics, markings) of existing scores.

All the best !


Share this post

Link to post
Share on other sites

> That is the main and most important point on the todo list i'm waiting for !


I would also welcome this greatly, but I also understand that it might be tricky to realise when implemented from scratch, as MusicXML is a large standard.


This project could become much much smaller when using some library that already has some  good MusicXML support. For example, one could use the pretty mature MusicXML import of music21 (http://web.mit.edu/music21/) and then use music21 + Python to generate OMN (e.g., an event list as output by Opusmodus' single-events). I did something similar once, that is rather easy to do and not such a big project. Python libraries can be called from Common Lisp using py4cl (https://github.com/bendudson/py4cl/). I tested py4cl in Opusmodus, it works. For example, all OMN generation could be done in a custom Python module, and py4cl is then used for just calling that. It seems the music21 licence would allow for that (https://github.com/cuthbertLab/music21/blob/master/music21/license.txt).



Any Opusmodus user with a little bit of Python knowledge (which is rather easy for a Lisp programmer, see https://norvig.com/python-lisp.html) and some time could to that in principle 







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 etu
      In a previous post it was mentioned that MIDI import would be supported in 2.0.  Is this still true?
    • By Jorvd
      Hi everyone,

      For the past two days I've been messing around with SuperCollider and OM.
      I want to be able to write my score in OMN format and send it via OSC to SuperCollider.
      So far I have this in OM:
      (defparameter to-sc '( 57120)) (setf thd1 (create-osc-thread "thread1" to-sc)) (send-osc-data thd1 '( (12 1/2) (2 1/2) (0 1/2) (3 1/2) (14 1/2) (2 1/2) (0 1/2) (3 1/2) (8 1/2) (2 1/2) (0 1/2) (3 1/2) (7 1/2) (2 1/2) (0 1/2) (3 1/2) )) And this in SuperCollider
      (OSCdef.new( \toggle, { arg msg, time, addr, port; [msg, time, addr, port].postln; Synth(\synth1, [pitch:msg[1]+60]); }, '/thread1' ); ) ( SynthDef('synth1', { arg pitch=60, amp=0.2, ffreq=15000; var linen, env, sig1, sig2; linen = Env.linen(0.01, sustainTime:0, releaseTime:1); env = EnvGen.kr(linen, doneAction:2); sig1 = Mix(VarSaw.ar([pitch.midicps], 0, 0.5)); sig2 = LPF.ar(sig1, ffreq); Out.ar(0, sig2* env * amp); }).add; ) And this works great! However I would like to write my OM script in regular OMN format and then convert it to integers, which SuperCollider understands.
      I've tried to do this like so:
      (setf convert-test '( (q a3 e4 c4 f4) (q e3 b4 a3 c4))) (setf data (gen-osc-data 16 (pitch-to-midi (omn :pitch convert-test)) :time (flatten (omn :length convert-test)) :min 0 :max 127)) However, it seems like "gen-osc-data" really wants to use floating values, adding the Min and Max does seem to convert these values in the range 0-127 but still I end up having the wrong notes:
      (setf data (gen-osc-data 16 (pitch-to-midi (omn :pitch convert-test)) :time '(1/2 1/4 1/12 1/12 1/12) :min 0 :max 127)) >> (((0 91 127) 1/2) ((27 127 0) 1/4) ((0 106 127) 1/12) ((0 127 64) 1/12) ((0 91 127) 1/12) ((27 127 0) 1/2) ((0 106 127) 1/4) ((0 127 118) 1/12) ((0 127 118) 1/12) ((0 127 118) 1/12)....  
      Any ideas on a straightforward method to deal with this? I hope my question is understandable, this is by far the most challenging project I've tried in OM, any help would be very appreciated!
      NOTE: I know that I can just send MIDI notes to SC however I would like to control my Synth Parameters via OSC and I'm a big fan of consistency, therefor it would be great if the Pitch and Length information also could be converted and send via OSC messages.

      Thanks very much in advance!
      - Jor
    • By AM
      dear all
      is there a quick way to import (or filter) only pitches and chords from a midi-file? if i only use these (nothing else from midi/xml)
      thanx for a hint
  • Create New...