Device Details
Overview
Name | Version: | Kasm Canvas 1.12.3 |
Author: | kevleyski |
Device Type: | MIDI Effect |
Description: | Visualizers inside Ableton Live! Compiled optimised Rust code rendering to HTML5 canvas 2D context via Max4Live jweb object through WebAssembly Go edit your own neat visualisers, make some slick animated VST wrappers for Ableton Live in Rust code here - make it do anything: https://maxforlive.com/library/device/12909/kasm-rust-ableton-wasm-source-code (there is a WebGPU version coming too but there were some fiddly bits still to deal with) !! NOTE: you need the latest Ableton 12.2 for this as it uses the new V8 jsinterp from Max9 !! But... if you don't have Max4Live or have an older Ableton Live version no worries - Kasm is WebAssembly so it also runs on a regular web browsers too! You can interface with Ableton via WebMIDI instead, this way you can develop and test with Kasm SDK in Chrome/Firefox, try it out here: https://pyrmontbrewery.com/kasm For those interested, this is what the code looks like (Ableton Live and Web version uses identical WebAssembly)... fn init_canvas_2d(canvas: &HtmlCanvasElement) -> Result (), JsValue { let context = canvas .get_context("2d")? .ok_or("Failed to get 2D context")? .dyn_into::CanvasRenderingContext2d()?; // Set initial background with a more visible color for testing context.set_fill_style(&JsValue::from_str("#111")); context.fill_rect(0.0, 0.0, 150.0, 150.0); // Draw initial border to confirm canvas is working context.set_stroke_style(&JsValue::from_str("#333")); context.set_line_width(2.0); context.stroke_rect(1.0, 1.0, 148.0, 148.0); crate::post!("Canvas: 2D context initialized with polyphonic support"); Ok(()) } pub fn update_webgpu_data(midi_data_1: i32, midi_data_2: i32, is_cc: bool) { let prev_data_1 = *MIDI_DATA_1.lock().unwrap(); let prev_data_2 = *MIDI_DATA_2.lock().unwrap(); let prev_is_cc = *IS_CC_DATA.lock().unwrap(); // Update stored values *MIDI_DATA_1.lock().unwrap() = midi_data_1; *MIDI_DATA_2.lock().unwrap() = midi_data_2; *IS_CC_DATA.lock().unwrap() = is_cc; ... full source code is here https://maxforlive.com/library/device/12909/kasm-rust-ableton-wasm-source-code |
Details
Live Version Used: | 12.2 |
Max Version Used: | 9.0 |
Date Added: | Aug 06 2025 11:58:40 |
Date Last Updated: | Aug 07 2025 06:13:10 |
Downloads: | 30 |
ⓘ License: | None |
Average Rating
Log in to rate this device |
-n/a- |
Files
Device File: | Kasm Canvas.amxd |
Login to comment on this device.
Browse the full library