Skip to content

Releases: shakfu/chuck-max

chuck-max 0.2.0

29 Aug 00:33
Compare
Choose a tag to compare

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

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 and Fluidsynth.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 and Fluidsynth.chug support for the MacOS external.

chuck-max 0.1.2

15 May 06:45
Compare
Choose a tag to compare

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 with status 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] for abc.ck to be in found in the same folder as the Max patch which references it.

Enjoy!

chuck-max 0.1.1 prerelease

08 May 16:20
Compare
Choose a tag to compare
Pre-release

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 added 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 the chuck-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> and edit <filename>. Also double-clicking on the chuck~ object will open the current file in the specified external editor.

  • Theadd and replace 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 previous debug 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 to support)

  • Added support for building the Faust or Fauck chugin with the faust
    stdlib in chuck-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 the README.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. The chugins folder in examples 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 added sndbuf1.ck) to demonstrate wav file playback via SndBuf with some samples

  • Changed signal message name to sig as it conflicted with a global Max message signal

  • 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)