Re: [Cs-dev] MusicXML
Date | 2009-03-15 17:24 |
From | michael.gogins@gmail.com |
Subject | Re: [Cs-dev] MusicXML |
Certainly. I would also like to know what your revised score processing scheme for Csound would be like! About MusicXML, there are two parts - one for CsoundAC, and one for Csound. I am sure I will do the CsoundAC layer, I am not so sure about the Csound layer. For CsoundAC, the csound::Score class already has load and save member functions. These would be overloaded to load and save csound::Score type scores from and to MusicXML files. The data read and written would be purely the "sounding" MusicXML data, not any indications for how to visually notate that data. MusicXML parts would become CsoundAC instrument numbers, and vice versa. There might need to be some provision for mapping CsoundAC instrument numbers to part numbers if the former are not in sequence, or for mapping or rescaling tempos or dynamics. For Csound itself, I am not contemplating exporting MusicXML, but I am thinking about emabling Csound to render from MusicXML files. This could be done in a number of different ways. The easiest way would be add to the CsoundFile class the same stuff that I will be adding to the CsoundAC Score class. In this case, the ability to use MusicXML would require scripting from the Csound API. It would also be possible to add a command-line option, or simply to switch off the filename extension, so that Csound's core score reader could work off MusicXML files. This, of course, would be usable without scripting and would probably therefore be more useful. Some MusicXML files and parts backtrack in time. Therefore, it would be necessary to translate the entire MusicXML file to a Csound score before rendering it, although I expect that this can be done pretty quickly. In that case, the code for translating MusicXML to Csound scores could be factored into a static library and used both by the csnd module that contains CsoundFile, and by the main Csound module. I repeat, I would like to know more about your plans for revised score processing. It may be that we should think about how our plans could be integrated. Perhaps we should to think about a plugin design for score processing in Csound. The current score reader would be one plugin, your new scheme another, and the MusicXML reader a third. Regards, Mike ----- Original Message ----- From: "jpff" |
Date | 2009-03-15 18:45 |
From | Jonatan Liljedahl |
Subject | Re: [Cs-dev] MusicXML |
michael.gogins@gmail.com wrote: ... > For Csound itself, I am not contemplating exporting MusicXML, but I am > thinking about emabling Csound to render from MusicXML files. > > This could be done in a number of different ways. The easiest way would be > add to the CsoundFile class the same stuff that I will be adding to the > CsoundAC Score class. In this case, the ability to use MusicXML would > require scripting from the Csound API. > > It would also be possible to add a command-line option, or simply to switch > off the filename extension, so that Csound's core score reader could work > off MusicXML files. This, of course, would be usable without scripting and > would probably therefore be more useful. > > Some MusicXML files and parts backtrack in time. Therefore, it would be > necessary to translate the entire MusicXML file to a Csound score before > rendering it, although I expect that this can be done pretty quickly. Just wanted to say that I strongly think this kind of stuff is better handled by a separate commandline application that would translate a MusicXML file (according to some map of instr numbers and parameters) to a .sco file. -- /Jonatan [ http://kymatica.com ] ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-03-16 11:10 |
From | jpff |
Subject | Re: [Cs-dev] MusicXML |
The revised scheme is very simple. There is a new .csd section called CsExScore that copies the body to a file, and calls an external program to write a traditional score. I am currently planning/designing a different score specification that is restrictive but oriented towards traditional (rock/pop) notations. For example: ------------------------------------------------------------------------ |
Date | 2009-03-16 16:36 |
From | Andres Cabrera |
Subject | Re: [Cs-dev] MusicXML |
Hi, I think |
Date | 2009-03-16 16:53 |
From | Dave Seidel |
Subject | Re: [Cs-dev] MusicXML |
Andres is correct, it is not good XML. Of his alternates, I think the attribute version is the most succinct: |
Date | 2009-03-16 17:05 |
From | Steven Yi |
Subject | Re: [Cs-dev] MusicXML |
blue does something like this with its External and ObjectBuilder soundObjects. I ended up allowing the user to supply a formatted string, so they can write something like "myprog -i $infile -o $outfile --extra-flags". I don't think i really care for this to be in Csound itself, and it seems very backwards to me: why not have your external program just generated the CSD? steven On Mon, Mar 16, 2009 at 9:53 AM, Dave Seidel |
Date | 2009-03-17 15:10 |
From | jpff |
Subject | Re: [Cs-dev] MusicXML |
I changed it to |
Date | 2009-03-17 19:31 |
From | Anthony Kozar |
Subject | Re: [Cs-dev] MusicXML |
I like this idea as I had suggested some time ago that we create a mechanism for arbitrary score preprocessors. I was thinking that the preprocessors would be Csound plugins but this method is more flexible in some ways. ** Now because people will want to do all sorts of creative things with this feature, I agree with Steven that we need to make it more flexible. Being able to supply a complete commandline will make it easier to use a variety of tools. I am glad to see that the feature is using the established temporary file routines since that will work better with front ends. I have just a couple of concerns. First, we need a way to optionally keep the externally generated score from being deleted when Csound is done. A commandline option similar to --keep-sorted-score would be good. I have thought for awhile that a --keep-temp-files option would be useful and that would suffice for this purpose too. Second, as much as I like this feature, it is not terribly cross-platform. We can't expect all unix shell commands to work on Windows and system() is a dummy function on Mac OS 9. The current implementation will almost certainly produce an error on OS 9 when the output score is not found. Is there a way that we could implement this so that the launch mechanism is "platform independent" ? Maybe we just need some code for OS 9 that implements something similar or that spits out a message saying that the feature is unavailable on that platform. Thanks to John for adding this new feature! Anthony Kozar mailing-lists-1001 AT anthonykozar DOT net http://anthonykozar.net/ ** I like that users will be able to include an alternate score format in the CSD because the Csound score format is not often used as the "source code" for the score. This method will make it easier for people to render Csound compositions distributed in their "source" form and should work with any Csound front end. I'm sure people will find many creative uses for it ranging from using Cmask or nGen scores to preprocessing with awk or m4, to embedding Python score generators in their CSDs. We even already have an alternate score interpreter being distributed with Csound which will be easier to use now: Scot! Steven Yi wrote on 3/16/09 1:05 PM: > blue does something like this with its External and ObjectBuilder > soundObjects. I ended up allowing the user to supply a formatted > string, so they can write something like "myprog -i $infile -o > $outfile --extra-flags". > > I don't think i really care for this to be in Csound itself, and it > seems very backwards to me: why not have your external program just > generated the CSD? > > steven ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-03-17 19:40 |
From | Anthony Kozar |
Subject | Re: [Cs-dev] MusicXML |
While there is still time to haggle here, can we use an attribute name that is more meaningful than "bin" ? Especially since it is now implemented as an extension of the existing |
Date | 2009-03-17 20:04 |
From | matt ingalls |
Subject | Re: [Cs-dev] MusicXML |
my day job is working on notation software and dealing with MusicXML and Xerces has been even more painful than working with CSound sources.. it is true that MusicXML contains info for playback, but it really is a file spec for music notation and does not seem appropriate for CSound -- personally, i would stick with MIDI -- most notation programs import MIDI and they probably would do a better job converting to notation than trying to write a MusicXML export for Csound from scratch. as for the CSD format, i would put in my vote as others have suggested: GET RID of pseduo-xml!!!! instead, create 2 formats: 1) a fully proper xml file 2) a SIMPLE "csound-specific" file: options ... endoptions instruments ; ... this block be the default, and thus optional instr endin ... endinstruments ; .... score f1 0 16384 49 "mpadec/new.mp3" 0 0 0 i1 0 10 endscore ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-03-18 07:19 |
From | jpff |
Subject | Re: [Cs-dev] MusicXML |
system is part of C89, C99, and POSIX.1-2001. If OS9 does not implement it that is a bug in the C system. Actually it is not too hard to write -- I did when I supported OS9 code. The use of system is very simple; it could be replaced by fork/exec but that is less portable. --keep-temp-files could be interesting. Will think about it. ==John ffitch ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-03-18 07:53 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Cs-dev] MusicXML |
Attachments | None None |
--keep-temp-files option would be great... also, besides the *csound -d -odac OscReceive.csd 2> temp.err* trick in Unix, do we have a commandline flag/combo/option that will fork and run Csound in the background and print *absolutely nothing* to the screen.. and if we do, is it clearly documented in the manual - with an example? (so that, if my students were writing little C programs that launch and use Csound as their softsynth and input sample processor) they could keep your terminal screen free to respond to user input, and issue commands (or line events for that matter)? -dr.B. Dr. Richard Boulanger Professor of Electronic Production and Design Music Technology Division Berklee College of Music 1140 Boylston Street Boston, MA 02135 617-747-2485 (office) On Mar 18, 2009, at 3:19 AM, jpff wrote:
|
Date | 2009-03-18 07:56 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Cs-dev] MusicXML |
Attachments | None None |
I guess the commandline I am looking for is: Log output to file FILE. If FILE is null (i.e. -O null or --logfile=null) all printing of messages to the console is disabled. It would be helpful if there was some sort of cross reference in the manual - near the no displays option and the no messages option to remind users of this option (it is a neighbor to those commands and functions) -dr.B. Dr. Richard Boulanger Professor of Electronic Production and Design Music Technology Division Berklee College of Music 1140 Boylston Street Boston, MA 02135 617-747-2485 (office) On Mar 18, 2009, at 3:53 AM, Dr. Richard Boulanger wrote:
|
Date | 2009-03-18 08:11 |
From | Anthony Kozar |
Subject | Re: [Cs-dev] MusicXML |
jpff wrote on 3/18/09 3:19 AM: > --keep-temp-files could be interesting. Will think about it. This should be easy to implement by modifying remove_tmpfiles() in one_file.c. > system is part of C89, C99, and POSIX.1-2001. If OS9 does not > implement it that is a bug in the C system. Actually it is not too > hard to write -- I did when I supported OS9 code. What would system() do on OS 9? There is no way to pass commandline arguments to the main() function of a standard Mac OS 9 program. It could be done with Apple Events ... I guess when I asked about a "platform-independent mechanism" for doing this, I really did not think that one would exist. > The use of system is very simple; it could be replaced by fork/exec but > that is less portable. fork and exec are definitely not implemented on OS 9. I think making the score preprocessors as plugins to Csound might be about the only assured "cross-platform" solution, but that is far less flexible than the current implementation, so I am not recommending it. But I suppose there is no reason to be concerned. I will not be making any more official releases of Csound for OS 9. I may continue to tinker with that port until Csound 6 is released, but it is no longer a priority. Anthony ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |