[Stk] New STK release (4.4.0)

Julius Smith jos at ccrma.Stanford.EDU
Sat May 2 13:08:51 PDT 2009


Hi Gary,

The following change to configure.ac seems to add "-flat_namespace" 
to all the generated makefiles:

diff -cb configure0.ac configure.ac
*** configure0.ac       2009-05-02 12:24:40.000000000 -0700
--- configure.ac        2009-05-02 12:37:57.000000000 -0700
***************
*** 110,115 ****
--- 110,116 ----
       ;;

       *-apple*)
+     CPPFLAGS="$CPPFLAGS -flat_namespace"
       AC_ARG_WITH(jack, [  --with-jack = choose JACK server support 
(unix only)], [
       api="$api -D__UNIX_JACK__"
       AC_MSG_RESULT(using JACK)

(followed by autoconf, of course, to regenerate configure).

With this and my first reported change, all three examples are 
compiling, as well as ragamatic and demo (I tested Physical.bat and 
ragamat and heard some good sounds :-) ).

Cheers,
Julius

At 12:23 PM 5/2/2009, Julius Smith wrote:
>Hi Gary,
>
>To get the three example programs to link (sine sineosc foursine), I 
>needed to add "-flat_namespace" to the CFLAGS:
>
>diff -cb Makefile0 Makefile
>*** Makefile0   2009-05-02 12:05:22.000000000 -0700
>--- Makefile    2009-05-02 12:18:18.000000000 -0700
>***************
>*** 18,23 ****
>--- 18,24 ----
>   DEFS    += -D__LITTLE_ENDIAN__
>   CFLAGS   = -O3 -Wall
>   CFLAGS  += -I$(INCLUDE) -I$(INCLUDE)/../src/include
>+ CFLAGS  += -flat_namespace
>   LIBRARY = -lpthread -lm  -framework CoreAudio -framework 
> CoreFoundation -framework CoreMidi
>
>-------------------
>
>I don't know if this is the best way to fix the problem, but without 
>it, the configure-generated Makefile gets tons of undefined globals 
>when linking.  (There is no LDFLAGS, so I used CFLAGS.)
>
>Julius
>
>At 12:01 PM 5/2/2009, Julius Smith wrote:
>>Hi Gary,
>>
>>Here's what I needed to get configure to work on Mac OS X:
>>
>>./configure CXX=gcc LDFLAGS=-L/opt/local/lib --with-core
>>
>>The "nonobvious" override was LDFLAGS.  If not specified, it is 
>>autogenerated without the -L, leading to the following configure failure:
>>
>>   configure:2119: error: C++ compiler cannot create executables
>>
>>This is because it generated the compiler test as
>>
>>   configure:2068: g++   /opt/local/lib conftest.cpp  >&5
>>
>>I.e., LDFLAGS expands without an "-L" in front of it.  I tried to 
>>see how to fix this in configure.ac, but it seems rather to be a 
>>bug in autoconf.
>>
>>By the way, I hear good things about SCons.  Paul Davis switched 
>>over to it for Ardour et al. some time ago.  The autoconf tools 
>>appear unmaintainably complicated to me (though impressive).
>>
>>Cheers,
>>Julius
>>
>>At 11:48 AM 4/30/2009, Gary Scavone wrote:
>>>Dear STKers,
>>>
>>>I just finished a new release of STK.  This update has been "in the
>>>works" for more than a year and a half.  The most pressing issue was
>>>to get rid of the virtual tick() function structure, which made things
>>>very much slower than they should have been.  That entailed some
>>>significant restructuring of the code and it took a long time to
>>>determine the best way to proceed.  The new distribution should be at
>>>least 30-50% faster than before, achieved in large part by inlining
>>>many of the tick() functions.
>>>
>>>Significant changes include:
>>>
>>>- All classes embedded in the "stk" namespace (except RtAudio, RtMidi,
>>>and RtError).
>>>- Class WaveLoop renamed FileLoop.
>>>- Significant efficiency improvements via code restructuring and
>>>inlining.
>>>- Some class source (.cpp) files deleted as part of inlining
>>>(Generator, Filter, Function, WvIn, WvOut, Effect, Instrmnt, BowTable,
>>>ReedTable, JetTable, Vector3D).
>>>- Updates to RtAudio and RtMidi.
>>>- Previous "tickFrame()" functions renamed "tick" for more consistent
>>>API.
>>>- More consistent and scalable approach to multichannel data and
>>>computations.
>>>- Multichannel support added to Granulate class.
>>>- Filter class made abstract. New Iir and Fir classes made for non-
>>>order-specific filtering.
>>>- New TapDelay class.
>>>- SubNoise class deleted (same as sub-sampled "ticking" of Noise class).
>>>
>>>The easy way to deal with the namespace is to put a "using namespace
>>>stk;" at the top of your program files.
>>>
>>>As usual, everything is detailed at the website:
>>>
>>>     http://ccrma.stanford.edu/software/stk/
>>>
>>>Happy programming!
>>>
>>>Regards,
>>>
>>>--gary
>>>
>>>_______________________________________________
>>>Stk mailing list
>>>Stk at ccrma.stanford.edu
>>>http://ccrma-mail.stanford.edu/mailman/listinfo/stk
>>
>>
>>Julius O. Smith III <jos at ccrma.stanford.edu>
>>Prof. of Music and Assoc. Prof. (by courtesy) of Electrical Engineering
>>CCRMA, Stanford University
>>http://ccrma.stanford.edu/~jos/
>
>
>Julius O. Smith III <jos at ccrma.stanford.edu>
>Prof. of Music and Assoc. Prof. (by courtesy) of Electrical Engineering
>CCRMA, Stanford University
>http://ccrma.stanford.edu/~jos/


Julius O. Smith III <jos at ccrma.stanford.edu>
Prof. of Music and Assoc. Prof. (by courtesy) of Electrical Engineering
CCRMA, Stanford University
http://ccrma.stanford.edu/~jos/  



More information about the Stk mailing list