Sndviz analyzes an audio device, file or CHOP input into various TOP textures, or 'modules'. Each module consists of 3-4 discreet data channels (RGB/A): high values in red, mids in green, lows in blue, and auxilary data in alpha. These modules can be used for 3d geometry instancing, 2d texturing and other real time audio visualisation use cases.
- Drop the Sndviz.tox file into your TouchDesigner project.
- On the
Sndvizbase component parameters panel, open theAudiopage. Inside theInputsection, select your preferredAudio Input Device,Audio File, or roll your own input with anIn CHOP.- I recommend Cable for Windows or Soundflower for Mac. These allow you to feed local audio (Spotify, Firefox, etc.) to TouchDesigner/Sndviz directly.
- If you are using Cable, select
CABLE Input (VB-Audio Virtual Cable)as the Windows sound output device, andCABLE Output (VB-Audio Virtual Cable)as the sound input device.
- Once your preferred audio source is selected and playing, sound data should begin visualising across all Sndviz modules. If they remain black, verify your audio source is correctly configured, as well as the Sndviz
Audioparameters. - To monitor sound output, select your preferred
Audio Output Deviceand toggle theEnable Audio Outputbutton toOn. You can also adjust theOutput Bufferhere to compensate for video latency.
- Inside the
Sndvizbase component, copy and paste any of the Select TOPs and/or CHOPs anywhere you would like in your network. Be sure to keep the Sndviz component stored somewhere in your toe.
Sometimes it can be useful to run Sndviz on a separate machine for additional performance, compute constraints and overall flexibility.
- Inside the
Sndvizbase component, cut (or copy) theSndvizReceiverbase component and paste it into your destination TouchDesigner project. - If the destination project is running on your local machine (localhost), you do not need to modify any parameters on the
senderorSndvizReceiverbase components. - If the destination project is running on a remote machine on your network, select the
SndvizReceiverbase component, then theNetwork Settingspage, and change theComputer Name / IPparameter fromlocalhostto the IP of the source machine that Sndviz is running on. - Inside the
globalReceiverSelectsbase component (inside ofSndvizReceiver) are individual Select OPs. Each OP can be copied and pasted into anywhere in your TouchDesigner project for easy referencing.
- Various module refactors and optimizations
- New beat detection algo based on scheb's sound-to-light-osc.
- Simplification of texture outputs
- Minor audio input bug fixes
- Moved out of beta
- Updated to 2021.13610 (Windows 10 x64)
- Added custom par pages and a main
GUICOMP - Minor performance improvements and redo of certain texture generators/filters
- Updated defaults for a better UX
- Added Base Outs to
Sndvizbase component - Fixed mono bug when using an In CHOP as an Audio Source
- Beat detection performance improvements and bug fixes
- Added parameter toggles for Touch Out CHOPs (Stream/Beat)
- Added
SpeedandResetparameters for several modules
- Minor performance improvements in
audioSrcbase component - Updated Select TOP references (Parameter selects, Global selects and Global Receiver selects options)
- Added initial demo scene sunSpotsDemo.tox
- Added
Audio File InandCHOP Inparameters - Updated binding setup
- Added
Modulespage with path parameters and example Parameter DAT / Select TOP inSndviz/internalSelects - Optimised execute DATs and several modules
- Added automatic audio normalisation (and automatic line noise reduction when silence is detected)
- Added Touch Out toggle parameter
- Minor bug fixes
Initial public beta release.
- Select OPs locally use the following Global OP Shorcut syntax:
op.Sndviz.op('name-of-module'). - Select OPs between different Touch instances using:
op.SndvizReceiver.op('name-of-module'). - OP shortcuts can also be found on the
Modulespage of the Sndviz base component.
(OUTDATTED) The following Sndviz modules are currently implemented (all TOPs are in RGBA format):
avg1- A 1x1 pixel of averages for high (red), mid (green) and low (blue) ranges. Alpha channel is an average of all ranges.avg2- A 4x4 matrix of averages for high (red), mid (green) and low (blue) values. Alpha channel is an average of all ranges.bars1- A 1D feedback texture of detected beats (RGBA). Alpha channel is float, RGB are boolean values.beat1- Basic beat detection that runs best with simple electronic music.beatchannel - Each beat of the song.counterchannel - 8-integer counter (0-7) that loops, based on the beat.downbeatchannel - (Usually) the first or last beat of each bar (every 4 beats) of the audio.bpmchannel - The estimated beats per minute (BPM) of the audio.- Special thanks to Alpha MoonBase for sharing his techniques on this detection using CHOPs.
beat2A 2x2 matrix (TOP) indicating the beat progression through each bar of the audio.eq1- A 2D graphic equilizer showing audio levels for low (blue), mid (green) and high (red) ranges, from left to right. Alpha channel included.graph1- A 2D feedback texture of audio levels, with the most current sample of music on the far right column, and the oldest on the far left.levels1- A 1D texture of current audio levels.levels2- A 2D texture of all current levels (RGB) and a feedback texture of overall levels (Alpha).snd- Basic CHOP audio stream (pass through).tex1- A 2D psuedo-generative texture that displaces audio levels through reaction diffusion.tex2- A 2D psuedo-generative texture that displaces audio levels through visual noise. It's like, so meta, bro.tex3- A low res (1/10th resolution of the Tile Resolution)tex4- A 2D texture of all current levels, sampled with visual feedback to add a more dynamic effect.vinyl1- A spinning disc that is 'etched' with sound levels, starting from twelve o'clock (current sample strip) and proceeding clockwise.waveforms1- A waveform visual with red (left channel), green (right channel), blue (red minus green) and alpha (red feedback) channels.
- Three
Audio Sourcetypes are supported in Sndviz:Audio Device In(Stream),In CHOP(Stream) andAudio File(Cued playback).- To use an audio device (
Audio Device Insetting), select this type from theAudio Sourcemenu and choose the preferred device (unlessDefaultis your preference) from theAudio Device Inmenu parameter. - To use the
In CHOPsetting, select this type from theAudio Sourcemenu and connect a CHOP to theSndvizbase component input connection. - To use an audio file (
Audio Filesetting), select this type from theAudio Sourcemenu and specify an audio file through theAudio Filefile parameter. Note that if no file is specified or there is an error loading an audio file, Sndviz will temporarily switch to the generic Audio file that comes bundled with Touch. - To play an audio file from the very beginning, pulse the
Cue Fileparameter. - To pause / resume playing an audio file, switch the
Play/Pause Filetoggle. - To loop an audio file, enable the
Loop Filetoggle.
- To use an audio device (
- To visualize only one channel of audio (mono) instead of both (stereo), toggle the
Stereoparameter off. - To have audio levels automatically normalized (well, psuedo-normalized... they are scaled to fit a range of -1 to 1, rather than 0 to 1), enable the
Normalizetoggle. This prevents audio levels from becoming too quiet or too loud during performances. - To increase the intensity (gain) of visualized colours, increase the
Input Gain (db)parameter. - To compensate for video latency, adjust the
Input Buffer (sec)parameter. - To increase the quality and resolution of the vizualisations, increase the
Sampling Quality (FFT)parameter. Keep in mind that this comes at a cost with CPU compute times.
- To enable audio output on the local machine, turn on the
Enable Audio Outputparameter. - To change the output audio device, select a new one from the
Audio Output Devicemenu parameter. - To raise or lower the playback output audio device volume, adjust the
Playthru Volumeparameter. - To additionally compensate for video latency, adjust the
Output Buffer (sec)parameter.
- To additionally increase (or decrease) the resolution of the visualisations, adjust the
Global Res Multiplierparameter.- The
Tile Resolutionparameter (read-only) indicates the resolution of each square tile of the full Sndviz texture (4 x 3 tiles in total).
- The
- To correct the ratio of red, green and blue channels visualised, adjust the
RGB Multiplierparameter. - Jump Cuts on
tex1andtex2(triggered on each downbeat) may be disabled via theJump Cuttoggle parameter. - By default Sndviz is a
32-bitfloat component, for maximum accuracy and quality. (It also transmits 32-bit float values over the network toSndvizReceiver). Sndviz can be set to8-bitor16-bitto improve performance via thePixel Formatparameter. - To adjust the quickness or slowness of audio visuals with feedback, use the
Speedparameter. Default is 1. This mostly uses a pixel per frame calculation. - To reset audio visuals with feedback, pulse the
Resetparameter.
- To enable Touch Out functionality for network setups, enable any of the desired
Enable Touch Outtoggles. - Every output module in Sndviz is listed on the
Modulespage. These read-only values may be copied and pasted for use in other components.
Shoutout to scheb for his excellent work on sound-to-light-osc, Derivative, Elburz, Tim Franklin, Alpha MoonBase, elekktronaut and everyone else who's helped me directly or indirectly along the way.
