[Cs-dev] ftload restriction
Date | 2009-04-21 19:02 |
From | joachim heintz |
Subject | [Cs-dev] ftload restriction |
At the moment, ftload just works with power-of-two tables. Can this restriction be suspended? This would make working with ftables more flexible. Saving a ftable of non-power-of-two size with ftsave is no problem. Just reading doesn't work. Thanks very much if someone can do this - joachim ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-04-27 14:56 |
From | joachim heintz |
Subject | Re: [Cs-dev] ftload restriction |
I'd like to ask this again. Thanks for any reply - joachim Am 21.04.2009 um 20:02 schrieb joachim heintz: > At the moment, ftload just works with power-of-two tables. Can this > restriction be suspended? This would make working with ftables more > flexible. > > Saving a ftable of non-power-of-two size with ftsave is no problem. > Just reading doesn't work. > > Thanks very much if someone can do this - > > joachim > > ------------------------------------------------------------------------------ > Stay on top of everything new and different, both inside and > around Java (TM) technology - register by April 22, and save > $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. > 300 plus technical and hands-on sessions. Register today. > Use priority code J9JMT32. http://p.sf.net/sfu/p > _______________________________________________ > Csound-devel mailing list > Csound-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/csound-devel ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-04-27 19:54 |
From | victor |
Subject | Re: [Cs-dev] ftload restriction |
I am not sure saving works with ftsave. Anyway I change the code for ftsave & ftload to allow for NP2 tables. Unfortunately, the k-rate versions ftload_k etc are not possible to be changed at this point, but with more investigation it might be OK. Just watchout that you might have trouble if sizes of allocated tables change in performance. Use this feature with care. I'll add this change to CVS now. Victor ----- Original Message ----- From: "joachim heintz" |
Date | 2009-04-27 21:12 |
From | joachim heintz |
Subject | Re: [Cs-dev] ftload restriction |
Thanks a lot, Victor. The situation I missed the ability of reading NP2 tables was at i-pass, so I'm glad having this now. Best - joachim Am 27.04.2009 um 20:54 schrieb victor: > I am not sure saving works with ftsave. Anyway I change the code for > ftsave & ftload to allow for NP2 tables. Unfortunately, the k-rate > versions ftload_k etc are not possible to be changed at this point, > but > with more investigation it might be OK. > > Just watchout that you might have trouble if sizes of allocated tables > change in performance. Use this feature with care. > > I'll add this change to CVS now. > > Victor > ----- Original Message ----- > From: "joachim heintz" |
Date | 2009-04-27 23:10 |
From | victor |
Subject | [Cs-dev] check for float size |
Would it be possible/desirable for us to have means of querying the float size from some header file? This would facilitate life for people linking against libcsound64 who are not aware of the need for the token USE_DOUBLE. Victor ------------------------------------------------------------------------------ Register Now & Save for Velocity, the Web Performance & Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance & Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-04-28 00:25 |
From | Anthony Kozar |
Subject | Re: [Cs-dev] check for float size |
It would be fine with me to have the SConstruct script generate a "myflt.h" file or some such file that defines MYFLT. This header could be included by sysdep.h and installed with every distribution of Csound. The only problem I can think off the top of my head would be preventing Scons from rebuilding everything every time it is run (because the myflt.h header would change and be included by virtually all targets). The logic in Sconstruct could be made "smart" to avoid rewriting the header if it exists AND the contents are correct for the build options specified. Anthony victor wrote on 4/27/09 6:10 PM: > Would it be possible/desirable for us to have means > of querying the float size from some header file? This > would facilitate life for people linking against libcsound64 > who are not aware of the need for the token USE_DOUBLE. ------------------------------------------------------------------------------ Register Now & Save for Velocity, the Web Performance & Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance & Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-04-28 09:18 |
From | jpff@cs.bath.ac.uk |
Subject | Re: [Cs-dev] check for float size |
> Would it be possible/desirable for us to have means > of querying the float size from some header file? This > would facilitate life for people linking against libcsound64 > who are not aware of the need for the token USE_DOUBLE. > > Victor > > Easy -- could place in a spare slot in CSOUND structure if that is what you mean. And initialised somewhere in the libraried stuff. ==John ff ------------------------------------------------------------------------------ Register Now & Save for Velocity, the Web Performance & Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance & Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-04-28 16:21 |
From | victor |
Subject | Re: [Cs-dev] check for float size |
I thought of that, but would that not be too late for a program to use? I mean, they would have to check this at compile time I suppose, or is there a simple run time solution? I originally thought: if (csoundGetFloatSize(csound) == 32) /* do something */ But that would probably mean having two versions of the same code, for float and doubles, would it not? ----- Original Message ----- From: |
Date | 2009-04-28 16:40 |
From | Michael Gogins |
Subject | Re: [Cs-dev] check for float size |
Typically, the client could call this function, set a flag, and then wherever they communicate with the API, they could convert their data to the appropriate type and/or type cast it to the appropriate type before calling a function pointer that was type casted to the appropriate signature. It might involve type casting the Csound API function pointers to named functions with the appropriate signature, e.g. double **(csoundDoubleGetSpout*)(CSOUND) = (double **(*)(CSOUND *) dlsym(csoundLibrary, "csoundGetSpout"); double **myDoubleBuffer; float **myFloatBuffer; if (csoundIsDouble) { myDoubleBuffer = csoundDoubleGetSpout(csound); } else { myFloatBuffer = csoundFloatGetSpout(csound); } Hope this helps, Mike On 4/28/09, victor |
Date | 2009-04-28 17:40 |
From | Anthony Kozar |
Subject | Re: [Cs-dev] check for float size |
I was under the impression that you are looking for a compile-time solution because the doubles and floats libraries usually have different names, making it unlikely that a program might be linked to either one at run-time. A run-time solution would probably involve dyld-ing the library after the program is launched and then using code that could flexibly interface to either floats or doubles (or two sets of code). Alternatively, on OS X, you could weak link to both versions of the library if you keep all of the interface code in separate files. One file would include csound.h with USE_DOUBLE and one without. Anthony victor wrote on 4/28/09 11:21 AM: > I thought of that, but would that not be too late for a program to use? I > mean, > they would have to check this at compile time I suppose, or is there > a simple run time solution? > > I originally thought: > > if (csoundGetFloatSize(csound) == 32) > /* do something */ > > But that would probably mean having two versions of the same code, > for float and doubles, would it not? > > > ----- Original Message ----- > From: |
Date | 2009-04-28 18:41 |
From | victor |
Subject | Re: [Cs-dev] check for float size |
The trouble is twofold: linking to the correctly lib and interpreting MYFLT correctly. I think a compile-time solution is better since it does not require special code. Michael's solution would work, but I think it complicates matters, we should just be able to use MYFLT directly, with no need for extra conversion or copying. A recent reason for this is that I am supporting Yann Orlarey's efforts to create a FAUST output option for Csound and I am trying to find a neat solution for him to generate code that is ready for 64bit or 32bit csound. Victor ----- Original Message ----- From: "Anthony Kozar" |
Date | 2009-04-28 18:43 |
From | Steven Yi |
Subject | Re: [Cs-dev] check for float size |
Hi Victor, Just a comment, that's great to hear about support for FAUST output! If you need any help for testing or otherwise, just let me know! steven On Tue, Apr 28, 2009 at 10:41 AM, victor |
Date | 2009-04-28 19:56 |
From | victor |
Subject | Re: [Cs-dev] check for float size |
yes, I am very pleased Yann is doing this. I'll keep this list posted. Victor ----- Original Message ----- From: "Steven Yi" |
Date | 2009-04-28 20:22 |
From | Michael Gogins |
Subject | Re: [Cs-dev] check for float size |
I think this is great, I'm looking forward to trying it. I think it will help us design great Csound instruments; you can essentially design your instrument as an opcode and pass all the instr pfields to the opcode. Regards, Mike On 4/28/09, victor |
Date | 2009-04-28 20:47 |
From | Anthony Kozar |
Subject | Re: [Cs-dev] check for float size |
My previous suggestion should help eliminate the need to define USE_DOUBLE in client code. However, it still requires that the client build script know where the Csound headers are and what the library is called for the version that it wants to use. The build script for a client could compile a simple program to determine the MYFLT size by using the existing API function csoundGetSizeOfMYFLT() but compiling that program might have the same issues as compiling the client. Problems like this are usually solved with other libraries by installing a program-config script along with the library that helps you find out the correct compiler and linker options to use. So, csound-config might output something like this on OS X for floats "-I/Library/Frameworks/CsoundLib.framework/Versions/5.2/Headers -framework CsoundLib" and this for doubles "-DUSE_DOUBLE -I/Library/Frameworks/CsoundLib64.framework/Versions/5.2/Headers -framework CsoundLib64" I'm not sure how we want to proceed though, especially since we intend for both the floats and doubles versions to be able to coexist on the same machine. In the case of FAUST, I suppose using floats or doubles could be a config option for the build script of the FAUST output ? Anthony victor wrote on 4/28/09 1:41 PM: > The trouble is twofold: linking to the correctly lib and interpreting > MYFLT correctly. I think a compile-time solution is better since > it does not require special code. Michael's solution would work, but > I think it complicates matters, we should just be able to use MYFLT > directly, with no need for extra conversion or copying. > > A recent reason for this is that I am supporting Yann Orlarey's efforts to > create a FAUST output option for Csound and I am trying to find > a neat solution for him to generate code that is ready for 64bit or > 32bit csound. ------------------------------------------------------------------------------ Register Now & Save for Velocity, the Web Performance & Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance & Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2009-04-28 21:02 |
From | Michael Gogins |
Subject | Re: [Cs-dev] check for float size |
I beg your indulgence as I repeat my call to omit the float version of csound, and to produce only the double version. Alternatively, to omit the double version, and produce only the float version. The criteria would be, of course, to measure how fast each build runs, and do double-blind listening and mathematical comparison tests to see how good each build sounds. The current situation is a big waste of time unless, and only unless, one of the builds is hopeless at efficiency, and the other is hopeless at precision. Regards, Mike On 4/28/09, Anthony Kozar |
Date | 2009-04-28 21:10 |
From | Steven Yi |
Subject | Re: [Cs-dev] check for float size |
Well, I'm all for double version. However, we have backwards compatibility to deal with, as some projects will only render with float version if their analysis files are float. On Tue, Apr 28, 2009 at 1:02 PM, Michael Gogins |
Date | 2009-04-28 21:17 |
From | Michael Gogins |
Subject | Re: [Cs-dev] check for float size |
I think that could be dealt with using either conversion utilities, or some extra coding in the existing utilities. Regards, Mike On 4/28/09, Steven Yi |
Date | 2009-04-28 23:02 |
From | Felipe Sateler |
Subject | Re: [Cs-dev] check for float size |
Attachments | None None None |
Date | 2009-04-29 13:19 |
From | Michael Gogins |
Subject | Re: [Cs-dev] check for float size |
Thank you. On Linux, then, the decision would seem not to require any brains. I will perform similar tests myself on both Linux and Windows, when I get the time, and obviously this kind of thing does not actually take a lot of time to do. Regards, Mike On 4/28/09, Felipe Sateler |
Date | 2009-04-29 13:30 |
From | Andres Cabrera |
Subject | Re: [Cs-dev] check for float size |
The floats build will still be of use for older machines. Will the floats option be completely removed, or the idea is to distribute only the doubles version, but have the floats version as an alternative compile option? Cheers, Andrés On Wed, Apr 29, 2009 at 7:19 AM, Michael Gogins |
Date | 2009-04-29 15:40 |
From | Michael Gogins |
Subject | Re: [Cs-dev] check for float size |
I propose to deprecate the float version, to distribute only the double version, and to keep the float version around in case anyone really needs it. My results are that the float version is somewhat faster on Windows, I hear that the double version is quite a bit faster on Linux, and I would like to know what the story is on the Mac. I do not wish to do anything hasty or that would alienate users, but I think the current situation is not exactly optimal. Regards, Mike On 4/29/09, Andres Cabrera |
Date | 2009-04-29 15:58 |
From | Felipe Sateler |
Subject | Re: [Cs-dev] check for float size |
Attachments | None None None |
Date | 2009-04-29 16:31 |
From | victor |
Subject | Re: [Cs-dev] check for float size |
I would prefer if this is done by stages. First move USE_DOUBLE to USE_FLOAT, so that MYFLT is by default double in the next release, but still distribute both, encouraging Csound API users to link to 64bit version by default, as well as users . This can also allow us to assess any outstanding issues that might arise with say the Python module on OSX etc.. I would be a bit worried to drop and move to 64bit-only as my experience is that the float version has been probably the most used and debugged (in terms of package release etc), esp. in platforms such as OSX. On fedora, for instance official packages only support floats AFAIK. I am not keen on having a release out there that is problematic and broken in many places. The transition would allow us to make sure most things are correct. But I agree we should move to 64bit and start the move now. This would be a good thing. Victor ----- Original Message ----- From: "Michael Gogins" |
Date | 2009-04-29 16:48 |
From | Michael Gogins |
Subject | Re: [Cs-dev] check for float size |
Yes, I also agree that there are too many options in the Csound build system. Since the purpose of Csound is to include all possible audible and musical bells and whistles, I believe that all features that are available on all platforms should be mandatory in the build. Also, I would prefer it if other features, that are not available on all platforms, even if they are highly desirable and widely used on some platforms, were required to be plugins. What do you think? Regards, Mike On 4/29/09, Felipe Sateler |