Tim Walters | 1 Mar 2008 07:23

Scale and Tuning classes

There was talk at one point of having a Scale class in the standard 
distribution. thor and I have cooked up a possible candidate. Features:

--supports independent degrees and tuning
--works as a drop-in replacement for a scale array, viz.:

Pbind(
	\degree, Pseq([0, 1, 2, 3, 4, 5, 6, 7], inf),
	\scale, Scale.ionian(\just),
	\dur, 0.25
).play;

--supports ascending/descending scales
--can change degrees or tuning dynamically, with consistency checks
--can get random scales, with or without constraints
--library of scales and tunings

We'd love to get feedback on this, and I know there are lots of scales 
and tunings not in there yet! (The ones that *are* in there could 
probably use some proofreading as well.)

Class file and demo file attached.

--

-- 

Tim Walters | The Doubtful Palace | http://doubtfulpalace.com
Attachment (ScaleDemo.rtf): application/rtf, 3494 bytes
Scale {
(Continue reading)

James Harkins | 1 Mar 2008 16:14
Picon

Re: Platform, Quarks and stand-alones

I've been thinking this week that it might be good to expand the sclang.cfg concept so that it configures not only library compilation, but also default file locations and perhaps other preferences.

Here is a list of all of the directory setters in the main library:

Method Meta_AbstractSFP:dir_
Method Meta_AbstractSample:dir_
Method Meta_Archive:archiveDir_
Method Meta_Document:dir_
Method Meta_Document:wikiDir_
Method Meta_Instr:dir_
Method Meta_SynthDef:synthDefDir_
Method Platform:recordingsDir_

While most of them could be set after the environment is initialized, synthDefDir and archiveDir are used during initialization -- thus they must be set prior to running any initClassTree activities. Currently there is no mechanism to do this other than hacking the library, and I agree with Ron that this is a weakness.

This should also allow you to override the default location of extension and application support directories.

Other user preferences could be stored here as well. Speaking of which, whatever happened to Stefan Kersten's preferences class? That's really what we're talking about here... it's ironic that SC is one of the most customizable environments out there, while our handling of persistent user preferences is slipshod at best.

hjh


: H. James Harkins

: jamshark70-n2XjBy9Frl0FLkkUnhLBSV6hYfS7NtTn@public.gmane.org

: http://www.dewdrop-world.net

.::!:.:.......:.::........:..!.::.::...:..:...:.:.:.:..:


"Come said the Muse,

Sing me a song no poet has yet chanted,

Sing me the universal."  -- Whitman


_______________________________________________
Sc-devel mailing list
Sc-devel@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
James Harkins | 1 Mar 2008 16:49
Picon

clear number views in server window on quit?

Any objection to this?

Just as an instant impression, it looks weird to me when there are old numbers in the server windows after quitting the server. I also don't like the "?"'s put in there when opening the window. An inactive server should have empty space until it's running.

Since I'll be away from my mac for the week, I'll need to commit today or not until next weekend. If no objection I'll do it today.

hjh

Index: ServerPlusGUI.sc
===================================================================
--- ServerPlusGUI.sc    (revision 7388)
+++ ServerPlusGUI.sc    (working copy)
<at> <at> -132,7 +132,8 <at> <at>
                                booter.setProperty(\value,0);
                                recorder.setProperty(\value,0);
                                recorder.enabled = false;
-
+                               countsViews.do(_.string = "");
                        };
                        booting = {
                                active.stringColor_(Color.new255(255, 140, 0));
<at> <at> -199,7 +200,7 <at> <at>
 
                        if (i < 2, { 
                                numView = gui.staticText.new(w, Rect(0,0, 34, 12));
-                               numView.string = "?";
                                numView.font = font;
                                numView.align = \left;
 
<at> <at> -210,7 +211,7 <at> <at>
                        },{
                                numView = gui.staticText.new(w, Rect(0,0, 50, 12));
                                numView.font = font;
-                               numView.string = "?";
                                numView.align = \left;
                        });
 



: H. James Harkins

: jamshark70-n2XjBy9Frl0FLkkUnhLBSV6hYfS7NtTn@public.gmane.org

: http://www.dewdrop-world.net

.::!:.:.......:.::........:..!.::.::...:..:...:.:.:.:..:


"Come said the Muse,

Sing me a song no poet has yet chanted,

Sing me the universal."  -- Whitman


_______________________________________________
Sc-devel mailing list
Sc-devel@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
nescivi | 1 Mar 2008 17:13
Picon

Re: SwingOSC - Server Panels

Hiho,

the Emacs widgets are not yet GUI compatible; that would need another layer in 
between them, discarding all the size arguments which make little to no sense 
to the Emacs gui, which is more text based.

ok.
Server.makeWindow is overwritten in the scel extensions in the file 
extBuffer.sc

I'll think about how to make it a flag which version of Server.makeWindow is 
used...

Maybe we need a function in between for that...
like: makeGui does what makeWindow does now.
makeWindow normally forwards to makeGui, but is overridden like it is now in 
the scel extension.
That way you could still use the GUI version if on Emacs by calling .makeGui.

Any objections?
It should not change any normal behaviour for anyone...

sincerely,
Marije

On Saturday 01 March 2008 08:05:49 Andrea Valle wrote:
> Well, I don't know, so maybe I'm saying something stupid.
> But, as makeWindow is GUI base,  I would expect it to use swingOsc if
> the latter is the actual GUI handler.
>
> Otherwise, I would understand the rationale.
>
> If you  do
>
> GUI.swing
>
> and then
>
> Server.default.makeWindow
>
> Still you have the emacs widget?
>
> -a-
>
> On 1 Mar 2008, at 10:42, krgn wrote:
> > oh yes true! I tried that (and forgot to mention) but I am linux
> > using emacs where the default is an emacs-widget server panel
> >
> >
> > [Boot][K] localhost  [-> default]
> > [prepare rec]
> >    Avg CPU:     ?%  Peak CPU:     ?%
> >      UGens: ?         Synths: ?         Groups: ?      SynthDefs: ?
> >
> > sorry if this is too obvious...
> >
> > Server.default.makeWindow
> >
> > ?
> >
> > -a-
> >
> > On 1 Mar 2008, at 06:29, krgn wrote:
> >> quick question: how do I get to the default Server Panels in
> >> SwingOSC? I know there are
> >>
> >> Server.local.gui    //and
> >> Server.internal.gui
> >>
> >> but I don't know how to make the proper ones anymore.
> >>
> >> Thanks,
> >>
> >> Karsten
nescivi | 1 Mar 2008 21:49
Picon

[fixed] 1000.0.asCompileString -- dtoa.c issue

Hiho,

I just committed a fix for this problem.

SCons now builds (only) dtoa without the optimisation flag.

This solves the problem.

1000.0.asCompileString

-> 1000.0

And I gained a bit of knowledge on scons...

it's good to have my new laptop!

sincerely,
Marije
ronald kuivila | 2 Mar 2008 04:14

Re: Platform, Quarks and stand-alones

Hi James,

I am all for having all configuration choices in one place.
However, AbstractSFP, AbstractSample, Instr are all crucial classes, so Felix will need to agree before making
that particular change.

RJK


 
On Mar 1, 2008, at 10:14 AM, James Harkins wrote:

I've been thinking this week that it might be good to expand the sclang.cfg concept so that it configures not only library compilation, but also default file locations and perhaps other preferences.

Here is a list of all of the directory setters in the main library:

Method Meta_AbstractSFP:dir_
Method Meta_AbstractSample:dir_
Method Meta_Archive:archiveDir_
Method Meta_Document:dir_
Method Meta_Document:wikiDir_
Method Meta_Instr:dir_
Method Meta_SynthDef:synthDefDir_
Method Platform:recordingsDir_

While most of them could be set after the environment is initialized, synthDefDir and archiveDir are used during initialization -- thus they must be set prior to running any initClassTree activities. Currently there is no mechanism to do this other than hacking the library, and I agree with Ron that this is a weakness.

This should also allow you to override the default location of extension and application support directories.

Other user preferences could be stored here as well. Speaking of which, whatever happened to Stefan Kersten's preferences class? That's really what we're talking about here... it's ironic that SC is one of the most customizable environments out there, while our handling of persistent user preferences is slipshod at best.

hjh


: H. James Harkins
.::!:.:.......:.::........:..!.::.::...:..:...:.:.:.:..:

"Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal."  -- Whitman

_______________________________________________
Sc-devel mailing list

_______________________________________________
Sc-devel mailing list
Sc-devel@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
nescivi | 2 Mar 2008 21:06
Picon

getting a whole bunch of error messages at startup...

Hiho,

with the latest checkout I get a whole bunch of error messages at startup.
Below is the error log.

did anyone change anything that may be causing this?

I will look further into this later, but any pointers are welcome.
It seems that something changed in the startup sequence...

For the relevant Document things: allDocuments seems not to be initialised 
soon enough...

Is there a difference in when .startup is executed and when .initClass?

sincerely,
Marije

init_OSC
compiling class library..
	NumPrimitives = 524
	compiling dir: '/usr/local/share/SuperCollider/SCClassLibrary'
	compiling dir: '/usr/local/share/SuperCollider/Extensions'
  in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/storeLispOn.sc' 
line 117 char 6
	compiling dir: '/home/nescivi/share/SuperCollider/Extensions'
Open ended string ... started on line 148 in 
file '/home/nescivi/share/SuperCollider/Extensions/HelpFile.sc'
	pass 1 done
	Extension overwriting Server:makeWindow
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extBuffer.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Control/ServerPlusGUI.sc'.
	Extension overwriting SynthDesc:makeWindow
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extBuffer.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Control/SynthDescPlusGUI.sc'.
	Extension overwriting Meta_Document:open
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/Document.sc'.
	Extension overwriting Meta_Document:new
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/Document.sc'.
	Extension overwriting Meta_Document:listener
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/Document.sc'.
	Extension overwriting Meta_Document:prBasicNew
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/Document.sc'.
	Extension overwriting Meta_Document:numberOfOpen
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/Document.sc'.
	Extension overwriting Meta_Document:newFromIndex
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/Document.sc'.
	Extension overwriting Meta_Document:prGetLast
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/Document.sc'.
	Extension overwriting Meta_Document:prGetIndexOfListener
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/Document.sc'.
	Extension overwriting String:findHelpFile
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Collections/StringPlusGUI.sc'.
	Extension overwriting String:openHelpFile
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Collections/StringPlusGUI.sc'.
	Extension overwriting String:openHTMLFile
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Collections/StringPlusGUI.sc'.
	Extension overwriting Class:openHelpFile
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/Core/Kernel.sc'.
	Extension overwriting Method:openHelpFile
		in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/Extensions/scel/extDocument.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/Core/Kernel.sc'.
	Extension overwriting Stream:rewriteString
		in 
file '/home/nescivi/share/SuperCollider/quarks/MathLib/classes/LazyLindenmayer/extStringRewrite.sc'.
		Original method in 
file '/home/nescivi/svn/tuberlin/baalman/supercollider/classes/extStringRewrite.sc'.
	Extension overwriting String:matchRules
		in 
file '/home/nescivi/share/SuperCollider/quarks/MathLib/classes/LazyLindenmayer/extStringRewrite.sc'.
		Original method in 
file '/home/nescivi/svn/tuberlin/baalman/supercollider/classes/extStringRewrite.sc'.
	Extension overwriting String:rewriteString
		in 
file '/home/nescivi/share/SuperCollider/quarks/MathLib/classes/LazyLindenmayer/extStringRewrite.sc'.
		Original method in 
file '/home/nescivi/svn/tuberlin/baalman/supercollider/classes/extStringRewrite.sc'.
	Extension overwriting ArrayedCollection:plot
		in 
file '/home/nescivi/share/SuperCollider/quarks/LinuxExternal/extCollectionGNUPlot.sc'.
		Original method in 
file '/var/chroot/etch-ia32/usr/local/share/SuperCollider/SCClassLibrary/Common/GUI/PlusGUI/Math/SignalPlusGUI.sc'.
	Extension overwriting List:asSwingArg
		in 
file '/home/nescivi/Downloads/SwingOSC/SuperCollider/SCClassLibrary/SwingOSC/extSwingOSC.sc'.
		Original method in 
file '/home/nescivi/svn/tuberlin/baalman/supercollider/classes/extSwingList.sc'.
numentries = 944425 / 15924560 = 0.059
	Method Table Size 8334900 bytes
	Number of Method Selectors 5942
	Number of Classes 2680
	big table size 63698240
	Number of Symbols 13564
	Byte Code Size 468704
	compiled 507 files in 0.67 seconds 
compile done
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
JACK server not running
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
JACK server not running
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
JACK server not running
// History.logFolder: /home/nescivi/share/SuperCollider/HistoryLogs
Emacs: Initializing lisp interface.
RESULT = 0
RESULT = 0
RESULT = 0
ERROR: Message 'isMetaClass' not understood.
RECEIVER:
   nil
ARGS:
CALL STACK:
	DoesNotUnderstandError:reportError   080ADD30
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   080AF070
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   080AEFB0
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   080ADB20
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   080AD4F0
		arg this = nil
		arg selector = 'isMetaClass'
		arg args = [*0]
	Meta_Class:initClassTree   080AD580
		arg this = class Class
		arg aClass = nil
		var implementsInitClass = nil
	Meta_Crucial:initClass   080A9A40
		arg this = class Crucial
	Meta_Class:initClassTree   080A99E0
		arg this = class Class
		arg aClass = class Crucial
		var implementsInitClass = nil
	ArrayedCollection:do   080916E0
		arg this = [*368]
		arg function = <instance of Function>
		var i = 195
	Meta_Class:initClassTree   080914D0
		arg this = class Class
		arg aClass = class Object
		var implementsInitClass = nil
	Process:startup   08090A50
		arg this = <instance of Main>
		var time = 1204488181.200555
	Main:startup   080909F0
		arg this = <instance of Main>
ERROR: Message 'detectIndex' not understood.
RECEIVER:
   nil
ARGS:
Instance of Function {    (F79529A0, gc=1C, fmt=00, flg=00, set=01)
  instance variables [2]
    def : instance of FunctionDef in Method Meta_ScelDocument:addToList
    context : Frame (F7952A60) of Meta_ScelDocument:addToList
}
CALL STACK:
	DoesNotUnderstandError:reportError   080AFA90
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   080AF9D0
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   080AF790
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   080AF610
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   080AF5B0
		arg this = nil
		arg selector = 'detectIndex'
		arg args = [*1]
	Meta_ScelDocument:addToList   F7952A60
		arg this = class ScelDocument
		arg doc = <instance of EmacsDocument>
		var key = nil
		var sceld = nil
	EmacsDocument:prAdd   080AF430
		arg this = <instance of EmacsDocument>
	EmacsDocument:prInitFromLisp   080AF910
		arg this = <instance of EmacsDocument>
		arg id = 11
	< FunctionDef in Method Meta_EmacsDocument:initClass >   080AF7F0
		arg id = 11
		arg makeEnvir = nil
		var doc = nil
	Meta_Emacs:lispPerformCommand   F7952B90
		arg this = class Emacs
		arg cmdName = 'documentNew'
		arg args = [*1]
		arg send = false
		var result = nil
	Process:interpretCmdLine   080AF280
		arg this = <instance of Main>
ERROR: Message 'detectIndex' not understood.
RECEIVER:
   nil
ARGS:
Instance of Function {    (F7951C30, gc=1C, fmt=00, flg=00, set=01)
  instance variables [2]
    def : instance of FunctionDef in Method Meta_ScelDocument:addToList
    context : Frame (F6F5DDE0) of Meta_ScelDocument:addToList
}
CALL STACK:
	DoesNotUnderstandError:reportError   080515D0
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   08054580
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   08051830
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   080A3D40
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   08051BE0
		arg this = nil
		arg selector = 'detectIndex'
		arg args = [*1]
	Meta_ScelDocument:addToList   F6F5DDE0
		arg this = class ScelDocument
		arg doc = <instance of EmacsDocument>
		var key = nil
		var sceld = nil
	EmacsDocument:prAdd   080508E0
		arg this = <instance of EmacsDocument>
	EmacsDocument:prInitFromLisp   08050850
		arg this = <instance of EmacsDocument>
		arg id = 10
	< FunctionDef in Method Meta_EmacsDocument:initClass >   080B0100
		arg id = 10
		arg makeEnvir = nil
		var doc = nil
	Meta_Emacs:lispPerformCommand   F6F5E1C0
		arg this = class Emacs
		arg cmdName = 'documentNew'
		arg args = [*1]
		arg send = false
		var result = nil
	Process:interpretCmdLine   0804EFE0
		arg this = <instance of Main>
ERROR: Message 'detectIndex' not understood.
RECEIVER:
   nil
ARGS:
Instance of Function {    (F6F604C0, gc=1C, fmt=00, flg=00, set=01)
  instance variables [2]
    def : instance of FunctionDef in Method Meta_ScelDocument:addToList
    context : Frame (F6F54F30) of Meta_ScelDocument:addToList
}
CALL STACK:
	DoesNotUnderstandError:reportError   08058AC0
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   08058970
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   08058690
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   08058910
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   08058630
		arg this = nil
		arg selector = 'detectIndex'
		arg args = [*1]
	Meta_ScelDocument:addToList   F6F54F30
		arg this = class ScelDocument
		arg doc = <instance of EmacsDocument>
		var key = nil
		var sceld = nil
	EmacsDocument:prAdd   08058420
		arg this = <instance of EmacsDocument>
	EmacsDocument:prInitFromLisp   08054620
		arg this = <instance of EmacsDocument>
		arg id = 8
	< FunctionDef in Method Meta_EmacsDocument:initClass >   08056B10
		arg id = 8
		arg makeEnvir = nil
		var doc = nil
	Meta_Emacs:lispPerformCommand   F6F551F0
		arg this = class Emacs
		arg cmdName = 'documentNew'
		arg args = [*1]
		arg send = false
		var result = nil
	Process:interpretCmdLine   08056710
		arg this = <instance of Main>
ERROR: Message 'detectIndex' not understood.
RECEIVER:
   nil
ARGS:
Instance of Function {    (F6F5F040, gc=1C, fmt=00, flg=00, set=01)
  instance variables [2]
    def : instance of FunctionDef in Method Meta_ScelDocument:addToList
    context : Frame (F6F4F240) of Meta_ScelDocument:addToList
}
CALL STACK:
	DoesNotUnderstandError:reportError   0805E8B0
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   0805EB20
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   0805E910
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   0805EA30
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   0805E6A0
		arg this = nil
		arg selector = 'detectIndex'
		arg args = [*1]
	Meta_ScelDocument:addToList   F6F4F240
		arg this = class ScelDocument
		arg doc = <instance of EmacsDocument>
		var key = nil
		var sceld = nil
	EmacsDocument:prAdd   0805E550
		arg this = <instance of EmacsDocument>
	EmacsDocument:prInitFromLisp   0805DD00
		arg this = <instance of EmacsDocument>
		arg id = 6
	< FunctionDef in Method Meta_EmacsDocument:initClass >   0805BE00
		arg id = 6
		arg makeEnvir = nil
		var doc = nil
	Meta_Emacs:lispPerformCommand   F6F4F520
		arg this = class Emacs
		arg cmdName = 'documentNew'
		arg args = [*1]
		arg send = false
		var result = nil
	Process:interpretCmdLine   0805B890
		arg this = <instance of Main>
ERROR: Message 'detectIndex' not understood.
RECEIVER:
   nil
ARGS:
Instance of Function {    (F6F5E130, gc=1C, fmt=00, flg=00, set=01)
  instance variables [2]
    def : instance of FunctionDef in Method Meta_ScelDocument:addToList
    context : Frame (F6F45C20) of Meta_ScelDocument:addToList
}
CALL STACK:
	DoesNotUnderstandError:reportError   08063DE0
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   0805DC40
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   0805A470
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   08063BA0
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   080634E0
		arg this = nil
		arg selector = 'detectIndex'
		arg args = [*1]
	Meta_ScelDocument:addToList   F6F45C20
		arg this = class ScelDocument
		arg doc = <instance of EmacsDocument>
		var key = nil
		var sceld = nil
	EmacsDocument:prAdd   080632D0
		arg this = <instance of EmacsDocument>
	EmacsDocument:prInitFromLisp   08063480
		arg this = <instance of EmacsDocument>
		arg id = 5
	< FunctionDef in Method Meta_EmacsDocument:initClass >   08063120
		arg id = 5
		arg makeEnvir = nil
		var doc = nil
	Meta_Emacs:lispPerformCommand   F6F455D0
		arg this = class Emacs
		arg cmdName = 'documentNew'
		arg args = [*1]
		arg send = false
		var result = nil
	Process:interpretCmdLine   08061A50
		arg this = <instance of Main>
ERROR: Message 'detectIndex' not understood.
RECEIVER:
   nil
ARGS:
Instance of Function {    (F6F5D150, gc=1C, fmt=00, flg=00, set=01)
  instance variables [2]
    def : instance of FunctionDef in Method Meta_ScelDocument:addToList
    context : Frame (80AADB0) of Meta_ScelDocument:addToList
}
CALL STACK:
	DoesNotUnderstandError:reportError   F6F47010
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   F6F46E00
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   F6F46B60
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   F6F46AA0
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   08066A10
		arg this = nil
		arg selector = 'detectIndex'
		arg args = [*1]
	Meta_ScelDocument:addToList   080AADB0
		arg this = class ScelDocument
		arg doc = <instance of EmacsDocument>
		var key = nil
		var sceld = nil
	EmacsDocument:prAdd   08064F90
		arg this = <instance of EmacsDocument>
	EmacsDocument:prInitFromLisp   F6F46A40
		arg this = <instance of EmacsDocument>
		arg id = 4
	< FunctionDef in Method Meta_EmacsDocument:initClass >   08065BF0
		arg id = 4
		arg makeEnvir = nil
		var doc = nil
	Meta_Emacs:lispPerformCommand   080ACE90
		arg this = class Emacs
		arg cmdName = 'documentNew'
		arg args = [*1]
		arg send = false
		var result = nil
	Process:interpretCmdLine   080656B0
		arg this = <instance of Main>
ERROR: Message 'detectIndex' not understood.
RECEIVER:
   nil
ARGS:
Instance of Function {    (F6F5C350, gc=1C, fmt=00, flg=00, set=01)
  instance variables [2]
    def : instance of FunctionDef in Method Meta_ScelDocument:addToList
    context : Frame (F6F46220) of Meta_ScelDocument:addToList
}
CALL STACK:
	DoesNotUnderstandError:reportError   F6F48450
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   F6F483F0
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   F6F482D0
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   F6F48270
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   F6F48000
		arg this = nil
		arg selector = 'detectIndex'
		arg args = [*1]
	Meta_ScelDocument:addToList   F6F46220
		arg this = class ScelDocument
		arg doc = <instance of EmacsDocument>
		var key = nil
		var sceld = nil
	EmacsDocument:prAdd   F6F480C0
		arg this = <instance of EmacsDocument>
	EmacsDocument:prInitFromLisp   F6F47EE0
		arg this = <instance of EmacsDocument>
		arg id = 3
	< FunctionDef in Method Meta_EmacsDocument:initClass >   F6F47E20
		arg id = 3
		arg makeEnvir = nil
		var doc = nil
	Meta_Emacs:lispPerformCommand   F6F46590
		arg this = class Emacs
		arg cmdName = 'documentNew'
		arg args = [*1]
		arg send = false
		var result = nil
	Process:interpretCmdLine   F6F48060
		arg this = <instance of Main>
ERROR: Message 'detectIndex' not understood.
RECEIVER:
   nil
ARGS:
Instance of Function {    (F6F5A9D0, gc=1C, fmt=00, flg=00, set=01)
  instance variables [2]
    def : instance of FunctionDef in Method Meta_ScelDocument:addToList
    context : Frame (80A6C10) of Meta_ScelDocument:addToList
}
CALL STACK:
	DoesNotUnderstandError:reportError   F6F493E0
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError   F6F49290
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError   F6F492F0
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw   F6F491D0
		arg this = <instance of DoesNotUnderstandError>
	Object:doesNotUnderstand   F6F49170
		arg this = nil
		arg selector = 'detectIndex'
		arg args = [*1]
	Meta_ScelDocument:addToList   080A6C10
		arg this = class ScelDocument
		arg doc = <instance of EmacsDocument>
		var key = nil
		var sceld = nil
	EmacsDocument:prAdd   F6F49110
		arg this = <instance of EmacsDocument>
	EmacsDocument:prInitFromLisp   F6F47520
		arg this = <instance of EmacsDocument>
		arg id = 2
	< FunctionDef in Method Meta_EmacsDocument:initClass >   F6F48E10
		arg id = 2
		arg makeEnvir = nil
		var doc = nil
	Meta_Emacs:lispPerformCommand   0809DD20
		arg this = class Emacs
		arg cmdName = 'documentNew'
		arg args = [*1]
		arg send = false
		var result = nil
	Process:interpretCmdLine   F6F48C90
		arg this = <instance of Main>
Emacs: Built symbol table in 0.143 seconds
Josh Parmenter | 2 Mar 2008 21:19

MusicXML

Hi all.

I am finally getting around to exploring MusicXML a bit, and wanted to check and see if anyone has already started to make some classes for writing MusicXML files out. If not, I am going to get going on some of this work (as I think it would compliment the Ctk and GUIDO classes I already have working).

Let me know if anyone has done this already (saves me some time) or has started and stopped (perhaps there is some work that can be finished).

Finally... Please let me know if you are interested in testing :)

