Csound Csound-dev Csound-tekno Search About

[Csnd-dev] ANN: csound6~ Max external apple silicon build

Date2023-10-24 03:10
FromIain Duncan
Subject[Csnd-dev] ANN: csound6~ Max external apple silicon build
Hi Csounders, I just wanted to let people know that I have updated the csound6~ Max binary to include a universal build for Intel and Apple Silicon macs (and Windows 64).

Other than that, there is no change to the object, but if you haven't heard of this object yet, the readme content from 0.2 is included below. Please let me know via github if for some reason it is not working for you.

iain

Csound6~
A minimal real time csound class using the Csound6 API
(c) Iain C.T. Duncan 2023, based on work by Victor Lazzarini, (c) 2005-2013.

Csound6~ is mostly a port of Victor Lazzarini's csound object for Pure Data. It provides a minimal csound interface using the csound API and thus should provide better performance and latency than the legacy csound~ object. It does not attempt to port all the features of the legacy csound object, but does provide a newer and higher performance facility for converting krate DSP to Max messages.

News:

    2023-10-23 Version 0.2.1 is up, with a universal binary for Intel and Apple Silicon Macs
    2022-03-20 Version 0.2 is up, with table and buffer i/o and improved control channel i/o

Features

    Allows playing csd, orc, and sco files
    Plays realtime messages with score syntax
    Scores playback time can be manipulated with minimal latency
    Supports up to 32 inlets and outlets, corresponding to number of csound channels
    Can receive realtime modulation data using the chnget and invalue opcodes
    Enables listening to Csound krate channels as Max messages, at divisors of ksmps
    Outvalue opcode can be used to send Max messages explicitly
    Provides facilities for copying between Max buffers and csound tables.

Limitations

    Ksmps must be an even divisor of the Max signal vector size so that there are one or more even kpasses per audio vector calculation.
    Realtime events are limited to "i", "f", and "e".
    Csound midi opcodes are not supported. They may be ported if there is sufficient demand, though using Max midi and communicating with score messages is recommended instead.

Date2023-10-24 09:02
FromVictor Lazzarini
SubjectRe: [Csnd-dev] [EXTERNAL] [Csnd-dev] ANN: csound6~ Max external apple silicon build
Congratulations and thank you very much for this.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 24 Oct 2023, at 03:10, Iain Duncan  wrote:
> 
> *Warning*
> This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.
> Hi Csounders, I just wanted to let people know that I have updated the csound6~ Max binary to include a universal build for Intel and Apple Silicon macs (and Windows 64).
> 
> Other than that, there is no change to the object, but if you haven't heard of this object yet, the readme content from 0.2 is included below. Please let me know via github if for some reason it is not working for you.
> 
> iain
> 
> Csound6~
> A minimal real time csound class using the Csound6 API
> (c) Iain C.T. Duncan 2023, based on work by Victor Lazzarini, (c) 2005-2013.
> 
> Csound6~ is mostly a port of Victor Lazzarini's csound object for Pure Data. It provides a minimal csound interface using the csound API and thus should provide better performance and latency than the legacy csound~ object. It does not attempt to port all the features of the legacy csound object, but does provide a newer and higher performance facility for converting krate DSP to Max messages.
> 
> News:
> 
>     2023-10-23 Version 0.2.1 is up, with a universal binary for Intel and Apple Silicon Macs
>     2022-03-20 Version 0.2 is up, with table and buffer i/o and improved control channel i/o
> 
> Features
> 
>     Allows playing csd, orc, and sco files
>     Plays realtime messages with score syntax
>     Scores playback time can be manipulated with minimal latency
>     Supports up to 32 inlets and outlets, corresponding to number of csound channels
>     Can receive realtime modulation data using the chnget and invalue opcodes
>     Enables listening to Csound krate channels as Max messages, at divisors of ksmps
>     Outvalue opcode can be used to send Max messages explicitly
>     Provides facilities for copying between Max buffers and csound tables.
> 
> Limitations
> 
>     Ksmps must be an even divisor of the Max signal vector size so that there are one or more even kpasses per audio vector calculation.
>     Realtime events are limited to "i", "f", and "e".
>     Csound midi opcodes are not supported. They may be ported if there is sufficient demand, though using Max midi and communicating with score messages is recommended instead.

Date2023-10-24 12:42
From"Dr. Richard Boulanger"
SubjectRe: [Csnd-dev] [EXTERNAL] [Csnd-dev] ANN: csound6~ Max external apple silicon build
Iain,

Thank you so much for all your work on this port.  I use it and share it with my students at Berklee.

I hope that your version of csound6~ will be added to the downloads page at Csound.com along with the legacy version that is currently there by Davis Pyon and Matt Ingalls (which still runs ALL of the Csound for Live instruments and effects under Rosetta) 

