MakeMusic
SmartMusic Finale Garritan MusicXML

Opus examples?

Moderator: Michael Good

Opus examples?

Postby Mario Lang » Sat Aug 09, 2008 3:21 am

Hi.

I am planning to add some support for the opus document format to FreeDots. Are there any examples of properly written opus xml documents out there I could use as a starting point?
-- CYa,
???? ?? ?? ?? ? | Debian Developer <URL:http://debian.org/>
.''`. | Get my public key via finger : :' : | 1024D/7FC1A0854909BCCDBE6C102DDFFC022A6B113E44
`. `'
`- <URL:http://delysid.org/> <URL:http://www.staff.tugraz.at/mlang/>



To unsubscribe your email address, click on the following web page.
Mario Lang
 
Posts: 31
Joined: March, 2014
Reputation: 0

RE: Opus examples?

Postby Michael Good » Tue Aug 12, 2008 10:36 am

Hi Mario,

I don't know if any distributed software is currently supporting the opus. However, we have used it for some internal programs here. Here is a short example from Schumann's Frauenliebe und Leben cycle. The opus file collects the 8 MusicXML score-partwise files for each individual song into a single opus:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE opus PUBLIC "-//Recordare//DTD MusicXML 2.0 Opus//EN"
"http://www.musicxml.org/dtds/opus.dtd">
<opus version="2.0">
<title>Frauenliebe und Leben, Op. 42</title>
<score xlink:href="Frauenliebe1.xml"/>
<score xlink:href="Frauenliebe2.xml"/>
<score xlink:href="Frauenliebe3.xml"/>
<score xlink:href="Frauenliebe4.xml"/>
<score xlink:href="Frauenliebe5.xml"/>
<score xlink:href="Frauenliebe6.xml"/>
<score xlink:href="Frauenliebe7.xml"/>
<score xlink:href="Frauenliebe8.xml"/>
</opus>

Best regards,

Michael Good Recordare LLC


Hi.

I am planning to add some support for the opus document format to FreeDots. Are there any examples of properly written opus xml documents out there I could use as a starting point?



To unsubscribe your email address, click on the following web page.
Michael Good
VP of MusicXML Technologies
MakeMusic, Inc.
User avatar
Michael Good
 
Posts: 2197
Joined: March, 2014
Reputation: 0

Re: Opus examples?

Postby Hervé Bitteur » Mon Aug 04, 2014 8:53 am

Hi Michael and list,

I plan to use this notion of opus when scanning several pages with Audiveris and detecting the start of a new movement: combining opus with compressed MXL seems the way to go.
So I'm updating ProxyMusic to support both opus and mxl.

However, trying to feed Finale with an opus file of mine, I got this error message:
"File my-opus.xml is not in MusicXML format - document type opus"

Could you tell me if Finale 2014 demo supports this notion of opus? (searching Finale on-line help resulted in: "Your search for "opus" returned 0 result(s).", which is bad news...)

Best regards,
/Hervé
Hervé Bitteur
 
Posts: 50
Joined: March, 2014
Reputation: 0

Re: Opus examples?

Postby Michael Good » Mon Aug 04, 2014 4:41 pm

Hello Hervé,

No, Finale 2014 does not support the opus document type. I still don't know of any program that supports this. Like the timewise format, it's one of those features that hasn't been too popular over the years.
Michael Good
VP of MusicXML Technologies
MakeMusic, Inc.
User avatar
Michael Good
 
Posts: 2197
Joined: March, 2014
Reputation: 0

Re: Opus examples?

Postby Hervé Bitteur » Tue Aug 05, 2014 7:30 am

Thanks Michael for your feedback.

I do think Opus is a useful feature: Suppose you are scanning a page which combines the end of a movement with the beginning of the next one. See Mozart 40th symphony on IMSLP, page 33, for such example. You cannot put everything into a single ScorePartwise instance: the movements have different instruments parts! So, the OMR software must return two ScorePartwise instances.
They could be marshalled to two separate files, but a single opus file would be more elegant and easy to deal with later on. I'm going to use it, at least for internal purposes.

Let me share my experience of supporting Opus in ProxyMusic (my Java/MusicXML binder).
Since there is a schema available (opus.xsd) it was easy to generate the binding code through JAXB. However, opus.xsd data cannot be mixed with musicxml.xsd data because of two collisions:
- one is the "yes-no" element which is defined in both places, and thus leads to two different classes, even though we understand they should be the same.
- the other one is the "opus" element, which has different meanings in opus.xsd and in musicxml.xsd.
I think this could have been addressed by proper use of name-spaces, but there is none today in MusicXML definition. So, I simply decided to target two different Java package names, one for ScorePartwise and another one for Opus.

