Releases: shakfu/chuck-max
chuck-max 0.2.0
Overview
chuck-max v0.2.0
is a major milestone release which makes ChucK accessible to the Windows Max/MSP community while maintaining and enhancing the existing macOS experience. This release represents a significant step forward in cross-platform compatibility and includes an update to ChucK v1.5.5.3
, numerous enhancements to the build system, chugin support, overall functionality as well as a new package logo.
What's New in v0.2.0
Windows Support
- Full Windows Build Support: Complete Windows compatibility for building
chuck~
and all standard CCRMA chugins using cmake.. - Cross-Platform Package: New
-multi
package variant that includes both macOS (arm64) and Windows (amd64) support. - Visual Studio Integration: Native support for (MSVC) Visual Studio Community Edition builds.
Enhanced Build System
- Alternative Build Method: Added support for building via taskfile, a fast, cross-platform go-based build tool inspired by Make.
- Improved Github Actions: Added support for building both windows and macOs packages as well as cross-platform packages using Github actions.
- Bundled Chugins: New
BUNDLED=1
macOS-only option for bundling chugins directly in the external's bundle - Initial Steps towards Chump Integration: Chump is now available as a cmake-compilable subproject as a first step to further integration.
Technical Improvements
Core Engine Updates
- ChucK Version: Updated to ChucK 1.5.5.3-dev (chai) - the latest development version
- Examples Update: All ChucK examples updated to match the latest engine version.
- Build System Modernization: Improved CMake configuration and build scripts
Platform-Specific Enhancements
- macOS: Continued support for arm64 and x64 architectures
- Windows: Full build pipeline from source to distribution
- Cross-Platform: Unified build system that works across all supported platforms
Known Issues
- Advanced chugins (
Faust.chug
,WarpBuf.chug
,FluidSynth.chug
) are not yet implemented on Windows - Some platform-specific optimizations may vary between macOS and Windows builds
Additional Resources
- Documentation: See
help/chuck~.maxhelp
for detailed usage information - Examples: Explore the
examples/
directory for practical demonstrations - Community: Join discussions on chuck-max channel of the ChucK discord and also the project's GitHub repository
- Cheatsheet: Download the PDF cheatsheet from the
media/
folder
Information about the Release Builds
Note that all MacOS externals and binaries are fully codesigned and notarized and can be used widely in other packages and standalones.
MacOS Releases
-
chuck-max-0.2.0-macos-arm64.dmg - Full Max Package Release for Apple Silicon Macs, includes
chuck~
external, ChucK examples and all CCRMA chugines and alsoFaust.chug
,Warpbuf.chug
andFluidsynth.chug
, in theexamples/chugins
folder. -
chuck-max-0.2.0-macos-arm64-bundled.dmg - The
BUNDLED
build variant is essentially the same as above but the chugins are embedded in the external'sResource
folder. -
chuck-max-0.2.0-macos-universal.dmg - Includes universal binaries for both arm64 and x86_64 architectures.
-
chuck-max-0.2.0-macos-x86_64.dmg - A build specifically for intel Macs.
Windows Releases
- chuck-max-0.2.0-windows-amd64.zip - Base Max Package Release for Windows machines, essentially similar same as the more mature MacOS release but without support for the
Faust.chug
,Warpbuf.chug
andFluidsynth.chug
chugins.
Cross-Platform Releases
- chuck-max-0.2.0-multi.zip - This is a cross-platform Max Package which includes both arm64 MacOS and Windows externals, ChucK examples and both MacOs and Windows versions of CCRMA Chugins, as well as
Faust.chug
,Warpbuf.chug
andFluidsynth.chug
support for the MacOS external.
chuck-max 0.1.2
This is a macOS-only release of the chuck-max
package which contains the chuck~
external, the base CCRMA chugins, as well as the Faust.chug
and WarpBuf.chug
chugins, and a large number of chuck code examples and Max patchers.
The biggest change over the prior pre-release is increased stability due to a much-appreciated fix for a critical Faust-related bug by Professor @gewang. There are also major improvements in build infrastructure, some usability tweaks and bug fixes detailed below.
The release includes notarized arm64, intel and universal binary builds for macOS. Just note that builds with the word base
in their title do not include the two larger chugins (Faust.chug
and WarpBuf.chug
).
To install just mount the .dmg
, and drag-n-drop the chuck-max
folder into the $HOME/Documents/Max 8/Packages
folder.
Please report any issues on the project's issue tracker, and if there's anyone who would like to help build a Windows version please create an issue or ping me on the chuck language discord channel.
Thanks to Professor @gewang for the great feedback on the prior pre-release and for directly contributing PR-16 which fixed the Faust 'crash-on-close' issue!
Thanks to @HighHarmonics2 for providing excellent usage feedback, bug reports, and for contributing some great examples!
This release includes the following changes:
[0.1.2]
-
Added a github workflow to automate building the external
-
Added improved and simplified build guide in README
-
Added much improved build system using predominantly homebrew packages via
make brew
-
Added test for .mp3 use by
WarpBuf
-
Added mp3 support to libsndfile-using chugins {
Fauck
,WarpBuf
} -
Added alternative max-friendly style for
add
such that<filename> arg1 arg2 .. argN
is interpretered as<filename>:arg1:arg2:argN
-
Added test for chuck
add
colon-separated args -
Added
ck_info
,ck_warn
,ck_debug
for more control and consistency wrt console logging. -
Removed
info
message and merged its functionality withstatus
message. -
Reorganized
patchers/contrib
folder given prior bug fix. -
Fix for file searching bug which now makes it possible in the case of
[chuck~ 2 abc.ck]
forabc.ck
to be in found in the same folder as the Max patch which references it.
Enjoy!
chuck-max 0.1.1 prerelease
This is a macOS-only pre-release of the chuck-max
package which contains the chuck~
external, the base ccrma chugins including Faust.chug
and WarpBuf.chug
, and a large number of chuck examples and Max patchers to demo use.
The pre-release is available as a code signed and notarized .dmg. To install just move the chuck-max
folder into $HOME/Documents/Max 8/Packages
.
Please report any issues on the project's issue tracker.
Thanks to @HighHarmonics2 for providing excellent usage feedback, bug reports, and for contributing some great examples!
This pre-release includes the following changes since the prior version:
[0.1.1]
-
Added
run_needs_audio
attribute to ensure that adding or running shred can only happen when dsp is on. -
Added patcher directory to search paths for
add
ed chuck file. -
Added improved callback demos for global vars
-
Changed
remove
message to able to take more than than one shred_id -
Added test for use of global variables and a practical test of its use in a musical patch.
-
Fixed bug which prevented sending lists of atoms as chuck arrays.
-
Improved path handling: run, add, replace, edit now all use same mechanism to check file validity, fix partial path if file is in
examples
, or otherwise search in Max search path. -
Changed / improved
chuck~.maxhelp
to make it clearer and more readable. -
Added
docs
message to open chuck documentation in browser -
Updated chuck code base to
1.5.2.5-dev (chai)
-
Added fallback search for file based on
locatefile_extended
if given path is not absolute or found in thechuck-max/examples
folder. -
Added support for setting file and editor attributes, to facilitate use of external editor via setting inspector vars or via setting
editor <path>
andedit <filename>
. Also double-clicking on thechuck~
object will open the current file in the specified external editor. -
The
add
andreplace
messages now both handle chuck style file args:add <path>:<arg1>:<arg2>:<argN>
While this is consistent without chuck treats file arguments, there is some thought to making this more readable and Max friendly in the future by dropping the colons to adopt the following style:add <path> <arg1> <arg2> ... <argN>
-
Fixed
chuck~
object args to allow just the number of channels as args. -
Added midi player to .maxhelp to demonstrate midi file playback of
chuck~
from Max. -
Added
loglevel
/loglevel <int>
message for setting chuck log level 0-10. Dropped redundant previousdebug
switch/attribute. -
Added a number of missing chuck messages:
add <filepath>
,replace <shredID> <filepath>
,reset id
,clear vm
,clear globals
,time
,status
along with their respective symbols:+
,-
,--
,=
,^
, etc. -
Changed back to keeping all chugins in
chuck-max/examples/chugins
(alternative is to move chugins and faust stdlib tosupport
) -
Added support for building the
Faust
orFauck
chugin with thefaust
stdlib inchuck-max/examples/faust
-
Added support for building the
WarpBuf
chugin -
Changed the content and structure of the
examples
folder to more closely resemble the updated chuck examples folder. See theREADME.md
file in the folder for a more granular list of changes. -
For macOS, chugins are now installed in the external's
Resources/chugins
folder. Thechugins
folder inexamples
is still searched for chugins in any case -
Removed posix header includes and replaced with x-platform code in aid of eventual windows support
-
Added callback mechanism and example
-
Added examples for local and global event triggering
-
Fixed the
sndbuf.ck
exmample (and addedsndbuf1.ck
) to demonstrate wav file playback viaSndBuf
with some samples -
Changed
signal
message name tosig
as it conflicted with a global Max messagesignal
-
Added optional channels argument which to set more channels at object creation
-
Changed
info
: now shows<object id> - <shred-id>
-
Added test for two object instances running simultaneously
-
Added
info
message to list running shreds in the console -
Update to chuck 1.5.2.3-dev (chai)