If it might not be too much trouble for you, I am wondering (and hoping) that you could also build/port/share the Davis Pyon/Matt Ingalls 'legacy' version of csound~  (The version currently found at https://csound.com/download.html)  to run native on the M1 (Apple Silicon) Macs.  If you did, that would keep alive a lot of pretty great instruments, code, models that I would be happy to open source and post links for the collection at Csound.com too.

Iain, I think that I might have sent you a link to the entire collection.  I will do so now so that you can test or use or see why this complete set might be of interest and use to you and many others.  I hope it is an easy job for you.  And, again. thank you for your work on csound6~

- Dr.B


Dr. Richard Boulanger

Professor

Electronic Production and Design

Berklee College of Music

Professional Writing & Technology Division



On Tue, Oct 24, 2023 at 4:03 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Congratulations and thank you very much for this.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 24 Oct 2023, at 03:10, Iain Duncan <iainduncanlists@GMAIL.COM> wrote:
>
> *Warning*
> This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.
> Hi Csounders, I just wanted to let people know that I have updated the csound6~ Max binary to include a universal build for Intel and Apple Silicon macs (and Windows 64).
>
> Other than that, there is no change to the object, but if you haven't heard of this object yet, the readme content from 0.2 is included below. Please let me know via github if for some reason it is not working for you.
>
> iain
>
> Csound6~
> A minimal real time csound class using the Csound6 API
> (c) Iain C.T. Duncan 2023, based on work by Victor Lazzarini, (c) 2005-2013.
>
> Csound6~ is mostly a port of Victor Lazzarini's csound object for Pure Data. It provides a minimal csound interface using the csound API and thus should provide better performance and latency than the legacy csound~ object. It does not attempt to port all the features of the legacy csound object, but does provide a newer and higher performance facility for converting krate DSP to Max messages.
>
> News:
>
>     2023-10-23 Version 0.2.1 is up, with a universal binary for Intel and Apple Silicon Macs
>     2022-03-20 Version 0.2 is up, with table and buffer i/o and improved control channel i/o
>
> Features
>
>     Allows playing csd, orc, and sco files
>     Plays realtime messages with score syntax
>     Scores playback time can be manipulated with minimal latency
>     Supports up to 32 inlets and outlets, corresponding to number of csound channels
>     Can receive realtime modulation data using the chnget and invalue opcodes
>     Enables listening to Csound krate channels as Max messages, at divisors of ksmps
>     Outvalue opcode can be used to send Max messages explicitly
>     Provides facilities for copying between Max buffers and csound tables.
>
> Limitations
>
>     Ksmps must be an even divisor of the Max signal vector size so that there are one or more even kpasses per audio vector calculation.
>     Realtime events are limited to "i", "f", and "e".
>     Csound midi opcodes are not supported. They may be ported if there is sufficient demand, though using Max midi and communicating with score messages is recommended instead.

Date2023-10-24 15:36
FromIain Duncan
SubjectRe: [Csnd-dev] [EXTERNAL] [Csnd-dev] ANN: csound6~ Max external apple silicon build
Thanks Victor and Richard. I can see if compiling the legacy is easy, but I'm not super well versed in developing for Mac and it is about 10 times a bigger code base than Victor's!

It would be interesting to know what specifically people need from the legacy object to establish if there are other ways of achieving the same thing. The problem with the legacy object is that both the way it uses Csound, and the way it uses Max is much more complex (and thus fragile and hard to maintain).

It would be great to get it added to the downloads page though!
iain

On Tue, Oct 24, 2023 at 4:43 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Iain,

Thank you so much for all your work on this port.  I use it and share it with my students at Berklee.

I hope that your version of csound6~ will be added to the downloads page at Csound.com along with the legacy version that is currently there by Davis Pyon and Matt Ingalls (which still runs ALL of the Csound for Live instruments and effects under Rosetta) 

If it might not be too much trouble for you, I am wondering (and hoping) that you could also build/port/share the Davis Pyon/Matt Ingalls 'legacy' version of csound~  (The version currently found at https://csound.com/download.html)  to run native on the M1 (Apple Silicon) Macs.  If you did, that would keep alive a lot of pretty great instruments, code, models that I would be happy to open source and post links for the collection at Csound.com too.

Iain, I think that I might have sent you a link to the entire collection.  I will do so now so that you can test or use or see why this complete set might be of interest and use to you and many others.  I hope it is an easy job for you.  And, again. thank you for your work on csound6~

- Dr.B


Dr. Richard Boulanger

Professor

Electronic Production and Design

Berklee College of Music

Professional Writing & Technology Division



On Tue, Oct 24, 2023 at 4:03 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Congratulations and thank you very much for this.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 24 Oct 2023, at 03:10, Iain Duncan <iainduncanlists@GMAIL.COM> wrote:
>
> *Warning*
> This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.
> Hi Csounders, I just wanted to let people know that I have updated the csound6~ Max binary to include a universal build for Intel and Apple Silicon macs (and Windows 64).
>
> Other than that, there is no change to the object, but if you haven't heard of this object yet, the readme content from 0.2 is included below. Please let me know via github if for some reason it is not working for you.
>
> iain
>
> Csound6~
> A minimal real time csound class using the Csound6 API
> (c) Iain C.T. Duncan 2023, based on work by Victor Lazzarini, (c) 2005-2013.
>
> Csound6~ is mostly a port of Victor Lazzarini's csound object for Pure Data. It provides a minimal csound interface using the csound API and thus should provide better performance and latency than the legacy csound~ object. It does not attempt to port all the features of the legacy csound object, but does provide a newer and higher performance facility for converting krate DSP to Max messages.
>
> News:
>
>     2023-10-23 Version 0.2.1 is up, with a universal binary for Intel and Apple Silicon Macs
>     2022-03-20 Version 0.2 is up, with table and buffer i/o and improved control channel i/o
>
> Features
>
>     Allows playing csd, orc, and sco files
>     Plays realtime messages with score syntax
>     Scores playback time can be manipulated with minimal latency
>     Supports up to 32 inlets and outlets, corresponding to number of csound channels
>     Can receive realtime modulation data using the chnget and invalue opcodes
>     Enables listening to Csound krate channels as Max messages, at divisors of ksmps
>     Outvalue opcode can be used to send Max messages explicitly
>     Provides facilities for copying between Max buffers and csound tables.
>
> Limitations
>
>     Ksmps must be an even divisor of the Max signal vector size so that there are one or more even kpasses per audio vector calculation.
>     Realtime events are limited to "i", "f", and "e".
>     Csound midi opcodes are not supported. They may be ported if there is sufficient demand, though using Max midi and communicating with score messages is recommended instead.