Csound Csound-dev Csound-tekno Search About

[Cs-dev] Building both floats and doubles

Date2009-05-26 02:52
FromFelipe Sateler
Subject[Cs-dev] Building both floats and doubles
I've been thinking about changing the csound Debian packaging to
support both 32 and 64 bit builds. There is, however, one major
problem. While the csound library itself has a different name for each
version, allowing both to be installed at the same time, none of the
other libraries do. Plugins could be easily configured to install on
separate paths and define appropriate OPCODEDIR/OPCODE64DIR. However,
the interface libraries do not encode the floating point size in their
names, thus making it impossible to install both at the same time.
libcsnd.so would need to be renamed, and lua/python/java bindings
would have to conflict with each other (because there is no meaningful
way in which this can be done without renaming the module, and I think
it doesn't make much sense to have both). Alternatively, I could allow
the csound library to be both sizes, but only allow a single version
of libcsnd.so (and thus, all the bindings).
The second option is clearly suboptimal, but it is simpler, and is
better than the current situation (although, inside debian, nobody
uses libcsound yet, and the only prospective package I know of is
qutecsound, which wouldn't benefit since it uses libcsnd.so). However,
just supporting different versions of the same executable at the same
time is a significant pain, and I won't do it unless somebody shows me
it has some clear advantages.
The first option is technically superior, but it would mean breaking
existing users of libcsnd.so (how many of these are out there?
qutecsound and CsoundAC are the only ones that I am aware of). Users
of python/lua/java interfaces will not have a problem because those
wrappers would be changed at the same time as csound. I think the
safest way to do this (if there is need to) is to just change the name
and (unfortunately) requiring applications to change if they want to
use the 64bit version.

Do you people think it is worth it? I only use doubles version, but
apparently some people have uses for floats due to its perceived
performance benefit (which may not always exist, as we've seen). And
by worth it, I mean breaking every user of the csnd C++ wrapper.
Developers, do you think this increase in complexity is worthwile? I
ask because I remember some talk about just dropping floats a while
ago.


Saludos,
Felipe Sateler

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-05-26 08:32
Fromvictor
SubjectRe: [Cs-dev] Building both floats and doubles
My opinion on this matter is that we should perhaps start moving
towards support doubles only and have clear roadmap for that.
Eventually floats could still be built from sources, but not supported
in binary distributions.

Victor
----- Original Message ----- 
From: "Felipe Sateler" 
To: "Developer discussions" 
Sent: Tuesday, May 26, 2009 2:52 AM
Subject: [Cs-dev] Building both floats and doubles


> I've been thinking about changing the csound Debian packaging to
> support both 32 and 64 bit builds. There is, however, one major
> problem. While the csound library itself has a different name for each
> version, allowing both to be installed at the same time, none of the
> other libraries do. Plugins could be easily configured to install on
> separate paths and define appropriate OPCODEDIR/OPCODE64DIR. However,
> the interface libraries do not encode the floating point size in their
> names, thus making it impossible to install both at the same time.
> libcsnd.so would need to be renamed, and lua/python/java bindings
> would have to conflict with each other (because there is no meaningful
> way in which this can be done without renaming the module, and I think
> it doesn't make much sense to have both). Alternatively, I could allow
> the csound library to be both sizes, but only allow a single version
> of libcsnd.so (and thus, all the bindings).
> The second option is clearly suboptimal, but it is simpler, and is
> better than the current situation (although, inside debian, nobody
> uses libcsound yet, and the only prospective package I know of is
> qutecsound, which wouldn't benefit since it uses libcsnd.so). However,
> just supporting different versions of the same executable at the same
> time is a significant pain, and I won't do it unless somebody shows me
> it has some clear advantages.
> The first option is technically superior, but it would mean breaking
> existing users of libcsnd.so (how many of these are out there?
> qutecsound and CsoundAC are the only ones that I am aware of). Users
> of python/lua/java interfaces will not have a problem because those
> wrappers would be changed at the same time as csound. I think the
> safest way to do this (if there is need to) is to just change the name
> and (unfortunately) requiring applications to change if they want to
> use the 64bit version.
>
> Do you people think it is worth it? I only use doubles version, but
> apparently some people have uses for floats due to its perceived
> performance benefit (which may not always exist, as we've seen). And
> by worth it, I mean breaking every user of the csnd C++ wrapper.
> Developers, do you think this increase in complexity is worthwile? I
> ask because I remember some talk about just dropping floats a while
> ago.
>
>
> Saludos,
> Felipe Sateler
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity professionals. 
> Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, &
> iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel 


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-05-26 13:03
FromMichael Gogins
SubjectRe: [Cs-dev] Building both floats and doubles
I propose that we simply move to support only one sample size. I would
prefer double, but I can live with float.

The motive for double was a hypothesis that audio precision would
improve. It did improve, but the cases where the improvement is
audible are few and subtle. Therefore, I believe we should standardize
on the audio sample size whose performance is optimum.

This fastest sample size seems to be different on different
architectures, but I don't see why that is a problem. In a sense, it's
even an advantage, as it would ensure that we continue to maintain the
build for both sample sizes.

I propose that we conduct tests of representative performance use
cases on OS X, Windows, and Linux, and standardize packages for the
best performing sample size on each platform. I also propose that we
repeat my double blind tests of audio rendering precision with more
formal use cases and on different platforms.

Your use of 'R' shows that we could write Python scripts that can
automate the builds and the performance testing, and analyze the
results. We could do the same with ABX comparison if we write a little
Python GUI for the ABX tests.

Regards,
Mike

On 5/26/09, victor  wrote:
> My opinion on this matter is that we should perhaps start moving
> towards support doubles only and have clear roadmap for that.
> Eventually floats could still be built from sources, but not supported
> in binary distributions.
>
> Victor
> ----- Original Message -----
> From: "Felipe Sateler" 
> To: "Developer discussions" 
> Sent: Tuesday, May 26, 2009 2:52 AM
> Subject: [Cs-dev] Building both floats and doubles
>
>
>> I've been thinking about changing the csound Debian packaging to
>> support both 32 and 64 bit builds. There is, however, one major
>> problem. While the csound library itself has a different name for each
>> version, allowing both to be installed at the same time, none of the
>> other libraries do. Plugins could be easily configured to install on
>> separate paths and define appropriate OPCODEDIR/OPCODE64DIR. However,
>> the interface libraries do not encode the floating point size in their
>> names, thus making it impossible to install both at the same time.
>> libcsnd.so would need to be renamed, and lua/python/java bindings
>> would have to conflict with each other (because there is no meaningful
>> way in which this can be done without renaming the module, and I think
>> it doesn't make much sense to have both). Alternatively, I could allow
>> the csound library to be both sizes, but only allow a single version
>> of libcsnd.so (and thus, all the bindings).
>> The second option is clearly suboptimal, but it is simpler, and is
>> better than the current situation (although, inside debian, nobody
>> uses libcsound yet, and the only prospective package I know of is
>> qutecsound, which wouldn't benefit since it uses libcsnd.so). However,
>> just supporting different versions of the same executable at the same
>> time is a significant pain, and I won't do it unless somebody shows me
>> it has some clear advantages.
>> The first option is technically superior, but it would mean breaking
>> existing users of libcsnd.so (how many of these are out there?
>> qutecsound and CsoundAC are the only ones that I am aware of). Users
>> of python/lua/java interfaces will not have a problem because those
>> wrappers would be changed at the same time as csound. I think the
>> safest way to do this (if there is need to) is to just change the name
>> and (unfortunately) requiring applications to change if they want to
>> use the 64bit version.
>>
>> Do you people think it is worth it? I only use doubles version, but
>> apparently some people have uses for floats due to its perceived
>> performance benefit (which may not always exist, as we've seen). And
>> by worth it, I mean breaking every user of the csnd C++ wrapper.
>> Developers, do you think this increase in complexity is worthwile? I
>> ask because I remember some talk about just dropping floats a while
>> ago.
>>
>>
>> Saludos,
>> Felipe Sateler
>>
>> ------------------------------------------------------------------------------
>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>> is a gathering of tech-side developers & brand creativity professionals.
>> Meet
>> the minds behind Google Creative Lab, Visual Complexity, Processing, &
>> iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity professionals.
> Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, &
> iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>


-- 
Michael Gogins
Irreducible Productions
http://www.michael-gogins.com
Michael dot Gogins at gmail dot com

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-05-26 15:28
FromFelipe Sateler
SubjectRe: [Cs-dev] Building both floats and doubles
AttachmentsNone  None  benchmark.sh  None  None  

Date2009-05-26 18:12
Fromjoachim heintz
SubjectRe: [Cs-dev] Building both floats and doubles
I do not agree that the performance criterium is more important than  
the audio precision, in the case which is discussed. I think one of  
the advantages of Csound is its goal to have the best quality  
possible. If there are some situations where "the improvement is  
audible" though they are "few and subtle", as you say, I'd prefer to  
have these improvements, even if the performance is 10% slower.  
Perhaps this will not be relevant then with the next generation of  
processors, but the precision will.
I've heard that SuperCollider uses doubles - is that true?

	joachim


Am 26.05.2009 um 14:03 schrieb Michael Gogins:

> I propose that we simply move to support only one sample size. I would
> prefer double, but I can live with float.
>
> The motive for double was a hypothesis that audio precision would
> improve. It did improve, but the cases where the improvement is
> audible are few and subtle. Therefore, I believe we should standardize
> on the audio sample size whose performance is optimum.
>
> This fastest sample size seems to be different on different
> architectures, but I don't see why that is a problem. In a sense, it's
> even an advantage, as it would ensure that we continue to maintain the
> build for both sample sizes.
>
> I propose that we conduct tests of representative performance use
> cases on OS X, Windows, and Linux, and standardize packages for the
> best performing sample size on each platform. I also propose that we
> repeat my double blind tests of audio rendering precision with more
> formal use cases and on different platforms.
>
> Your use of 'R' shows that we could write Python scripts that can
> automate the builds and the performance testing, and analyze the
> results. We could do the same with ABX comparison if we write a little
> Python GUI for the ABX tests.
>
> Regards,
> Mike
>
> On 5/26/09, victor  wrote:
>> My opinion on this matter is that we should perhaps start moving
>> towards support doubles only and have clear roadmap for that.
>> Eventually floats could still be built from sources, but not  
>> supported
>> in binary distributions.
>>
>> Victor
>> ----- Original Message -----
>> From: "Felipe Sateler" 
>> To: "Developer discussions" 
>> Sent: Tuesday, May 26, 2009 2:52 AM
>> Subject: [Cs-dev] Building both floats and doubles
>>
>>
>>> I've been thinking about changing the csound Debian packaging to
>>> support both 32 and 64 bit builds. There is, however, one major
>>> problem. While the csound library itself has a different name for  
>>> each
>>> version, allowing both to be installed at the same time, none of the
>>> other libraries do. Plugins could be easily configured to install on
>>> separate paths and define appropriate OPCODEDIR/OPCODE64DIR.  
>>> However,
>>> the interface libraries do not encode the floating point size in  
>>> their
>>> names, thus making it impossible to install both at the same time.
>>> libcsnd.so would need to be renamed, and lua/python/java bindings
>>> would have to conflict with each other (because there is no  
>>> meaningful
>>> way in which this can be done without renaming the module, and I  
>>> think
>>> it doesn't make much sense to have both). Alternatively, I could  
>>> allow
>>> the csound library to be both sizes, but only allow a single version
>>> of libcsnd.so (and thus, all the bindings).
>>> The second option is clearly suboptimal, but it is simpler, and is
>>> better than the current situation (although, inside debian, nobody
>>> uses libcsound yet, and the only prospective package I know of is
>>> qutecsound, which wouldn't benefit since it uses libcsnd.so).  
>>> However,
>>> just supporting different versions of the same executable at the  
>>> same
>>> time is a significant pain, and I won't do it unless somebody  
>>> shows me
>>> it has some clear advantages.
>>> The first option is technically superior, but it would mean breaking
>>> existing users of libcsnd.so (how many of these are out there?
>>> qutecsound and CsoundAC are the only ones that I am aware of). Users
>>> of python/lua/java interfaces will not have a problem because those
>>> wrappers would be changed at the same time as csound. I think the
>>> safest way to do this (if there is need to) is to just change the  
>>> name
>>> and (unfortunately) requiring applications to change if they want to
>>> use the 64bit version.
>>>
>>> Do you people think it is worth it? I only use doubles version, but
>>> apparently some people have uses for floats due to its perceived
>>> performance benefit (which may not always exist, as we've seen). And
>>> by worth it, I mean breaking every user of the csnd C++ wrapper.
>>> Developers, do you think this increase in complexity is worthwile? I
>>> ask because I remember some talk about just dropping floats a while
>>> ago.
>>>
>>>
>>> Saludos,
>>> Felipe Sateler
>>>
>>> ------------------------------------------------------------------------------
>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>>> is a gathering of tech-side developers & brand creativity  
>>> professionals.
>>> Meet
>>> the minds behind Google Creative Lab, Visual Complexity,  
>>> Processing, &
>>> iPhoneDevCamp asthey present alongside digital heavyweights like  
>>> Barbarian
>>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>>
>> ------------------------------------------------------------------------------
>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>> is a gathering of tech-side developers & brand creativity  
>> professionals.
>> Meet
>> the minds behind Google Creative Lab, Visual Complexity,  
>> Processing, &
>> iPhoneDevCamp asthey present alongside digital heavyweights like  
>> Barbarian
>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>
>
> -- 
> Michael Gogins
> Irreducible Productions
> http://www.michael-gogins.com
> Michael dot Gogins at gmail dot com
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity  
> professionals. Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, &
> iPhoneDevCamp asthey present alongside digital heavyweights like  
> Barbarian
> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-05-26 18:46
FromMichael Gogins
SubjectRe: [Cs-dev] Building both floats and doubles
I do not know about SuperCollider, but I will check and let you know.
I do think this is an important issue.

Personally, I agree with you about precision, but there are a number
of Csound users who are quite clear that they find Csound's float
precision adequate, and prefer the extra performance.

I urge you, do the ABX comparisons yourself and see how important the
precision differences are to you. For me, they are not big enough to
outweigh the preferences of a number of other Csound users.

On some platforms, anyway, it is clear that doubles will in fact be
faster than floats. On those platforms, which I suspect includes all
64 bit operating systems and thus all future computing, you get to
have both precision and efficiency.

Regards,
Mike

On 5/26/09, joachim heintz  wrote:
> I do not agree that the performance criterium is more important than
> the audio precision, in the case which is discussed. I think one of
> the advantages of Csound is its goal to have the best quality
> possible. If there are some situations where "the improvement is
> audible" though they are "few and subtle", as you say, I'd prefer to
> have these improvements, even if the performance is 10% slower.
> Perhaps this will not be relevant then with the next generation of
> processors, but the precision will.
> I've heard that SuperCollider uses doubles - is that true?
>
> 	joachim
>
>
> Am 26.05.2009 um 14:03 schrieb Michael Gogins:
>
>> I propose that we simply move to support only one sample size. I would
>> prefer double, but I can live with float.
>>
>> The motive for double was a hypothesis that audio precision would
>> improve. It did improve, but the cases where the improvement is
>> audible are few and subtle. Therefore, I believe we should standardize
>> on the audio sample size whose performance is optimum.
>>
>> This fastest sample size seems to be different on different
>> architectures, but I don't see why that is a problem. In a sense, it's
>> even an advantage, as it would ensure that we continue to maintain the
>> build for both sample sizes.
>>
>> I propose that we conduct tests of representative performance use
>> cases on OS X, Windows, and Linux, and standardize packages for the
>> best performing sample size on each platform. I also propose that we
>> repeat my double blind tests of audio rendering precision with more
>> formal use cases and on different platforms.
>>
>> Your use of 'R' shows that we could write Python scripts that can
>> automate the builds and the performance testing, and analyze the
>> results. We could do the same with ABX comparison if we write a little
>> Python GUI for the ABX tests.
>>
>> Regards,
>> Mike
>>
>> On 5/26/09, victor  wrote:
>>> My opinion on this matter is that we should perhaps start moving
>>> towards support doubles only and have clear roadmap for that.
>>> Eventually floats could still be built from sources, but not
>>> supported
>>> in binary distributions.
>>>
>>> Victor
>>> ----- Original Message -----
>>> From: "Felipe Sateler" 
>>> To: "Developer discussions" 
>>> Sent: Tuesday, May 26, 2009 2:52 AM
>>> Subject: [Cs-dev] Building both floats and doubles
>>>
>>>
>>>> I've been thinking about changing the csound Debian packaging to
>>>> support both 32 and 64 bit builds. There is, however, one major
>>>> problem. While the csound library itself has a different name for
>>>> each
>>>> version, allowing both to be installed at the same time, none of the
>>>> other libraries do. Plugins could be easily configured to install on
>>>> separate paths and define appropriate OPCODEDIR/OPCODE64DIR.
>>>> However,
>>>> the interface libraries do not encode the floating point size in
>>>> their
>>>> names, thus making it impossible to install both at the same time.
>>>> libcsnd.so would need to be renamed, and lua/python/java bindings
>>>> would have to conflict with each other (because there is no
>>>> meaningful
>>>> way in which this can be done without renaming the module, and I
>>>> think
>>>> it doesn't make much sense to have both). Alternatively, I could
>>>> allow
>>>> the csound library to be both sizes, but only allow a single version
>>>> of libcsnd.so (and thus, all the bindings).
>>>> The second option is clearly suboptimal, but it is simpler, and is
>>>> better than the current situation (although, inside debian, nobody
>>>> uses libcsound yet, and the only prospective package I know of is
>>>> qutecsound, which wouldn't benefit since it uses libcsnd.so).
>>>> However,
>>>> just supporting different versions of the same executable at the
>>>> same
>>>> time is a significant pain, and I won't do it unless somebody
>>>> shows me
>>>> it has some clear advantages.
>>>> The first option is technically superior, but it would mean breaking
>>>> existing users of libcsnd.so (how many of these are out there?
>>>> qutecsound and CsoundAC are the only ones that I am aware of). Users
>>>> of python/lua/java interfaces will not have a problem because those
>>>> wrappers would be changed at the same time as csound. I think the
>>>> safest way to do this (if there is need to) is to just change the
>>>> name
>>>> and (unfortunately) requiring applications to change if they want to
>>>> use the 64bit version.
>>>>
>>>> Do you people think it is worth it? I only use doubles version, but
>>>> apparently some people have uses for floats due to its perceived
>>>> performance benefit (which may not always exist, as we've seen). And
>>>> by worth it, I mean breaking every user of the csnd C++ wrapper.
>>>> Developers, do you think this increase in complexity is worthwile? I
>>>> ask because I remember some talk about just dropping floats a while
>>>> ago.
>>>>
>>>>
>>>> Saludos,
>>>> Felipe Sateler
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>>>> is a gathering of tech-side developers & brand creativity
>>>> professionals.
>>>> Meet
>>>> the minds behind Google Creative Lab, Visual Complexity,
>>>> Processing, &
>>>> iPhoneDevCamp asthey present alongside digital heavyweights like
>>>> Barbarian
>>>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>>>> _______________________________________________
>>>> Csound-devel mailing list
>>>> Csound-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>>> is a gathering of tech-side developers & brand creativity
>>> professionals.
>>> Meet
>>> the minds behind Google Creative Lab, Visual Complexity,
>>> Processing, &
>>> iPhoneDevCamp asthey present alongside digital heavyweights like
>>> Barbarian
>>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>
>>
>> --
>> Michael Gogins
>> Irreducible Productions
>> http://www.michael-gogins.com
>> Michael dot Gogins at gmail dot com
>>
>> ------------------------------------------------------------------------------
>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>> is a gathering of tech-side developers & brand creativity
>> professionals. Meet
>> the minds behind Google Creative Lab, Visual Complexity, Processing, &
>> iPhoneDevCamp asthey present alongside digital heavyweights like
>> Barbarian
>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity professionals.
> Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, &
> iPhoneDevCamp as they present alongside digital heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>


-- 
Michael Gogins
Irreducible Productions
http://www.michael-gogins.com
Michael dot Gogins at gmail dot com

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-05-27 14:28
FromMichael Gogins
SubjectRe: [Cs-dev] Building both floats and doubles
I found that in SuperCollider SVN, unit generator samples are always
declared as "float."

I do not know about the SuperCollider language, but it is the unit
generator architecture that is important for this discussion.

Regards,
Mike

On 5/26/09, joachim heintz  wrote:
> I do not agree that the performance criterium is more important than
> the audio precision, in the case which is discussed. I think one of
> the advantages of Csound is its goal to have the best quality
> possible. If there are some situations where "the improvement is
> audible" though they are "few and subtle", as you say, I'd prefer to
> have these improvements, even if the performance is 10% slower.
> Perhaps this will not be relevant then with the next generation of
> processors, but the precision will.
> I've heard that SuperCollider uses doubles - is that true?
>
> 	joachim
>
>
> Am 26.05.2009 um 14:03 schrieb Michael Gogins:
>
>> I propose that we simply move to support only one sample size. I would
>> prefer double, but I can live with float.
>>
>> The motive for double was a hypothesis that audio precision would
>> improve. It did improve, but the cases where the improvement is
>> audible are few and subtle. Therefore, I believe we should standardize
>> on the audio sample size whose performance is optimum.
>>
>> This fastest sample size seems to be different on different
>> architectures, but I don't see why that is a problem. In a sense, it's
>> even an advantage, as it would ensure that we continue to maintain the
>> build for both sample sizes.
>>
>> I propose that we conduct tests of representative performance use
>> cases on OS X, Windows, and Linux, and standardize packages for the
>> best performing sample size on each platform. I also propose that we
>> repeat my double blind tests of audio rendering precision with more
>> formal use cases and on different platforms.
>>
>> Your use of 'R' shows that we could write Python scripts that can
>> automate the builds and the performance testing, and analyze the
>> results. We could do the same with ABX comparison if we write a little
>> Python GUI for the ABX tests.
>>
>> Regards,
>> Mike
>>
>> On 5/26/09, victor  wrote:
>>> My opinion on this matter is that we should perhaps start moving
>>> towards support doubles only and have clear roadmap for that.
>>> Eventually floats could still be built from sources, but not
>>> supported
>>> in binary distributions.
>>>
>>> Victor
>>> ----- Original Message -----
>>> From: "Felipe Sateler" 
>>> To: "Developer discussions" 
>>> Sent: Tuesday, May 26, 2009 2:52 AM
>>> Subject: [Cs-dev] Building both floats and doubles
>>>
>>>
>>>> I've been thinking about changing the csound Debian packaging to
>>>> support both 32 and 64 bit builds. There is, however, one major
>>>> problem. While the csound library itself has a different name for
>>>> each
>>>> version, allowing both to be installed at the same time, none of the
>>>> other libraries do. Plugins could be easily configured to install on
>>>> separate paths and define appropriate OPCODEDIR/OPCODE64DIR.
>>>> However,
>>>> the interface libraries do not encode the floating point size in
>>>> their
>>>> names, thus making it impossible to install both at the same time.
>>>> libcsnd.so would need to be renamed, and lua/python/java bindings
>>>> would have to conflict with each other (because there is no
>>>> meaningful
>>>> way in which this can be done without renaming the module, and I
>>>> think
>>>> it doesn't make much sense to have both). Alternatively, I could
>>>> allow
>>>> the csound library to be both sizes, but only allow a single version
>>>> of libcsnd.so (and thus, all the bindings).
>>>> The second option is clearly suboptimal, but it is simpler, and is
>>>> better than the current situation (although, inside debian, nobody
>>>> uses libcsound yet, and the only prospective package I know of is
>>>> qutecsound, which wouldn't benefit since it uses libcsnd.so).
>>>> However,
>>>> just supporting different versions of the same executable at the
>>>> same
>>>> time is a significant pain, and I won't do it unless somebody
>>>> shows me
>>>> it has some clear advantages.
>>>> The first option is technically superior, but it would mean breaking
>>>> existing users of libcsnd.so (how many of these are out there?
>>>> qutecsound and CsoundAC are the only ones that I am aware of). Users
>>>> of python/lua/java interfaces will not have a problem because those
>>>> wrappers would be changed at the same time as csound. I think the
>>>> safest way to do this (if there is need to) is to just change the
>>>> name
>>>> and (unfortunately) requiring applications to change if they want to
>>>> use the 64bit version.
>>>>
>>>> Do you people think it is worth it? I only use doubles version, but
>>>> apparently some people have uses for floats due to its perceived
>>>> performance benefit (which may not always exist, as we've seen). And
>>>> by worth it, I mean breaking every user of the csnd C++ wrapper.
>>>> Developers, do you think this increase in complexity is worthwile? I
>>>> ask because I remember some talk about just dropping floats a while
>>>> ago.
>>>>
>>>>
>>>> Saludos,
>>>> Felipe Sateler
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>>>> is a gathering of tech-side developers & brand creativity
>>>> professionals.
>>>> Meet
>>>> the minds behind Google Creative Lab, Visual Complexity,
>>>> Processing, &
>>>> iPhoneDevCamp asthey present alongside digital heavyweights like
>>>> Barbarian
>>>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>>>> _______________________________________________
>>>> Csound-devel mailing list
>>>> Csound-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>>> is a gathering of tech-side developers & brand creativity
>>> professionals.
>>> Meet
>>> the minds behind Google Creative Lab, Visual Complexity,
>>> Processing, &
>>> iPhoneDevCamp asthey present alongside digital heavyweights like
>>> Barbarian
>>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>
>>
>> --
>> Michael Gogins
>> Irreducible Productions
>> http://www.michael-gogins.com
>> Michael dot Gogins at gmail dot com
>>
>> ------------------------------------------------------------------------------
>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>> is a gathering of tech-side developers & brand creativity
>> professionals. Meet
>> the minds behind Google Creative Lab, Visual Complexity, Processing, &
>> iPhoneDevCamp asthey present alongside digital heavyweights like
>> Barbarian
>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity professionals.
> Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, &
> iPhoneDevCamp as they present alongside digital heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>


-- 
Michael Gogins
Irreducible Productions
http://www.michael-gogins.com
Michael dot Gogins at gmail dot com

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-05-27 15:52
Fromjoachim heintz
SubjectRe: [Cs-dev] Building both floats and doubles
Thanks for your investigation. This is good to know.
	joachim


Am 27.05.2009 um 15:28 schrieb Michael Gogins:

> I found that in SuperCollider SVN, unit generator samples are always
> declared as "float."
>
> I do not know about the SuperCollider language, but it is the unit
> generator architecture that is important for this discussion.
>
> Regards,
> Mike
>
> On 5/26/09, joachim heintz  wrote:
>> I do not agree that the performance criterium is more important than
>> the audio precision, in the case which is discussed. I think one of
>> the advantages of Csound is its goal to have the best quality
>> possible. If there are some situations where "the improvement is
>> audible" though they are "few and subtle", as you say, I'd prefer to
>> have these improvements, even if the performance is 10% slower.
>> Perhaps this will not be relevant then with the next generation of
>> processors, but the precision will.
>> I've heard that SuperCollider uses doubles - is that true?
>>
>> 	joachim
>>
>>
>> Am 26.05.2009 um 14:03 schrieb Michael Gogins:
>>
>>> I propose that we simply move to support only one sample size. I  
>>> would
>>> prefer double, but I can live with float.
>>>
>>> The motive for double was a hypothesis that audio precision would
>>> improve. It did improve, but the cases where the improvement is
>>> audible are few and subtle. Therefore, I believe we should  
>>> standardize
>>> on the audio sample size whose performance is optimum.
>>>
>>> This fastest sample size seems to be different on different
>>> architectures, but I don't see why that is a problem. In a sense,  
>>> it's
>>> even an advantage, as it would ensure that we continue to maintain  
>>> the
>>> build for both sample sizes.
>>>
>>> I propose that we conduct tests of representative performance use
>>> cases on OS X, Windows, and Linux, and standardize packages for the
>>> best performing sample size on each platform. I also propose that we
>>> repeat my double blind tests of audio rendering precision with more
>>> formal use cases and on different platforms.
>>>
>>> Your use of 'R' shows that we could write Python scripts that can
>>> automate the builds and the performance testing, and analyze the
>>> results. We could do the same with ABX comparison if we write a  
>>> little
>>> Python GUI for the ABX tests.
>>>
>>> Regards,
>>> Mike
>>>
>>> On 5/26/09, victor  wrote:
>>>> My opinion on this matter is that we should perhaps start moving
>>>> towards support doubles only and have clear roadmap for that.
>>>> Eventually floats could still be built from sources, but not
>>>> supported
>>>> in binary distributions.
>>>>
>>>> Victor
>>>> ----- Original Message -----
>>>> From: "Felipe Sateler" 
>>>> To: "Developer discussions" 
>>>> Sent: Tuesday, May 26, 2009 2:52 AM
>>>> Subject: [Cs-dev] Building both floats and doubles
>>>>
>>>>
>>>>> I've been thinking about changing the csound Debian packaging to
>>>>> support both 32 and 64 bit builds. There is, however, one major
>>>>> problem. While the csound library itself has a different name for
>>>>> each
>>>>> version, allowing both to be installed at the same time, none of  
>>>>> the
>>>>> other libraries do. Plugins could be easily configured to  
>>>>> install on
>>>>> separate paths and define appropriate OPCODEDIR/OPCODE64DIR.
>>>>> However,
>>>>> the interface libraries do not encode the floating point size in
>>>>> their
>>>>> names, thus making it impossible to install both at the same time.
>>>>> libcsnd.so would need to be renamed, and lua/python/java bindings
>>>>> would have to conflict with each other (because there is no
>>>>> meaningful
>>>>> way in which this can be done without renaming the module, and I
>>>>> think
>>>>> it doesn't make much sense to have both). Alternatively, I could
>>>>> allow
>>>>> the csound library to be both sizes, but only allow a single  
>>>>> version
>>>>> of libcsnd.so (and thus, all the bindings).
>>>>> The second option is clearly suboptimal, but it is simpler, and is
>>>>> better than the current situation (although, inside debian, nobody
>>>>> uses libcsound yet, and the only prospective package I know of is
>>>>> qutecsound, which wouldn't benefit since it uses libcsnd.so).
>>>>> However,
>>>>> just supporting different versions of the same executable at the
>>>>> same
>>>>> time is a significant pain, and I won't do it unless somebody
>>>>> shows me
>>>>> it has some clear advantages.
>>>>> The first option is technically superior, but it would mean  
>>>>> breaking
>>>>> existing users of libcsnd.so (how many of these are out there?
>>>>> qutecsound and CsoundAC are the only ones that I am aware of).  
>>>>> Users
>>>>> of python/lua/java interfaces will not have a problem because  
>>>>> those
>>>>> wrappers would be changed at the same time as csound. I think the
>>>>> safest way to do this (if there is need to) is to just change the
>>>>> name
>>>>> and (unfortunately) requiring applications to change if they  
>>>>> want to
>>>>> use the 64bit version.
>>>>>
>>>>> Do you people think it is worth it? I only use doubles version,  
>>>>> but
>>>>> apparently some people have uses for floats due to its perceived
>>>>> performance benefit (which may not always exist, as we've seen).  
>>>>> And
>>>>> by worth it, I mean breaking every user of the csnd C++ wrapper.
>>>>> Developers, do you think this increase in complexity is  
>>>>> worthwile? I
>>>>> ask because I remember some talk about just dropping floats a  
>>>>> while
>>>>> ago.
>>>>>
>>>>>
>>>>> Saludos,
>>>>> Felipe Sateler
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC.  
>>>>> CaT
>>>>> is a gathering of tech-side developers & brand creativity
>>>>> professionals.
>>>>> Meet
>>>>> the minds behind Google Creative Lab, Visual Complexity,
>>>>> Processing, &
>>>>> iPhoneDevCamp asthey present alongside digital heavyweights like
>>>>> Barbarian
>>>>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>>>>> _______________________________________________
>>>>> Csound-devel mailing list
>>>>> Csound-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC.  
>>>> CaT
>>>> is a gathering of tech-side developers & brand creativity
>>>> professionals.
>>>> Meet
>>>> the minds behind Google Creative Lab, Visual Complexity,
>>>> Processing, &
>>>> iPhoneDevCamp asthey present alongside digital heavyweights like
>>>> Barbarian
>>>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>>>> _______________________________________________
>>>> Csound-devel mailing list
>>>> Csound-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>
>>>
>>>
>>> --
>>> Michael Gogins
>>> Irreducible Productions
>>> http://www.michael-gogins.com
>>> Michael dot Gogins at gmail dot com
>>>
>>> ------------------------------------------------------------------------------
>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>>> is a gathering of tech-side developers & brand creativity
>>> professionals. Meet
>>> the minds behind Google Creative Lab, Visual Complexity,  
>>> Processing, &
>>> iPhoneDevCamp asthey present alongside digital heavyweights like
>>> Barbarian
>>> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>
>>
>> ------------------------------------------------------------------------------
>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>> is a gathering of tech-side developers & brand creativity  
>> professionals.
>> Meet
>> the minds behind Google Creative Lab, Visual Complexity,  
>> Processing, &
>> iPhoneDevCamp as they present alongside digital heavyweights like  
>> Barbarian
>> Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>
>
> -- 
> Michael Gogins
> Irreducible Productions
> http://www.michael-gogins.com
> Michael dot Gogins at gmail dot com
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity  
> professionals. Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, &
> iPhoneDevCamp as they present alongside digital heavyweights like  
> Barbarian
> Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net