-
check duplication every device
-
check previews undo history on automation
-
check performance pack
-
demo track should be standard compatible = no operator, no wavetable
-
transition view fit
-
masking?
-
transform: crop?
-
windows + preview bug in "using feedback"
-
shader should not history undo on session open
-
follow + sync: macro support
-
follow + sync: skip self
-
add note about names to "PX Shader — Audio types"
-
using modulation
-
MIX OUT persistence
-
doc better signal flow explanation?
-
discord link near help button
-
jit.fx.ge.flowfield?
-
jit.fx.ge.pattern?
-
GEN Mini: close file, add watcher?
-
doc: buffer size vs FPS info
-
world: FPS/buffer size
-
investigate unresponsive UI on small buffer
-
add info about mouse and time params to mini shader doc
Alpha 3 release notes:
Mix View device:
- GL button removed (screenshots in the doc will be updated for Beta release)
- preview inside device is limited to 25 FPS (12.5 FPS on Windows), (FPS in pop window and stream output is unaffected)
Alpha 7 release notes:
- cross device communication optimization
- reduced preview inside Mix View device on Windows to 8 FPS
Alpha 10 release notes:
Mix View
- `[...]` button replaced with `[<]` and `[>]` buttons
Alpha 11 release notes:
All
- Push support
Mix View
- fixed mixing sliders
Mix View + IN Mix
- Mix OUT, IN Mix: renamed buttons from numbers 1-9 to letters A-Z
DEV Info, DEV Console
- smaller device width
Alpha 13 release notes:
Mix Grid
- new device
Mix View
- more blend modes + color modes
- alpha, view fit, swap and OKLAB support
- consistent initial popup size
- improved UI look for smaller popup size
- known issue: demo set "Using Feedback" not showing preview inside device on Windows (pop works)
Mix Dry
- more blend modes + color modes
- alpha, view fit, swap and OKLAB support
IN Video
- fixed play buton (cosmetic) state
Alpha 17 release notes:
Mix View
- added UI, Full, Bare options as a workaround for multi-monitor setup especially with different DPI which does not work well with the UI option
- fixed dimension change for hidden preview
- fixed UI for Max 9.1.0 although there might other issues so it's better to stay on bundled 9.0.7
- added fullscreen <key>ESC<key> support
Alpha 18 release notes:
Mini Shader
- added support for `#include` directive and [Lygia Shader Library](https://lygia.xyz/) (bundled in `assets/lib/lygia`), see examples `X.Lygia.01` to `18`
Rec
- fixed video recording (Thanks (@SenPi)[https://discord.com/channels/1329379539708805193/1329379539708805196/1436424813731123311])
Sync & Follow
- fixed 3rd modulation weight not applied (was always 50%)
- fixed session restoring selected modulated parameter
- increased weight resolution (from 1% to 0.01%)
Mix View
- cosmetic fix of instant recording
Demo sets
- added `Sync.als`
- added `Simple Set.als`
`
```text
Alpha 19 release notes:
Mini Shader
- added support for input texture (repurposed backbuffer b variable)
- added FX shader examples (X.02 FX Invert, X.Lygia.21 FX ... X.Lygia.25 FX)
Shader
- added support for `#include` directive and [Lygia Shader Library](https://lygia.xyz/) (bundled in `assets/lib/lygia`), see examples `X.Lygia.01` to `02`
- changed bool param rounding (works better with modulation now)
- added shaders
- fixed audiofft used instead of audioFFT
- fixed MIDI data update
- fixed error on empty ISF inputs
MIDI Route
- reduced MIDI data indicator overhead
``
```text
Alpha 22 release notes:
All
- updated to Max 9.0.8 (bundled in Live 12.2.7 )
Shader
- removed unused `Audio Fft` parameter (regression caused by previous update)
- added shaders - showing usage of `#include` directive with Lygia and custom shader libraries in ISF shaders
Demo
- `Retro O Vis.als` demo [youtu.be/XsXSijTUIKI](https://youtu.be/XsXSijTUIKI)
- `Retro Vis.als` demo [youtu.be/7piqR-xdgHY](https://youtu.be/7piqR-xdgHY)
- `X.Darosh.06 Retro Roll.fs` shader [youtu.be/4xlyQeEKm5U](https://youtu.be/4xlyQeEKm5U)
Alpha 23 release notes:
Mix View
- fixed MIX OUT not streaming on session open (Thanks [@_Mote_ of Discord](https://discord.com/channels/1329379539708805193/1329379539708805196/1440322236392411228))
Shader
- added support for `long` parameter
- added shaders
- check mini shaders licences
- MIT https://bsky.app/profile/holtsetio.bsky.social/post/3lwyikurabc26
- CC0 https://bsky.app/profile/rangemarten.bsky.social/post/3losfvor4ws2y
- https://x.com/kamoshika_vrc/status/1684571232765882368
- CC BY-NC-SA https://x.com/XorDev/status/1601770313230209024
- MIT https://x.com/YoheiNishitsuji/status/1796435007873151189
- check processing licences
Hi,
I would love to include your shaders in my open source VJ toolkit for Ableton Live: https://github.com/darosh/px-stream
Currently, it's included in the assets/mini-shaders folder with a link to the original post and marked as "license pending clarification" in assets/LICENSE.md.
The project is dual-licensed MIT/CC-BY. I can work with any open license you prefer (CC0, CC-BY, CC-BY-NC-SA, etc.) - or if you'd prefer, I'll remove it immediately.
The shaders are dynamically loaded and user-editable, so people can learn from and tweak your code while creating visuals for their music.
Would you be okay with this? Let me know your preferred license or if you have any concerns.
Best regards,
Jan
Hi,
I would love to include your Processing sketches in my open source VJ toolkit for Ableton Live: https://github.com/darosh/px-stream
Currently, it's included in the assets/sketches folder with a link to the original post and marked as "license pending clarification" in assets/LICENSE.md.
The project is dual-licensed MIT/CC-BY. I can work with any open license you prefer (CC0, CC-BY, CC-BY-NC-SA, etc.) - or if you'd prefer, I'll remove it immediately.
The sketches are dynamically loaded and user-editable, so people can learn from and tweak your code while creating visuals for their music.
Would you be okay with this? Let me know your preferred license or if you have any concerns.
Best regards,
Jan
Hi! Can I include it in my open source VJ toolkit https://github.com/darosh/px-stream ? It's in assets/mini-shaders with link to post, marked "license pending." Any open license works (CC0/BY/BY-NC) or I'll remove it. Thank you!
Hi! Can I include it in my open source VJ toolkit https://github.com/darosh/px-stream ? It's in assets/sketches with link to post, marked "license pending." Any open license works (CC0/BY/BY-NC) or I'll remove it. Thank you!
- tempo param? BEAT? BAR?
- frameSkip should be time based
- more shaders
- better midi shader
- vu shader?
- rolling waveform shader?
- mix view resize glitch
- mix view broken popup
- FX pass diferent tab layout
- spout support
- jit.record codec diferences?
- jpeg, h264, prores4444, prores422
- jpeg, h264, gif
- use: h264, prores422, prores4444
- syphon error
- VIDDLL needs to be installed
- Mini Shader
- jit.gl.slab: GLSL shader error in program fp: ERROR: 2:4: 'FragUserData' : cannot initialize this type of qualifier
- jit.gl.slab: jit.gl.shader: GLSL program failed to compile.
- WIN: OpenGL Version 4.6.0 - Build 30.0.101.1218, GLSL Version 4.60 - Build 30.0.101.1218
- MAC: OpenGL Version 4.1 Metal - 89.4, GLSL Version 4.10
- isf mxo?
-
; max packagebrowser viddlldoes not work in Live
From m4l-production-guidelines
Here is a checklist to recap the topics of this guide that can be tested, which you can use for Quality Assurance purposes for your device.
General
- Error messages: There are no prints in the Max Console on load.
- Undo History: After adding the device, there is only one new undo.
- Undo History: Live's undo menu is never ‘flooded’.
- Freezing: The device is frozen if it contains dependencies.
- Presets: The device comes with a collection of presets.
Audio and MIDI
- Clicks: There are no unintended audio clicks, when changing parameter values or otherwise.
- Sample rate consistency: Everything continues to work and sound the same when changing the sample rate in Live's preferences.
- Render consistency: The device sounds identical on playback, on a frozen track, and on rendering an audio file.
- MPE: MIDI devices support MPE (
is_mpeis set to active). - Latency: The device plays in sync with the rest of the Live Set.
- MIDI Mapping: The main device parameters can be mapped to a MIDI controller.
- MIDI Tools: Random number generators (e.g.
randomobjects) in betweenlive.miditool.inandlive.miditool.outmust be reset using a seed value before being triggered. The seed value used should only change as a result of user input. This ensures a deterministic output whenlive.miditool.inis repeatedly triggered by Live.
UI
- Live themes: All UI objects have theme-following colors, checked with all color themes.
- Disabling: The UI colors are correct when the device is disabled.
- Positioning: The left-most element in presentation mode is as far from the left side of the device as the right-most element is from the right side.
- Default initialization: Colors and texts that are changed dynamically are saved in their default state to prevent a color or content flash after loading a new instance of the device.
- Font consistency: All UI fonts are set to Live's font.
- Tab stops: Comments don't include any tab stops. The result will look different per OS.
- Device width: The device does not take up too much of the horizontal space in the Device view.
- Device width: If the device can dynamically change its size, make sure the device's custom width setting matches its initial width.
Parameters
Note: many of these things can be checked and changed in the View > Parameters window.
- Info fields: All Info Title
- and Info fields are filled in.
- Naming: All parameters have non-generic Long Name and Short Name fields. No names have auto-appended indexes, like
[1]. - Automation: The parameter dropdown for a device contains all intended automatable parameters.
- Value editing: Parameter Types and Units correspond to the kind of data being represented, taking into account that using the Int type gives users a tall grid automation lane.
- Enum labels: Unit / labels of automation for Enum parameters don't have generic values ("val1"/"val2" for buttons).
- Modulation: All parameters have a modulation mode set. Bipolar for Float, Absolute for Int, or different if you prefer.
- Defaults: All default parameter values are correct, i.e. the device works well after newly instantiating it.
- Save and recall: All parameters are recalled correctly when opening a Live Set that contains the device with non-default values for all parameters.
- Push: The parameters show up correctly on Push.
Robustness
- CPU Load: The device does not cause unexpectedly high CPU load in the context of a Live Set.
- Version support: The device runs well with all Live and Max versions starting from the lowest versions set in the device.
- Platform support: Ideally macOS, Windows and Push 3 Standalone all host the device well.
- Independence: Multiple instances of the device run well simultaneously.
- Testing: The device is tested by one or more people besides the device developer.
For new versions of existing devices
- Name consistency: The parameter names are the same as the old version.
- Take special care of auto-indexed names when there are parameters in abstractions (also in bpatchers) that are instantiated multiple times.
- Value recall: Parameter values stored in a Live Set with an old version of the device are all recalled properly.
- API ID recall: Persistent ids stored in a Live Set with an old version of the device are all recalled properly.
- DEV Console
- DEV Info
- PX Follow
- PX FX Alpha
- PX FX Blur
- PX FX Color
- PX FX Colorize
- PX FX Convert
- PX FX Delay
- PX FX Kaleidoscope
- PX FX Pass
- PX FX Pixelization
- PX FX Transform
- PX GEN Cos Pattern
- PX GEN Mini Shader
- PX GEN Sketching
- PX GEN Text
- PX IN Cam
- PX IN Channel
- PX IN Image
- PX IN Mix
- PX IN Stream
- PX IN SVG
- PX IN Video
- PX Mix Channel
- PX Mix Dry
- PX Mix Grid
- PX Mix Transition
- PX Mix View
- PX Rec
- PX Route Audio
- PX Route MIDI
- PX Shader
- PX Sync
- PX World
- https://x.com/sidebrain/status/1985762677667631431
- https://x.com/sidebrain/status/1986866381649060254
- https://www.facebook.com/SideBrain
- https://www.threads.com/@sidebrain/post/DQpKEIaj4Jk
- https://www.instagram.com/stories/sidebrain/
- https://www.shadertoy.com/view/t3SfW1
- https://www.shadertoy.com/view/7dyyRy
- ISF shader bool should round .5+ up
- audiofft is audioFFT? doc fix?
- 3rd modulation weight fix?
- modulation weight resolution?
- mix view instant rec layout fix
- max 9.1.0: pop GL UI broken
- postponed
max 9.1.0: pop size - follow: screenshots + doc
- sync: screenshots + doc
- follow: negative slope
- follow: clamp mod
- sync: bypass audio
- follow
- defer all params
- use bundled max version 9.0.7
- sync: push
-
sync: link skip self clone - sync: auto re-link
- sync: multi mod fix
- sync: reset counters, comment on stop
- enable_mouse_editing 0
- screenshots
- grid: screenshots
- grid: animation
-
doc: grid randomize cycles -
doc: oklab highlight -
doc: swap highlight - grid: push banks
-
split grid shift 1px right - split grid arrow color?
- split rename to
mergegrid - join rename to PIP
- merge/split mix?
- wrap clamp
- win: test
- assets: smaller video
- initial pop size
- pop resize blocked by sliders?
- dry: swap + oklab highlight
- externalize button highlight patches
- update blend pickers
- view: update push params
- view: inline shaders
- view: upgrade blend
- unify play buttons
- dry: update push params
- dry: inline shaders
- dry: upgrade blend
- simplify feedback
-
check frames on sketching -
sketching win performance - resize: console, info, 116, 130, 130 + 96 = 226
- rename mix IN/OUT numbers to letters
-
PX Mix devicepreview switch + doc - cross device messages on change only
- view: Pop + FPS re-layout
- alpha 2 release and win test (before
or aftermac alpha 1 result?) - doc win settings: Win -> System -> Display -> Graphics -> Ableton -> GPU Preference = High performance, Optimization for windowed games: On
- doc win settings: Max -> Options -> OpenGL Status
- Preview
- should reset pwin when (current === selected track) && is_windows
should reset pwin when GL switch is changed- should pause preview rendering when current !== selected track || device is collapsed || device is disabled
- none of above should cause lag in Syphon/Spout stream
GL switch default on- GL switch doc needs update
- doc alpha
- pop persistence
- performance guide: sample, embrace, ditch
- doc: svg rounded dim
- shader: param typing
- sprint symout!!!
- guide: using feedback
- guide: using xy oscilloscope
- guide: using midi
- shader types block dials
-
midi send refresh - decimal shader params
- midi shaders
- reduce alpha assets - keep/reorg previews
- svg fit rounding?
- re-screenshots mix view -1 -2 px
- re-screenshot collapsed
- re-screenshot guides
- re-save collapsed presets and demos
-
is windowsselected track needs real bang - align info box shader and mini shader, sketching
- sketching collapse
- sketching min delay 5
- disable GL button on WINDOWS, gate
- collapse by default: color, mini shader, pixelization, anything else?
- blur dials position and labels fix
- spout in bundle
- win: canvas ui error
- win: FPS font size
- win: console hot keys Ctrl+Alt+Shift+M
- sample presets
- fix presets, add glow wave
- screenshot
- doc world enabled automation
- doc FS display link and fps 0, and multi fs limitation
- doc exclusive rotation
- preset guide doc
- guide presets
- update image assets
- fix save files timestamp
- mini shader real time
- check render gate closed on popup closed
- do not resize fullscreen
-
If parameter automation causes high CPU load, try enabling Defer Automation Output in the object Inspector, or try higher values for the Update Limit. - fix channel update on device remove
- windows testing
- guide + screenshots
- fix color wheel automation position / update screenshots
- check Mix OUT not persistent
- check frozen console errors
- check return and master
- check grouping
- mini shader param y fix
- screenshot shortcuts
- FX preview, animation, shader, color, kaleido, pass
- remove second convert image
- secondary images should be smaller?
-
doc tab layout? top/side,bottom note? - explore bundle folder structure
- assets org
- fix: kaleidoscope switches, params
- fix: transform rotation switch
- disable value in cos pattern?
- color grade automation
- fix: video reset label
- fix: svg file switch
- double-check int params! "parameter_type" : 1
- double-check generic val1 val2 enums
- assets licence
- dual licence?
- disable irrelevant params: x=y
- disable irrelevant params: alpha
- disable irrelevant params: pixel
- disable irrelevant params: colorize
-
transition: 0 dry - disable irrelevant params: text
- text: track field label
- white square instead of black?
-
doc update banner -
doc console font, brew install --cask font-cascadia-code -
doc https://syphon.info/recorder.html -
sdk? - mix view: optimize mix (jxs?)
- param doc / mass edit
- reorg repo: data=>assets, assets/devices=>docs/media/devices, assets/? => scripts/?, assets/?? => tests/fixtures
- video in?
loop on/off per clip, speed control,in/out points -
inline preview device? - record device?
-
powered by logo - light theme fix
- mix: takes screenshot
-
delay: make max frames dynamic - https://cycling74.com/tutorials/max-and-opengl-gl-texture-delay
- https://www.youtube.com/watch?v=PomKrUNqdAk
- JPEG
-
reactive geometry device? -
/Applications/Max.app/Contents/Resources/C74/media/demos/max9-geom-demo.maxpat -
oklab blend? color adjustment? -
sky box? -
blur: find optimal ranges -
kaleido: find optimal ranges - pass:find optimal ranges
- no webcam selected on load
- webcam stored as name
- fix svg automation
- fix svg resolution switch
-
cache svg texture - fit vs fill
-
fix dry swap dims? - shader: scrollable bpatcher to isf info
-
shader:replace bpatchers -
hsv mode? - syphon persistence?
- fix jit.gl.syphonclient: doesn't understand ""
- check texture float 32
-
check fx (pass) quality param -
disable unused chains? - multiline descriptions
- restore session params and automation
- disable dynamic live.menu automation
- make transitions dynamic
-
mini shader: device id based temp path - fix world UI
- logo mouse over
- re-enable passed channel on change
-
sketch max limit should count only glvertex - sketch point spiral
- replace readme WIP with notice for clean #px-stream hash
- device images link to doc
- sketching point scaling
- fl primitives sketch
- try primitives in block color/sizing
- check params:info
- check int params! "parameter_type" : 1
- file automation item change only
- fix default cos pattern
- move info to bpatcher + add version
- shader stored as name
- Color: add to doc
- Colorize: add to doc
-
Colorize: add presets - Colorize: test on color/bw videos
- text: beat, time, frame, direct
- text font automation + ref, store by string
- shader: reset dials on empty inputs
- capitalize params
- params scripts
- transitions?
isf? - pixelization rotation fix
- reset shader param
- shader initial load fix
- shader labels
- dimension x format, abstraction
- dry/wet modes capitalization
- reset color grading
- pixelization smoothing split
- UI fl, consolidation
- shader menu
- cam/syphon indicator
- cam/syphon live bang only
- in to in + gen
- automate batch freeze?
- remove the silly cam & syphon icons, replace with dims and activity
- check negative values parsing in eslint
- add DEV to doc
- transform is FX?
- img alt
-
video rate LFO? - texture (feedback?) delay
- colorize?
- color correction
-
cc.scalebias.jxs? - https://docs.cycling74.com/learn/articles/01-color-management/
-
-
color -
gradient -
image in? -
activity blink? - color: reorder ops
- color: improve wheel pic
- fix pass?
- add activity to dev info
- screenshot automation
- optimize console
-
transformation causing errors in PASS? - transform bake in texture
- transform scale x=y btn
- transform rotation tabs
-
pause rendering on pauseuse automation instead -
-
mystery errortypedmess: draw: corrupt object object_class_internal: bad object b06583e0 doesn't understand "draw"
-
- info device console style
-
doceslint globals, sends, dicts - disable device for bypass
- use jit window instead of world for fullscreen
- blur redesign
- fl: tabs
- fl: cam tooltips
- cos pallete (presets)
- kaleido scale lock
- kaleido redesign
- kaleido simulation https://en.wikipedia.org/wiki/Kaleidoscope
- rename IN FX Dry
- Cos Pattern:
- lock scale,
- extract param (flower etc),
- color presets,
- win size -1,
luma?- channel switch
- hue shift
- [P] pass not marked as RED on collision?
- merge channels? dry wet?
-
how to erase texture from layer? -
center dry/wet by channel - dry wet - dry selector
- review channel / chain usage, esp. chain "to end"
- channel add through
- shader redesign, sliders columns by
48, - shader type should not be default on, expand should be ...
- global reset texture?
- add dry/wet algo
- rename dev devices to DEV?
- syphon in?
- copy channel?
-
migrate to umenu? - View -> Mix, Stream -> Out, Mix OUT, MIX IN
- Unify prefix PX
- webcam in?
- jit fx? kaleido
- ~~~jit fx? amoeba~~~
- jit fx blur?
- jit fx glow?
- fx pass
- check removed device/channel
- remove log from view
- texture info
- shader wrong intital size
-
view channel hotkeys 1-8 - esc multi view bug
- debug globals?
- popup responsivness
- channel to maxpat
-
selector to maxpat -
GL fullscreen FPS sync - check dim params
- extend dim params
- popup ui?
- popup fullscreen
- doc alternatives
- channel view buttons automation
- adjust fps brightness
- better XY? https://m1el.github.io/woscope-how/ https://github.com/m1el/woscope/blob/master/shaders/fsLine.glsl
- logo open GH
- fix text error msg
- popup
- rebrand popup title
- rebrand patching comments
- rebrand world context
-
wave draw? - text/clip? render
- rebrand to PX Stream?
- midi render
- render dimensions selector
- show shader credit
- syphon view
- open file
- open folder
- osc pre render?
- parametrize audio images
- image params
- add visualizer meta
- syphon tabs
- load shaders dir
- categorize
- fps
- unified wav
- win transition errors
progress: bad number
int: bad number
tex1: bad number
jit_position: bad number
progress: bad number
direction: bad number
progress: bad number
type: bad number
ReverseEffect: bad number
tex1: bad number
textureMatrix1: bad number
FadeInSecond: bad number
textureMatrix1: bad number
FadeInSecond: bad number
u_transitionUpToDown: bad number
- Refresh rate: Pro Motion
- Sample rate: 48000
- Set: PX Stream.als, 1280x720
| Buffer size | FPS Limit | FPS | Note |
|---|---|---|---|
| 2048 | 0 | 106 | |
| 1024 | 0 | 114 | |
| 512 | 0 | 117 | |
| 256 | 0 | 119 | |
| 128 | 0 | 119 | |
| 64 | 0 | 120 | |
| 32 | 0 | 120 |
- Refresh rate: 120 Hz
- Sample rate: 48000
- Set: PX Stream.als, 1280x720
| Buffer size | FPS Limit | FPS | Note |
|---|---|---|---|
| 2048 | 60 | 42 | |
| 1024 | 60 | 52 | |
| 512 | 90 | 85 | |
| 256 | 90 | 88 | |
| 128 | 120 | 120 | |
| 64 | 120 | 120 | |
| 32 | 120 | 120 | † Unresponsive |
† Max devices and Live become unresponsive