Thanks,

Josh

******************************************

/* Joshua D. Parmenter

http://www.realizedsound.net/josh/


“Every composer – at all times and in all cases – gives his own interpretation of how modern society is structured: whether actively or passively, consciously or unconsciously, he makes choices in this regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a revolutionary, historical or social palingenesis." - Luigi Nono

*/

_______________________________________________
Sc-devel mailing list
Sc-devel@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
Jan Trutzschler | 2 Mar 2008 21:31

Re: MusicXML

Hi Josh,
a while back i started to implement some basic Pbind -> GUIDO classes  
(don't know whether they still work ...). But currently i'm using a  
very simple conversion from a time and a midinote array to GUIDO.
would be very interested in seeing the things you did.
cu
Jan

On Mar 2, 2008, at 9:19 PM, Josh Parmenter wrote:

> Hi all.
>
> I am finally getting around to exploring MusicXML a bit, and wanted  
> to check and see if anyone has already started to make some classes  
> for writing MusicXML files out. If not, I am going to get going on  
> some of this work (as I think it would compliment the Ctk and GUIDO  
> classes I already have working).
>
> Let me know if anyone has done this already (saves me some time) or  
> has started and stopped (perhaps there is some work that can be  
> finished).
>
> Finally... Please let me know if you are interested in testing :)
>
> Thanks,
>
> Josh
>
> ******************************************
> /* Joshua D. Parmenter
> http://www.realizedsound.net/josh/
>
> “Every composer – at all times and in all cases – gives his own  
> interpretation of how modern society is structured: whether  
> actively or passively, consciously or unconsciously, he makes  
> choices in this regard. He may be conservative or he may subject  
> himself to continual renewal; or he may strive for a revolutionary,  
> historical or social palingenesis." - Luigi Nono
> */
>
> _______________________________________________
> Sc-devel mailing list
> Sc-devel@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
Josh Parmenter | 2 Mar 2008 21:37

