Device Details
Overview
Name | Version: | Kasm Triggaz 1.12 |
Author: | kevleyski |
Device Type: | MIDI Effect |
Description: | Auto trigger your live performances by what you play! Add a mixing desk tool to flag when musical cues happen Subtle signals per performing artist can adjust their own monitor levels etc... This example device uses the Kasm Rust devkit - as a demo of that the Rust code detects a live performer playing some common nursery rhymes in any key and trigger Ableton to change the scene, to test this play one of the following using a synth of Guitar2MIDI or sing into a vocal2midi (autotune)... "Twinkle Twinkle Little Star", "Three Blind Mice", "Frère Jacques", "Mary Had a Little Lamb" (merrily we roll along), and "Happy Birthday" Kasm then plays the next bar for you using similar tempo and velocity emanator style!... but more importantly it also sends to the outlet of the V8 JS Max4Live object a bang to control near anything in Ableton or 3rd plarty plug-ins This means using synths, guitar to midi or voice (autotune/midi) you can change Live Set scene, make a rack chain selection, set an LFO going, set off your DMX lighting rig and stage pyrotechnics maybe!... :-) It's using Rust code with WebAssembly to monitor playing pattern and triggers Max4Live with detected tune, root note, velocity and tempo To change what is detected this Ableton Max4Live MIDI device was built with source code available here: https://maxforlive.com/library/device/12909/kasm-ableton-wasm-rust-source-code-example To change the counterpoint algoriths this Ableton Max4Live MIDI device was built with source code available here: https://maxforlive.com/library/device/12909/kasm-ableton-wasm-rust-source-code-example !! NOTE: you need the latest Ableton 12.2 for this as it uses the new V8 jsinterp from Max9 !! Kasm is WebAssembly so you can develop and test things in web browser too, try it out here: https://pyrmontbrewery.com/kasm For those interested, this is what the Triggaz Rust code (Ableton Live and Web version uses identical WebAssembly)... // Note pattern definitions (relative intervals from starting note) // Each pattern: (name, intervals, timing_ratios, min_notes_to_trigger) const PATTERNS: &[(&str, &[i32], &[f64], usize)] = &[ // Twinkle Twinkle Little Star - "Twinkle twinkle little star" (7 notes) // Pattern: C C G G A A G - distinctive opening with repeated notes and fifth leap // Key distinction: Repeated tonic, leap to dominant, step up, return to dominant ("twinkle_twinkle", &[0, 0, 7, 7, 9, 9, 7], &[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0], 7), // Three Blind Mice - "Three blind mice, three blind mice" (6 notes) // Pattern: E D C, E D C - distinctive descending thirds repeated // Key distinction: Descending minor third pattern repeated immediately // Reduced min_notes from 6 to 4 to trigger earlier (after first phrase + 1 note of repeat) ("three_blind_mice", &[0, -2, -4, 0, -2, -4], &[1.0, 1.0, 2.0, 1.0, 1.0, 2.0], 4), // Frère Jacques - "Frère Jacques, Frère Jacques" (8 notes) // Pattern: C D E C, C D E C - distinctive stepwise motion with returns // Key distinction: Stepwise ascending then return to tonic, repeated ("frere_jacques", &[0, 2, 4, 0, 0, 2, 4, 0], &[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 8), // Mary Had a Little Lamb - "Mary had a little lamb" (7 notes) // Pattern: E D C D, E E E - distinctive descending then repeated notes // Key distinction: Descending minor third, return, then triple repetition // Made more specific to avoid false positives ("mary_little_lamb", &[0, -2, -4, -2, 0, 0, 0], &[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0], 7), // Happy Birthday - "Happy birthday to you" (6 notes) // Pattern: C C D C F E - distinctive leap to fourth with resolution // Key distinction: Repeated tonic, step up, leap to fourth, resolve down ("happy_birthday", &[0, 0, 2, 0, 5, 4], &[1.5, 0.5, 1.0, 1.0, 1.0, 0.5], 6), ]; // Tune completions - what to play after detecting the pattern // Format: (pattern_name, completion_notes, completion_timing) const TUNE_COMPLETIONS: &[(&str, &[i32], &[f64])] = &[ ("twinkle_twinkle", &[5, 5, 4, 4, 2, 2, 0], &[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0]), ("three_blind_mice", &[3, 1, 1, 0, 3, 1, 1, 0], &[1.5, 1.0, 0.5, 2.0, 1.5, 1.0, 0.5, 2.0]), // "see how they run, see how they run" ("frere_jacques", &[4, 5, 7, 4, 5, 7], &[1.0, 1.0, 2.0, 1.0, 1.0, 2.0]), ("mary_little_lamb", &[-2, -2, -2, 0, 3, 3], &[1.0, 1.0, 2.0, 1.0, 1.0, 2.0]), ("happy_birthday", &[0, 0, 2, 0, 7, 5], &[1.5, 0.5, 2.0, 1.0, 1.0, 1.0]), ]; ... 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: | Jul 19 2025 23:25:12 |
Date Last Updated: | Jul 28 2025 12:29:52 |
Downloads: | 54 |
ⓘ License: | None |
Average Rating
Log in to rate this device |
-n/a- |
Files
Device File: | Kasm Triggaz.amxd |
Login to comment on this device.
Browse the full library