Everything now works nicely, except for a minor point: unmarshalling is a bit awkward, since I have to know in advance whether I'm going to unmarshal an Opus file or a ScorePartwise file! (because of the collisions above, I cannot simply let JAXB discover the XML root element...).
I'm left with two workarounds:
- use specific file extension, such as my-file.opus.xml (for internal usage, that's OK)
- make a double parsing on each file (not efficient at all!)
Neither of them is really satisfactory.

Please let me know if you have any hint.

Bye,
/Hervé
Hervé Bitteur
 
Posts: 50
Joined: March, 2014
Reputation: 0

Re: Opus examples?

Postby Hervé Bitteur » Tue Aug 05, 2014 10:54 am

Hervé Bitteur wrote:Everything now works nicely, except for a minor point: unmarshalling is a bit awkward, since I have to know in advance whether I'm going to unmarshal an Opus file or a ScorePartwise file! (because of the collisions above, I cannot simply let JAXB discover the XML root element...).
I'm left with two workarounds:
- use specific file extension, such as my-file.opus.xml (for internal usage, that's OK)
- make a double parsing on each file (not efficient at all!)
Neither of them is really satisfactory.


Update: I found a clean solution using the peek() method of a StAX parser. It allows to have a look at the start element before launching the proper unmarshaller.
/Hervé
Hervé Bitteur
 
Posts: 50
Joined: March, 2014
Reputation: 0

Re: Opus examples?

Postby Michael Good » Tue Aug 05, 2014 11:15 am

Using StAX was going to be my suggestion. I'm glad to hear that works.

Since there is so little use of the opus schema today, I think we may have some flexibility to make an incompatible changes there. Score files have such a large installed base - we're now up to over 180 applications - that incompatible changes there aren't feasible.
Michael Good
VP of MusicXML Technologies
MakeMusic, Inc.
User avatar
Michael Good
 
Posts: 2197
Joined: March, 2014
Reputation: 0

Re: Opus examples?

Postby Hervé Bitteur » Wed Aug 06, 2014 4:34 am

For those interested, ProxyMusic (LGPL) now supports Opus entities and compressed .mxl files.
See ProxyMusic home page

Enjoy!
/Hervé
Hervé Bitteur
 
Posts: 50
Joined: March, 2014
Reputation: 0

Re: RE: Opus examples?

Postby blmara » Tue Aug 02, 2016 12:47 pm

Michael Good wrote:Hi Mario,

I don't know if any distributed software is currently supporting the opus. However, we have used it for some internal programs here. Here is a short example from Schumann's Frauenliebe und Leben cycle. The opus file collects the 8 MusicXML score-partwise files for each individual song into a single opus:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE opus PUBLIC "-//Recordare//DTD MusicXML 2.0 Opus//EN"
"http://www.musicxml.org/dtds/opus.dtd">
<opus version="2.0">
<title>Frauenliebe und Leben, Op. 42</title>
<score xlink:href="Frauenliebe1.xml"/>
<score xlink:href="Frauenliebe2.xml"/>
<score xlink:href="Frauenliebe3.xml"/>
<score xlink:href="Frauenliebe4.xml"/>
<score xlink:href="Frauenliebe5.xml"/>
<score xlink:href="Frauenliebe6.xml"/>
<score xlink:href="Frauenliebe7.xml"/>
<score xlink:href="Frauenliebe8.xml"/>
</opus>
...


Hi,

I'm planning to use opus element in my program to represent multiple scores (ie songs in a song book). I wonder how to intepret the physical relation between the multiple scores. There's the new-page attribute to indicate that the score starts in a new page. But how to indicate the physical space between two scores if they appear in the same page?

Marko
blmara
 
Posts: 3
Joined: December, 2013
Reputation: 0

Re: Opus examples?

Postby Michael Good » Tue Aug 02, 2016 2:35 pm

Hi Marko,

You can indicate the space between two scores on the same page by using the layout features in the MusicXML files referenced by the opus. The top-system-distance element for instance specifies the distance from the top page margin to the top line of the first system on the page within the current score file.
Michael Good
VP of MusicXML Technologies
MakeMusic, Inc.
User avatar
Michael Good
 
Posts: 2197
Joined: March, 2014
Reputation: 0

Who is online

Users browsing this forum: No registered users and 2 guests

cron