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