Device Details
Overview
Name | Version: | Kasm Algorithmic LFO 1.12.2 |
Author: | kevleyski |
Device Type: | MIDI Effect |
Description: | WebAssembly MIDI LFO Compiled Rust code emitting MIDI CC continuous control data inside of Ableton Live, the algorithm can be of any complexity, but there is more... Algorithmic input can also be diven by note pattern triggers, encoder movement behaviour and so on, with Kasm you can make your own live performance LFOs that change direction or holds on certain notes or knob twiddles for example Go edit your own bonkers algorithms in Rust code here make it do anything: https://maxforlive.com/library/device/12909/kasm-rust-ableton-wasm-source-code !! 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 LFO Rust code (Ableton Live and Web version uses identical WebAssembly)... pub fn kasm_lfo_logarithmic( _note: i32, cc_number: i32, _velocity: i32, enc1: i32, enc2: i32, _step: i32, _bar: i32, ) -> i32 { let now = crate::get_current_time_ms(); let mut last_time = LAST_LFO_TIME.write().unwrap(); let mut phase = LFO_PHASE.write().unwrap(); // Calculate time delta in milliseconds let delta_ms = if *last_time == 0 { *last_time = now; 0.0 } else { let delta = now.saturating_sub(*last_time) as f32; *last_time = now; delta }; // Calculate phase increment based on speed and tempo/bar length let phase_increment = lfo_phase_increment(delta_ms, enc1); // Accumulate phase (0..1 range) *phase = (*phase + phase_increment).fract(); // enc2 controls logarithmic scaling let log_scale = 1.0 + (enc2 as f32 / 127.0) * 9.0; // Calculate logarithmic function let log_input = 1.0 + *phase * (log_scale - 1.0); let log_value = log_input.ln() / log_scale.ln(); let lfo_value = (log_value * 127.0) as i32; send_cc(cc_number, lfo_value.max(0).min(127), 0); cc_number } ... 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 04 2025 09:11:01 |
Date Last Updated: | Aug 06 2025 12:00:40 |
Downloads: | 35 |
ⓘ License: | None |
Average Rating
Log in to rate this device |
-n/a- |
Files
Device File: | Kasm Algorithmic LFO.amxd |
Login to comment on this device.
Browse the full library