[jmsl] Score to MusicShape (was first post)
jmsl at music.columbia.edu
jmsl at music.columbia.edu
Fri Feb 24 00:23:14 EST 2006
Hi Nick,
That was a good clarification of MusicShape for me. I knew I had to
add the dimensions first, but I thought from DimensionNameSpace, not
MusicShape.setDimensionName() as you pointed out. Or is this
essentially the same thing?
As for what I am planning to do, for right now I'm mostly interested
in staying within JScore writing for non-computer instruments (small
i). I think it safe to say that my goal is to generate a group of
MusicShapes that contain unique transformations of some aspect of a
group of Notes, whether it be pitch/ interval content, duration,
dynamics, timbre or articulation markings, etc. My concern is the
multi-dimensionality; I might, for example, map the dynamic contour of
some music to a pitch or duration space, or vice versa.
After that, I would be transcribing the MusicShapes back to JScore.
To that end, I would like to get your recent ScoreOperators working, as
well as check out more about the TranscriberListeners you mentioned.
I'm using the student-license JMSL version 1.035 (build 20051016) my
girlfriend bought for me. BTW, we had emailed you offlist a while back
when there was a problem getting run_jmsl_score.command to run. As an
update, when I double-click that, Terminal currently gives me the
message:
Exception in thread "main" java.lang.NoClassDefFoundError:
com/softsynth/jmsl/score/ScoreFrame
Perhaps this is related to the other errors? I have tried all of these
on both Mac OS 10.3.9 and 10.2.8 (using Eclipse 2.1 for the Transforms).
Thanks for your time and effort,
-J
On Thursday, February 23, 2006, at 11:58 AM, jmsl at music.columbia.edu
wrote:
> Hello J
>
> A MusicShape contains a constant number of dimensions. Every call to
> add() adds an element, which is a double[] containing as many values
> as there are dimensions. So you cannot add(note.getDynamic()) because
> that is a single value, and presumably the musicShape has at least 4
> dimensions already.
>
> You can create a new MusicShape with any number of dimensions by
> passing the number in the constructor (see below for 12 dimensions).
> You cannot change the number of dimensions after that
> MusicShape myMusicShape = new MusicShape(12);
>
> Then set the dimension names as you like, for example, for dimension
> 4....
> myMusicShape.setDimensionName(4, "flutter");
> myMusicShape.setLimits(4, 0, 1000); // dim, low, high
> myMusicShape.setDefault(4, 1.0); // dim, default
>
> Then you could something like this:
> double[] data = new double[12];
> data[0] = note.getPerformanceDataCopy()[0];
> data[1] = note.getPerformanceDataCopy()[1];
> etc
> data[4] = note.getDynamic();
> etc
> myMusicShape.add(data);
>
> Notice that you cannot set a String value in a MusicShape
>
> For more on MusicShape, see the tutorial at
> http://www.algomusic.com/jmsl/tutorial/shapetoot01.html
>
> Are you intending to design an Instrument that looks at this data and
> performs these special events? What do you intend to do with this
> MusicShape once it is filled with this data?
> Do you want to transform this MusicShape in some way and then
> re-transcribe it? If so, you will want to add some smart
> TranscriberListeners that examine the Note data and set the marks you
> want.
> For more on TranscriberListeners , see
> http://www.algomusic.com/jmsl/tutorial/transcribetoot06.html
> Also see source for jmsltestsuite.TranscribeScore8
>
> I am not sure why this error was generated. What version of JMSL are
> you running? Get the latest here:
> http://www.algomusic.com/algomusiclicense/
> request_jmsl_demo_license.html
>
> Thank-you
> Nick Didkovsky
>
> jmsl at music.columbia.edu wrote:
>
>> Hi again,
>> Thanks so much for clarifying how to put Notes into a MusicShape. I
>> noticed in the code that you sent that only the PerformanceData from
>> Note had been added to MusicShape. As I am interested in
>> transformations involving dynamics and marks, etc., I was wondering
>> if there is a convenient way to globally add all of Note's fields to
>> the MusicShape, or would I have to do something like:
>> musicShape.add(note.getDynamic());
>> musicShape.add(note.getCrescIn());
>> musicShape.add(note.getSlurredIn());
>> and so on.
>> If so, I assume I would add these to DimensionNameSpace first? I
>> would like to do this to add custom timbre / articulation markings
>> (fluttertongue, tremolo, ...) that I had set as text on Note as well.
>>
>> On a technical note (no pun intended), I received the following
>> message in the Java console when I tried to run
>> TranscribingUnaryTransform:
>> Exception in thread "main" java.lang.NoSuchMethodError
>> at
>> com.softsynth.jmsl.score.ScoreCanvasSwingJPanel.<init>(ScoreCanvasSwin
>> gJPanel.java)
>> at com.softsynth.jmsl.score.ScoreCanvasSwing.a(ScoreCanvasSwing.java)
>> at
>> com.softsynth.jmsl.score.ScoreCanvasSwing.<init>(ScoreCanvasSwing.java
>> )
>> at
>> com.softsynth.jmsl.score.ScoreCanvasFactory.b(ScoreCanvasFactory.java)
>> at
>> com.softsynth.jmsl.score.ScoreCanvasFactory.createScoreCanvas(ScoreCan
>> vasFactory.java)
>> at com.softsynth.jmsl.score.Score.build(Score.java)
>> at com.softsynth.jmsl.score.Score.<init>(Score.java)
>> at com.softsynth.jmsl.score.Score.<init>(Score.java)
>> at com.softsynth.jmsl.score.Score.<init>(Score.java)
>> at
>> composition.TranscribingUnaryTransform.main(TranscribingUnaryTransform
>> .java:229)
>>
>> The message for TranscribingBinaryTransform was virtually identical:
>> Exception in thread "main" java.lang.NoSuchMethodError
>> at
>> com.softsynth.jmsl.score.ScoreCanvasSwingJPanel.<init>(ScoreCanvasSwin
>> gJPanel.java)
>> at com.softsynth.jmsl.score.ScoreCanvasSwing.a(ScoreCanvasSwing.java)
>> at
>> com.softsynth.jmsl.score.ScoreCanvasSwing.<init>(ScoreCanvasSwing.java
>> )
>> at
>> com.softsynth.jmsl.score.ScoreCanvasFactory.b(ScoreCanvasFactory.java)
>> at
>> com.softsynth.jmsl.score.ScoreCanvasFactory.createScoreCanvas(ScoreCan
>> vasFactory.java)
>> at com.softsynth.jmsl.score.Score.build(Score.java)
>> at com.softsynth.jmsl.score.Score.<init>(Score.java)
>> at com.softsynth.jmsl.score.Score.<init>(Score.java)
>> at
>> composition.TranscribingBinaryTransform.main(TranscribingBinaryTransfo
>> rm.java:186)
>>
>> I'm using Eclipse on Mac OSX 10.3, if that helps. I had no problem
>> running SelectedToMusicShape, but I realize this is a less elegant
>> solution.
>>
>> Thanks again,
>> J
>>
>> ----------------------------------------------------------------------
>> --
>>
>> _______________________________________________
>> jmsl mailing list
>> jmsl at music.columbia.edu
>> http://music.columbia.edu/mailman/listinfo/jmsl
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 6462 bytes
Desc: not available
Url : http://music.columbia.edu/pipermail/jmsl/attachments/20060224/1405e6b7/attachment-0001.bin
More information about the jmsl
mailing list