Re: MusicXML

Jan - if you downlod the Ctk quark, the GUIDO is in there... a small  
example is below. NoteAbility Pro has recently been updated, and most  
tags are now recognized.

(
var score, ins1, ins2;

score = GuidoScore.new;
ins1 = GuidoVoice(\fl, \flute);
ins2 = GuidoVoice(\rec, \recorder);
score.add(ins1);
score.add(ins2);

// first notes
ins1.add(GuidoNote(60, 1.0, 1.0, [GuidoDynamic(\i, \fff),  
GuidoArticulation(\accent)]));
ins2.add(GuidoNote(60, 1.0, 1.0, [GuidoDynamic(\i, \fff),  
GuidoArticulation(\accent)]));

score.output("/Users/joshp/Documents/currentMusic/FlutePieceIdeas/ 
flute.gmn");

)

Best,

Josh

On Mar 2, 2008, at 2:31 PM, Jan Trutzschler wrote:

> Hi Josh,
> a while back i started to implement some basic Pbind -> GUIDO classes
> (don't know whether they still work ...). But currently i'm using a
> very simple conversion from a time and a midinote array to GUIDO.
> would be very interested in seeing the things you did.
> cu
> Jan
>
> On Mar 2, 2008, at 9:19 PM, Josh Parmenter wrote:
>
>> Hi all.
>>
>> I am finally getting around to exploring MusicXML a bit, and wanted
>> to check and see if anyone has already started to make some classes
>> for writing MusicXML files out. If not, I am going to get going on
>> some of this work (as I think it would compliment the Ctk and GUIDO
>> classes I already have working).
>>
>> Let me know if anyone has done this already (saves me some time) or
>> has started and stopped (perhaps there is some work that can be
>> finished).
>>
>> Finally... Please let me know if you are interested in testing :)
>>
>> Thanks,
>>
>> Josh
>>
>> ******************************************
>> /* Joshua D. Parmenter
>> http://www.realizedsound.net/josh/
>>
>> “Every composer – at all times and in all cases – gives his own
>> interpretation of how modern society is structured: whether
>> actively or passively, consciously or unconsciously, he makes
>> choices in this regard. He may be conservative or he may subject
>> himself to continual renewal; or he may strive for a revolutionary,
>> historical or social palingenesis." - Luigi Nono
>> */
>>
>> _______________________________________________
>> Sc-devel mailing list
>> Sc-devel@...
>> http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
>
> _______________________

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own  
interpretation of how modern society is structured: whether actively  
or passively, consciously or unconsciously, he makes choices in this  
regard. He may be conservative or he may subject himself to continual  
renewal; or he may strive for a revolutionary, historical or social  
palingenesis." - Luigi Nono
*/

Gmane