Skip to main content

JSON/XML

Posted

In https://users.cognitone.com/topic/open-synfire-plugin-development it was mentioned that a feature was in planning to allow export and import of phrase data as XML or JSON. Is that still planned? It would be very useful.


Sun, 2019-01-27 - 17:39 Permalink

Yes, this is still on our road map. 

I however doubt there will be a lot of third party tools available soon that can import and export these files. If you can code yourself, you can do unlimited cool things, of course.

Sun, 2019-01-27 - 23:18 Permalink

Cool, that's good to hear. I was thinking of using the music21 library in Python to do things like augmentation/diminution, deletion/embellishment, etc. of motifs.

Mon, 2019-01-28 - 09:55 Permalink

I'd love to see an interfacing layer between Synfire and music21.

Any plans for doing that?

Mon, 2019-01-28 - 21:53 Permalink

music21 is a library for analyzing and generating music. It's written in Python 3, can import and export music in many formats (MIDI, ABC, Lilypond and countless others). It comes with a large corpus of musical works from many epochs and genres  for analyzing, recombination and creation of new music using machine-learning assisted approaches.

Among the things I've tried myself using music21 are generation of rhythm, melody (weighted random walk) and harmony (Neo-Riemannian analysis).

Those that I've done with quick&dirty hacking resulting in some short code snippets; thoughtful development should yield far more advanced results.

Common properties are e.g. that both music21 as well as Synfire handle musical attributes like harmony, scales and rhythm which can be processed separately.

They still have a different approach in that music21 doesn't know a concept similar to Synfire's Figures as well as Symbols although in music21 pitches can be viewed as steps relative to a given scale, the same goes for chords.

An interface layer could handle music21 Stream objects by importing a part, a track, a container or an arrangement from a music21 Stream object (a Stream can contain lots of information which have to be inferred when importing MIDI) or outputting music into a Stream for further processing by music21, keeping attributes that MIDI export will lose (like e.g. harmony information).

This might allow for new ways of analyzing and generating music.

Sorry for my quite lengthy and unordered brainstorming fit.

Mon, 2019-01-28 - 22:03 Permalink

Sorry for my quite lengthy and unordered brainstorming fit

Many cool things started with a lengthy and unordered brainstorming ;-)

Thanks.

Tue, 2019-02-26 - 17:48 Permalink

I like to mention another free analysis program "jSymbolic", Author C.McKay. Purpose: Extracting features from symbolic music representations.

http://jmir.sourceforge.net/manuals/jSymbolic_manual/home.html   It has MANY features for analysis and comparison of chracteristics of music, styles, composers etc.   And it has a graphical interface:     On the site you find a lot of (scientific) documentation.

Sat, 2019-09-28 - 01:32 Permalink

Sorry for starting this thread and then forgetting all about it!

I guess all I had in mind was an XML file with pitches and durations of a phrase and the scale used; but I guess then you would need an easy way to import and export such files, and maybe as well a kind of temporary phrase bank from which to choose phrases generated in the external program, which would need to be designed and so on--not a simple undertaking, in other words. Now that I think about it, there would also need to be some way to break the imported file into the constituent phrases. (I guess I hadn't thought about how complicated stuff like this is.)

As for Jsymbolic, I did look at that (and learned that a lot of its functionality is implemented in music21), but it only does global analysis (and not manipulation) of entire pieces of music, and so it seems to be only for musicology.