Skip to content

Commit

Permalink
big changes new viz
Browse files Browse the repository at this point in the history
  • Loading branch information
zsteinkamp committed Apr 27, 2024
1 parent 9227485 commit 4ce6547
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 31 deletions.
Binary file modified ChiasticSlide.amxd
Binary file not shown.
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
# Chiastic Slide

Chiastic Slide is a Max for Live device that acts as a crossfader to a multi-chain device such as Instrument Rack or Audio Effect Rack. It can handle up to 32 chains, with control over the crossfade width.
Chiastic Slide is a Max for Live device that acts as a crossfader to a multi-chain device such as a Group Track, Instrument Rack or Audio Effect Rack. It can handle up to 32 chains, with control over the crossfade width.

![How it Looks](images/device.gif)

This allows you to have multiple chains of parallel material, instruments, etc and fade between them while time marches forward.

I created this plugin when I saw that the Abelton's Rack devices (Instrument Rack, Audio Effect Rack) `Chain Selector` parameter only controlled input rather than output. I was looking to have any number of sounds playing simultaneously, but be able to smoothly fade between them without disrupting time.

Traditionally, you can use this to fade between several different instruments or effects chains. Load up a few different pads in an Instrument Rack and give it a try.
Traditionally, you can use this to fade between several different instruments or effects chains. Load up a few different pads in an Instrument Rack and give it a try. Slice a long block of audio and put the slices on parallel tracks. Record automation of moving between them as they play.

Getting into the creative possibilities for this, things get pretty cool. Imagine 2-bar slices of an entire song playing simultaneously, in a loop, and being able to smoothly control which of those slices were audible. You can scrub through a song over the course of a two measures, locked in time. You can do this by slicing a longer recording into equal sized pieces, cropping those pieces, then select the pieces and drag them to an Instrument Rack device. This will create a Simpler device on each chain. Add an instance of Chiastic Slide after the Instrument Rack, sequence some notes the same length as your slices, and you can get jamming.
Getting into the creative possibilities for this, things get pretty cool. Imagine 2-bar slices of an entire song playing simultaneously, in a loop, and being able to smoothly control which of those slices were audible. You can scrub through a song over the course of a two measures, locked in time.

Or overlay a conversation between two people over time, scrubbing forward and backward through their exchange over the course of a measure or eight.
If you're interested in this, then you may prefer to use my other, similar device called [SimulScrub](https://github.com/zsteinkamp/m4l-SimulScrub).

Try overlaying a conversation between two people over time, scrubbing forward and backward through their exchange over the course of a measure or eight.

Time becomes just another creative dimension, without ever losing connection with the recording's inherent rhythm.

Expand All @@ -22,6 +24,7 @@ Time becomes just another creative dimension, without ever losing connection wit

## Changelog

- 2024-04-27 [v3](https://github.com/zsteinkamp/m4l-ChiasticSlide/releases/download/v3/ChiasticSlide.v3.amxd) - Support group tracks. Provide a visual for volumes.
- 2024-01-15 [v2](https://github.com/zsteinkamp/m4l-ChiasticSlide/releases/download/v2/ChiasticSlide.v2.amxd) - Pretty big rework to fix an undo buffer flood bug.
- 2024-01-09 v1 - Initial Release (download disabled).

Expand Down
4 changes: 4 additions & 0 deletions about.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 5 additions & 3 deletions chiasticSlide.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
autowatch = 1
var MAX_PARAMS = 32
inlets = 1
outlets = 3
outlets = 4

var debugLog = true
var debugLog = false

setinletassist(0, '<Bang> to initialize, <Float> to fade.')
OUTLET_STATUS = 0
OUTLET_VAL = 1
OUTLET_IDS = 2
OUTLET_NUM = 3
setoutletassist(OUTLET_STATUS, '<String> Status message to display.')
setoutletassist(OUTLET_VAL, '<chain idx, val> Volume value for given chain.')
setoutletassist(
OUTLET_IDS,
'<chain idx, id, param_id> messages to map live.remote to device id param_id.'
)
setoutletassist(OUTLET_NUM, '<num_chains> number of chains mapped.')

function debug() {
if (debugLog) {
Expand Down Expand Up @@ -43,7 +45,6 @@ function bang() {
}

function fader(val) {
val = val / 100.0
//debug('FLOAT: ' + val)
state.val = val
updateVolumes()
Expand Down Expand Up @@ -174,6 +175,7 @@ function initialize() {

if (currChain > 0) {
sendStatus('OK - Set up ' + currChain + ' chains.')
outlet(OUTLET_NUM, currChain)
} else {
sendStatus('ERROR: Cannot handle it.')
}
Expand Down
Binary file modified images/device.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 0 additions & 24 deletions remote.maxpat
Original file line number Diff line number Diff line change
Expand Up @@ -46,24 +46,9 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 80.0, 28.0, 22.0 ],
"saved_object_attributes" : {
"attr_comment" : ""
}
,
"text" : "in 1"
}

}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 218.0, 185.0, 99.0, 22.0 ],
"text" : "print #0---FOO"
}

}
, {
"box" : {
Expand All @@ -86,17 +71,8 @@
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-2", 0 ],
"order" : 0,
"source" : [ "obj-3", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-43", 0 ],
"order" : 1,
"source" : [ "obj-3", 0 ]
}

Expand Down

0 comments on commit 4ce6547

Please sign in to comment.