[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