[Csnd-dev] Warning: major change
Date | 2017-02-05 20:42 |
From | jpff |
Subject | [Csnd-dev] Warning: major change |
I have just committed code that changes spout to be non-interleaved, and only changed to interleaved in kperf. Means values in GetSpout are only updated in kperf but otherwise should perform the same, but quicker. Basic testing but not all sample-accurate cases have been checked. Please report any oddities to me or this list. I testing I found a bug in score r opcode which I will start work o asap. |
Date | 2017-02-06 10:07 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd-dev] Warning: major change |
Works here. On my own tests, now using out or outch has a similar impact as accumulating on a global var. Thanks! On Sonntag, 5. Februar 2017 21:42:51 CET, jpff wrote: > I have just committed code that changes spout to be non-interleaved, and > only changed to interleaved in kperf. Means values in GetSpout are > only updated in kperf but otherwise should perform the same, but > quicker. Basic testing but not all sample-accurate cases have been > checked. Please report any oddities to me or this list. > > I testing I found a bug in score r opcode which I will start work o > asap. > > ==John ffitch > |
Date | 2017-02-06 13:59 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Warning: major change |
which leaves us to entertain why it’s still twice the load compared to SC. Do you know if the SC engine optimises something, like not actually summing audio into the output if it is silence? It would be good to see if you could send a constant value to the output to (like 0.5) to see if it performs the same. ======================== Prof. Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy, Maynooth University, Maynooth, Co Kildare, Ireland Tel: 00 353 7086936 Fax: 00 353 1 7086952 > On 6 Feb 2017, at 10:07, Eduardo Moguillansky |
Date | 2017-02-06 15:03 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd-dev] Warning: major change |
The only thing I could see on the opcode level (I don't have so much experience with the inner workings of scsynth) is that they optimize the loops to not use indexing but pointers directly This is their "Out" opcode for (int i=0; i |
Date | 2017-02-06 15:09 |
From | Steven Yi |
Subject | Re: [Csnd-dev] Warning: major change |
One thing to point is out that they are using floats and not doubles. I don't know if that would have a positive or negative effect, but we should be careful to compares apples to apples when measuring performance here. On Mon, Feb 6, 2017 at 10:03 AM, Eduardo Moguillansky |
Date | 2017-02-06 15:42 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Warning: major change |
I don’t think pointer arithmetic makes it faster. Running single precision probably does in this case. But does it really use floats? I never realised that. ======================== Prof. Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy, Maynooth University, Maynooth, Co Kildare, Ireland Tel: 00 353 7086936 Fax: 00 353 1 7086952 > On 6 Feb 2017, at 15:03, Eduardo Moguillansky |
Date | 2017-02-06 15:58 |
From | Michael Gogins |
Subject | Re: [Csnd-dev] Warning: major change |
Pointer arithmetic, whenever I have compared it directly in timed controlled experiments, never has been faster than array indexing, and often has been a little slower. Plus it is harder to read. Gcc and other compilers are written to take simple, standard style code and make it run as fast as possible. Best, Mike On Feb 6, 2017 10:42 AM, "Victor Lazzarini" <Victor.Lazzarini@nuim.ie> wrote: I don’t think pointer arithmetic makes it faster. Running single precision probably does in this case. |
Date | 2017-02-06 16:37 |
From | jpff |
Subject | Re: [Csnd-dev] Warning: major change |
When I easured tis it was slower to use pointers tan indexing, which is why it was mostly changed. ==JPff On Mon, 6 Feb 2017, Eduardo Moguillansky wrote: > thing I could see on the opcode level (I don't have so much experience with > the inner workings of scsynth) is that they optimize the loops to not use > indexing but pointers directly > > This is their "Out" opcode > > for (int i=0; i |
Date | 2017-02-06 16:39 |
From | Michael Gogins |
Subject | Re: [Csnd-dev] Warning: major change |
Measuring is great! Thanks, Mike ----------------------------------------------------- Michael Gogins Irreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Mon, Feb 6, 2017 at 11:37 AM, jpff |
Date | 2017-02-06 17:38 |
From | jpff |
Subject | Re: [Csnd-dev] Warning: major change |
On my laptop the test prgram in realtime takes 21% doubles and 12% single precision On Mon, 6 Feb 2017, Victor Lazzarini wrote: > which leaves us to entertain why it’s still twice the load compared to SC. Do you know if > the SC engine optimises something, like not actually summing audio into the output if it is silence? > It would be good to see if you could send a constant value to the output to (like 0.5) to see if it > performs the same. > ======================== > Prof. Victor Lazzarini > Dean of Arts, Celtic Studies, and Philosophy, > Maynooth University, > Maynooth, Co Kildare, Ireland > Tel: 00 353 7086936 > Fax: 00 353 1 7086952 > >> On 6 Feb 2017, at 10:07, Eduardo Moguillansky |
Date | 2017-02-06 18:32 |
From | Steven Yi |
Subject | Re: [Csnd-dev] Warning: major change |
Yes, SC3 uses floats for the signal processing chain, but a number of the UGens use doubles internally to track certain things like phase. I haven't looked at SC3's code in a while though, but that was the state of things last I checked. On Mon, Feb 6, 2017 at 10:42 AM, Victor Lazzarini |
Date | 2017-02-06 18:52 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Warning: major change |
Well, doubles for phase and filter coeffs are sine qua non. Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy Maynooth University Ireland > On 6 Feb 2017, at 18:33, Steven Yi |
Date | 2017-02-06 19:35 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Warning: major change |
12% looks like what has been reported. Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy Maynooth University Ireland > On 6 Feb 2017, at 17:38, jpff |
Date | 2017-02-07 03:30 |
From | T M |
Subject | Re: [Csnd-dev] Warning: major change |
> El 6 feb 2017, a las 12:32, Steven Yi |
Date | 2017-02-07 16:45 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd-dev] Warning: major change |
I did not check the
output, only the performance: I get corrupted data with outch.
Did not test the other out opcodes <CsoundSynthesizer> <CsOptions> </CsOptions <CsInstruments> sr = 44100 ksmps = 128 nchnls = 2 0dbfs = 1.0 instr 1 ifreq = 440 a0 oscili 0.5, ifreq outch 1, a0 ; ** uncomment next line and output gets corrupted ** ; outch 2, a0 endin </CsInstruments> <CsScore> i 1 0 20 </CsScore> </CsoundSynthesizer>
On 06.02.2017 18:38, jpff wrote:
On my laptop the test prgram in realtime takes 21% doubles and 12% single precision |
Date | 2017-02-07 16:51 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Warning: major change |
out and outs are working fine. ======================== Prof. Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy, Maynooth University, Maynooth, Co Kildare, Ireland Tel: 00 353 7086936 Fax: 00 353 1 7086952 > On 7 Feb 2017, at 16:45, Eduardo Moguillansky |
Date | 2017-02-07 17:17 |
From | jpff |
Subject | Re: [Csnd-dev] Warning: major change |
but te code outch 2, a0 outch 1, a0 works! Will look closer On Tue, 7 Feb 2017, Eduardo Moguillansky wrote: > > I did not check the output, only the performance: I get corrupted data with > outch. Did not test the other out opcodes > > |
Date | 2017-02-07 17:21 |
From | jpff |
Subject | Re: [Csnd-dev] Warning: major change |
Fixed in git On Tue, 7 Feb 2017, Eduardo Moguillansky wrote: > > I did not check the output, only the performance: I get corrupted data with > outch. Did not test the other out opcodes > > |
Date | 2017-02-07 17:37 |
From | Rory Walsh |
Subject | Re: [Csnd-dev] Warning: major change |
Hi all. I'm kind of late to the party, but do front-end developers using get spout and get spin need to modify their code at all following these changes? On 7 Feb 2017 17:22, "jpff" <jpff@codemist.co.uk> wrote: Fixed in git |
Date | 2017-02-07 17:43 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Warning: major change |
no
Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland
|
Date | 2017-02-07 17:48 |
From | jpff |
Subject | Re: [Csnd-dev] Warning: major change |
On Tue, 7 Feb 2017, Rory Walsh wrote: > Hi all. I'm kind of late to the party, but do front-end developers using get > spout and get spin need to modify their code at all following these changes? > I think not but I have never used tat facility. What happens is that there is a new private structure (called spraw) which is the output data not interleaved but channels in order. In kperf this data is interleaved into spout. So difference is spout data is only valid after kperf and until the next out call. Does that help? ==JPff |
Date | 2017-02-07 18:11 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Warning: major change |
Just to add: changes are internal. Spout continues as before to external entities. I have been thinking of an api switch to bypass interleaving for cases where the host does not use interleaved audio (ie. auhal) Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy Maynooth University Ireland > On 7 Feb 2017, at 17:49, jpff |
Date | 2017-02-07 18:13 |
From | Michael Gogins |
Subject | Re: [Csnd-dev] Warning: major change |
Rory, if you always only take turns calling PerformKsmps and accessing spin and spout, you will never have a problem. Regards, Mike On Feb 7, 2017 12:48 PM, "jpff" <jpff@codemist.co.uk> wrote:
|
Date | 2017-02-07 19:34 |
From | Rory Walsh |
Subject | Re: [Csnd-dev] Warning: major change |
That's what I do. Thanks guys. On 7 Feb 2017 18:14, "Michael Gogins" <michael.gogins@gmail.com> wrote:
|
Date | 2018-03-17 11:10 |
From | Michael Gogins |
Subject | Re: [Csnd-dev] Warning: major change |
What does this mean for opcodes that write directly to the lowest level audio buffer, e.g. chnmix or the signal flow graph opcodes? Best, Mike ----------------------------------------------------- Michael Gogins Irreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Sun, Feb 5, 2017 at 5:42 PM, jpff |
Date | 2018-03-17 11:14 |
From | Michael Gogins |
Subject | Re: [Csnd-dev] Warning: major change |
Ignore that about direct writes in chmix or signal flow graph, just woke up and did not read code... ----------------------------------------------------- Michael Gogins Irreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Sat, Mar 17, 2018 at 8:10 AM, Michael Gogins |
Date | 2018-03-17 11:27 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Warning: major change |
This was last year. Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy Maynooth University Ireland > On 17 Mar 2018, at 11:14, Michael Gogins |