Csound Csound-dev Csound-tekno Search About

[Csnd-dev] Non-interleaved spout

Date2018-01-01 21:16
FromAlex Weiss
Subject[Csnd-dev] Non-interleaved spout
Hi list,

I remember a recent internal change to the API that changed spout to be non-interleaved prior to interleaving in kperf. Is there a way for a host to access the non-interleaved version of spout through the API?

Thanks,
Alex

Date2018-01-01 21:52
FromVictor Lazzarini
SubjectRe: [Csnd-dev] Non-interleaved spout
Not really, Spout is always interleaved. There was some simplification with some reordering of the operations, but spout and spin are always interleaved.
If you want non-interleaved IO you can use audio-rate bus channels.
========================
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 1 Jan 2018, at 21:16, Alex Weiss  wrote:
> 
> Hi list,
> 
> I remember a recent internal change to the API that changed spout to be non-interleaved prior to interleaving in kperf. Is there a way for a host to access the non-interleaved version of spout through the API?
> 
> Thanks,

Date2018-01-02 12:22
FromAlex Weiss
SubjectRe: [Csnd-dev] Non-interleaved spout
Thanks, Victor. Unfortunately, I can't use bus channels since I'd have to change all my .csd's, but de-interleaving is obviously simple enough.

However, if the non-interleaved data exists somewhere internally (which, if I understand the recent change correctly, it does in spraw), I think it would be a worthwhile addition to the API to allow clients access to it. My reason is the following: for people using the API, csound is often only one link in a potentially much larger signal chain. Many audio frameworks (including most plugin APIs and the Juce wrappers) expect non-interleaved channel data. While it's trivial to do the de-interleaving, it precludes the use of SIMD instructions to copy data out of spout (or into spin, for that matter).

Thanks,
Alexs

On Mon, Jan 1, 2018 at 10:53 PM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Not really, Spout is always interleaved. There was some simplification with some reordering of the operations, but spout and spin are always interleaved.
If you want non-interleaved IO you can use audio-rate bus channels.
========================
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 1 Jan 2018, at 21:16, Alex Weiss <alexweiss86@gmail.com> wrote:
>
> Hi list,
>
> I remember a recent internal change to the API that changed spout to be non-interleaved prior to interleaving in kperf. Is there a way for a host to access the non-interleaved version of spout through the API?
>
> Thanks,
> Alex

Date2018-01-02 23:11
FromVictor Lazzarini
SubjectRe: [Csnd-dev] Non-interleaved spout
I can look into putting a no-interleave check. I’ll see what I can do.
========================
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 2 Jan 2018, at 12:22, Alex Weiss  wrote:
> 
> Thanks, Victor. Unfortunately, I can't use bus channels since I'd have to change all my .csd's, but de-interleaving is obviously simple enough.
> 
> However, if the non-interleaved data exists somewhere internally (which, if I understand the recent change correctly, it does in spraw), I think it would be a worthwhile addition to the API to allow clients access to it. My reason is the following: for people using the API, csound is often only one link in a potentially much larger signal chain. Many audio frameworks (including most plugin APIs and the Juce wrappers) expect non-interleaved channel data. While it's trivial to do the de-interleaving, it precludes the use of SIMD instructions to copy data out of spout (or into spin, for that matter).
> 
> Thanks,
> Alexs
> 
> On Mon, Jan 1, 2018 at 10:53 PM Victor Lazzarini  wrote:
> Not really, Spout is always interleaved. There was some simplification with some reordering of the operations, but spout and spin are always interleaved.
> If you want non-interleaved IO you can use audio-rate bus channels.
> ========================
> 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 1 Jan 2018, at 21:16, Alex Weiss  wrote:
> >
> > Hi list,
> >
> > I remember a recent internal change to the API that changed spout to be non-interleaved prior to interleaving in kperf. Is there a way for a host to access the non-interleaved version of spout through the API?
> >
> > Thanks,
> > Alex

Date2018-01-04 19:45
FromAlex Weiss
SubjectRe: [Csnd-dev] Non-interleaved spout
Thanks Victor, much appreciated.

Alex

On Wed, Jan 3, 2018 at 12:11 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
I can look into putting a no-interleave check. I’ll see what I can do.
========================
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 2 Jan 2018, at 12:22, Alex Weiss <alexweiss86@gmail.com> wrote:
>
> Thanks, Victor. Unfortunately, I can't use bus channels since I'd have to change all my .csd's, but de-interleaving is obviously simple enough.
>
> However, if the non-interleaved data exists somewhere internally (which, if I understand the recent change correctly, it does in spraw), I think it would be a worthwhile addition to the API to allow clients access to it. My reason is the following: for people using the API, csound is often only one link in a potentially much larger signal chain. Many audio frameworks (including most plugin APIs and the Juce wrappers) expect non-interleaved channel data. While it's trivial to do the de-interleaving, it precludes the use of SIMD instructions to copy data out of spout (or into spin, for that matter).
>
> Thanks,
> Alexs
>
> On Mon, Jan 1, 2018 at 10:53 PM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
> Not really, Spout is always interleaved. There was some simplification with some reordering of the operations, but spout and spin are always interleaved.
> If you want non-interleaved IO you can use audio-rate bus channels.
> ========================
> 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 1 Jan 2018, at 21:16, Alex Weiss <alexweiss86@gmail.com> wrote:
> >
> > Hi list,
> >
> > I remember a recent internal change to the API that changed spout to be non-interleaved prior to interleaving in kperf. Is there a way for a host to access the non-interleaved version of spout through the API?
> >
> > Thanks,
> > Alex