csound6~ release, now supports Apple Silicon
Hi Maxers, just wanted to share that I have updated the csound6~ object to support Apple Silicon.
For those unfamiliar with this object, it is a modern version of the csound object, using the csound6 API. It's basically a port of Victor Lazzarini's PD version, with a couple of extras I added like table and buffer copying from csound to Max. Readme content pasted below.
https://github.com/iainctduncan/csound_max/releases/tag/0.2.1-mac-universal
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.
First of all thanks for your work. I did a quick test and it's running. (m1, Mac osx 13.6, max 8.5.6).
Just one question: I seem to remember that in the old object double clicking opened the csound file. Is this possible with the new object? I tried double clicking or "open" without success.
Hi Riccardo, thanks for letting me know it worked.
There is a ton that the old object did that I don't plan on porting, as I'm basing this one off the Pd object by Victor. But... that is a good idea. I will add it to a the backlog on github and see if it would be easy to add. I had that working for Scheme for Max but abandoned it because of threading issues, but perhaps those issues won't rear their heads for Csound. (Though come to think of it, they might...)
What I ended up doing instead for S4M was just printing the full path to the console so that at least it's trivially easy to open the right file!
Yeah, this could be a good improvement. Being able to quickly open and edit the file could be useful both for tests and for teaching. Anyway thanks again, also for the quick reply.
Hi Riccardo, would having the full path printed to the console be useful to you? I ask because this is quite easy to add (I can copy code from s4m).
iain