LOADING

Synth settings

exit

Audio buffers settings:

Reverb Long
Length:
Decay:
Reverb Short
Length:
Decay:
Noise
Length:
Volume:

Analyser settings:

Analyser type:
Smoothing:

Submit a preset:

Think you got a sick instrument going on? Wicked! Wanna submit it for other sceners to use? Thank you!

  • Please name your channel / instrument properly before submitting. Bad jokes are welcome
  • If there's no suitable type for it, select "other" and specify new type to add
  • If you use reverb, try to use default settings for reverb long or short
Channel:
Type:

Load preset

exit

Select preset:

info WARNING: Some presets need specific reverb or noise values. Those presets will change some of your reverb or noise values globally.
Any other instrument currently using same reverb type or noise will be affected. See warning icons in preset list for info on what gets changed.

Please select which preset to use as a base for this channel, and click below to confirm.

New pass

exit

PREVIOUS SAMPLER

Previous sampler

HORIZONTAL BLUR

Horizontal blur

VERTICAL BLUR

Vertical blur

DEPTH OF FIELDS

Depth of fields

BLANK

Blank

COMMON

Common

Remove pass

exit

Select pass to delete:

Please select which pass you want to delete and click below to confirm.

Sequencer settings

exit

Sequencer settings:

Track length:
Track BPM:
=60 seconds
Keyboard type:
BORING
Notation:
Keyboard hold:
Holds note until keyboard released (like piano with sustain pedal / like sequencer)
Notes are only held for a specific sustain time (like piano without sustain pedal)
Sustain time:
FFT analysis:
Add synth track to audio inspector FFT analyser
info costs ~200 bytes extra to "make a demo"
Remove youTube / file audio track to enable synth FFT analysis
Playback scroll:
During play, the track playhead will auto scroll view to show progress
Timeline scroll:
The timeline playhead auto scrolls track

Notes scale filters:

info Wanna stay pentatonic? Visually highlight notes from a certain scale, such as the pentatonic scale.
NOTE: You can still write notes outside the scale.
Filter type:

Export / Import track:

info This should only be used to export and pass your track to a coder to use in a demo.
Wanna save yer track? Exit this menu and just CTRL+S / CMD+S! Yeah, throw in a SHIFT to save as, Einstein.
Nah

Pattern settingsPaint pattern loop

exit
Pattern bar length:
info Length of pattern in bars.
Pattern loop bar length:
info Amount of bars to repeat pattern for. Loop will be cropped automatically if it reaches another pattern or end of track. Yeah, feel the comfort.

Remove channel

exit

Select channel to delete:

Please select which channel you want to delete and click below to confirm.

Report bug

exit

Please wait...

Nah

Report shader

exit

Please DO report shaders which contain hateful symbols and / or hateful messages. Posh Brolly is for everyone and hate won't be tolerated.

Please DO NOT report shaders which contains "something that offends you", such as: penises, vaginas, procedural porn, swearing or satire. This isn't Victorian England, yeah?

Short reason for reporting shader:

Please wait...

Nah

Save

exit

Shader name:

info "Remix of [shaderName]" will be displayed after shader name, so don't use "remix" as part of your name.
info Some special characters will be removed, apart from those:|_|-|'|?|!|&|,|.| Press return to see final name.

Thumbnail:

Thumbnail time
Preroll (secs) must be <= thumbnail time
info Press return inside the thumbnail time text box to see the change. You can update your thumbnail any time in "Global Settings", no sweat.

Shader tags: (min: 1, max: 16):

    Tags will appear once you start typing on the left, yeah? 
      Nah

      Shader recorder

      exit

      Choose yer weapon.

      RECORD VIDEO

      camera

      TAKE SCREENSHOT

      camera

      Choose yer video settings and press RECORD, then press DOWNLOAD.
      Gil said "The Revolution Will Not Be Televised", and for sure it won't be on instagram either.

      Screenshot will be saved to your "downloads" folder.

      info For dimensions above 4096, or if you get blank pixels, please select "Custom HUGE".
      Huge image will be made by stitching smaller image chunks together, no matter how little RAM you got.
      Major thankx to Gregg Tavares for the method and the dekapng code!
      Record video start/end (secs)
      Screenshot time
      Preroll (secs)
      info Preroll starts playing the animation before recording, must be <=  video start screenshot time
      Video format
      info First format is prob best for you, on chrome vp8 seems better than vp9
      Dimensions
      info Screenshot size will be current render canvas size
      info Render canvas will be scaled up to fullscreen according to aspect ratio
      info Careful with big sizes: some pixels will be missing, in which case use "custom HUGE"
      info You MUST use "_uv" in your code for the stitching to work, don't use gl_FragCoord
      info Video size will be current render canvas size
      info Render canvas will be scaled up to fullscreen according to aspect ratio
      info Custom video size, please enter width & height below:
      Width & height
      Padding for blur
      info Extra padding pixels around chunks to fix blur. If yer blur is huge, increase this value, otherwise leave it alone
      Chunk width & height
      info You REALLY should NOT change this, unless padding isn't enough for yer big bad blur and you know what to do
      Bitrate (mbps)
      info Can be erratic. For webm: 2.5 to 8.5 increases bitrate, after 8.5 seems worst than 2.5
      FPS
      info 30fps recommended, 60fps probably won't work, leaving for the future

      Shader I/O

      exit

      Current shader inputs & output:

      Missing something? Switch inputs on in global settings, or add some textures / sounds. Go ham, it's yer tool!

      You ain't got the goodies!

      You need webGL2.0 minimum to run this fluffy tool.
      It enjoys wearing fancy wigs and doesn't care for boating shoes.
      Time to get a better device.

      Welcome

      exit

      This shader has an audio track, so a click is required.
      Please click anywhere to start.

      REPORT / REQUEST / FEEDBACK

      exit

      Found a pesky bug or something not working? -> Report bug

      Think something can be improved or is amiss? -> Request new feature

      Wanna tell me what you think of this young thing? -> Leave feedback

      About this old rag1.69.10b

      exit

      Hear, hear! This tool was designed and coded by evvvvil from demogroups Handsome Hooligans & Rebels. (twitter: @evvvvil)
      Made with love, anger, tears of joy and moments of pure euphoric madness.

      This tool does't use any garbage front-end libraries: no rubbish React, no lame jQuery, no bloated UI libraries, no dumb CSS templates.
      Everything is made by hand in pure javascript, CSS & Node.JS + Express (only front-end help comes from Ace text editor).

      Thankx to those who have helped:

      Juliana, oddJohn, wrighter, ob5vr, subzey, Gregg Tavares (WebGL2 Fundamentals), Marta Soto, Laurent Le Brun (Ctrl-Alt-Test), Banstead Jeff, lienep, le nep, James Cronk.

      Greetings and love fly out to those special people from the demoscene: (in randomised order)

      LOVE these demogroups! (in randomised order)

      Keyboard shortcuts

      exit

      Text editor shortcuts:

      Many more text editor shortcuts here: https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcuts.

      ALT
      +
      SHIFT
      +
      C
      Convert code from Shadertoy
      F1
      Open text editor command menu
      ALT
      +
      E
      Show next compile error
      ALT
      +
      SHIFT
      +
      E
      Show previous compile error

      Global shortcuts:

      ALT
      +
      S
      Compile
      CTRL
      +
      S
      Save
      CTRL
      +
      SHIFT
      +
      S
      Save as
      CTRL
      +
      Click save icon
      Save as
      ALT
      +
      X
      +
      Arrow Up
      Play/Pause
      ALT
      +
      X
      +
      Arrow Down
      Rewind
      ALT
      +
      X
      +
      Arrow Left / Right
      Previous / next frame
      ALT
      +
      SHIFT
      +
      Z / Y
      Undo / redo slider (sliders inspector selected)
      CTRL
      +
      + / -
      Font size up / down
      ALT
      +
      F
      Fullscreen mode
      ALT
      +
      B
      Bonzomatic mode
      ALT
      +
      + / -
      Font brightness Up / down (Bonzomatic mode)
      ALT
      +
      H
      Hide editor (Bonzomatic mode)
      ALT
      +
      Click time seek
      Switch time dislay seconds / frames

      Synth / sequencer shortcuts:

      info Shortcuts only work when in "synth mode". (synth patch or sequencer showing)
      CTRL
      +
      S
      Save
      CTRL
      +
      SHIFT
      +
      S
      Save as
      SPACE
      /
      SHIFT
      +
      SPACE
      Play from start / from current time
      SHIFT
      +
      Click sequencer
      Move playhead where you clicked
      ALT
      +
      Wheel scroll
      Zoom in / out horizontally
      ALT
      +
      SHIFT
      +
      Wheel scroll
      Zoom in / out vertically
      CTRL
      +
      Z
      Undo
      CTRL
      +
      SHIFT
      +
      Z
      Redo
      A,W,S,E,D,F,T,G,Y,H,U,J
      Q,Z,S,E,D,F,T,G,Y,H,U,J
      A,",",O,".",E,U,Y,I,F,D,G,H
      A,W,S,E,D,F,T,G,Z,H,U,J
      Play note C,C#,D,D#,E,F,F#,G,G#,A,A#,BPlay note Do,Do#,Re,Re#,Mi,Fa,Fa#,Sol,Sol#,La,La#,Si
      PageUp
      /
      PageDown
      Keyboard octave up / down
      V
      /
      C
      Paint note mode / select note mode
      CTRL
      +
      A
      Select all notes (when in select note mode)
      CTRL
      +
      C / V
      Copy / paste notes (once some note(s) are selected)
      CTRL
      +
      Click dial value
      Edit synth dial value with keyboard
      Double-click dial
      Reset synth dial value to default value

      Camera controls:

      info "Left / middle mouse" means left / middle mouse button click on render canvas
      ALT
      +
      Left Mouse
      Orbit camera
      ALT
      +
      Middle Mouse
      Pan camera
      ALT
      +
      Wheel scroll
      Zoom camera (orbit radius)
      ALT
      +
      X
      +
      Left Mouse
      Look-around (resets on mouse up)
      ALT
      +
      Middle Mouse
      +
      Middle Mouse
      Reset camera

      Textures

      exit
      Noise - 256 x 256
      Min filter:
      Mag filter:
      Wrap:

      Shader minifier

      exit

      Rules / Tips:info Click title to read New rule added!

      • 1. DO NOT have ANY variable called "X" as a global variable or as a local variable in the mainImage function (yes upper case X, lower x is fine).
      • 2. The ONLY number uniforms available by default are: "_res", "_t" & "_fn". Leave those in your code as they are (var names will be auto-crunched).
      • 3. IF you have FFT analysis ON, ONLY the first 3 ranges are available: "_a0", "_a1" & "_a2". Leave those in your code as they are.
      • 4. REMOVE EVERY OTHER uniforms to save bytes. Otherwise they will be replaced by "0.", or if they are sliders / camera uniforms, by their current value.
      • 5. The ONLY texture uniforms available in the demo are the previous passes uniforms. Leave those in your code as they are.
      • 6. AVOID using "#define", especially if using shader minifier, and even if not, you should really "know what you're doing".
      • 7. Multi-pass: always use "_tex" uniform name in your texture() calls. Like this: texture(_tex0,...), NOT: someVar=_tex0; texture(someVar,...)
      • 8. Multi-pass: currently only looking at previous passes works. A pass cannot look at its previous frame, yet (coming soon).

      Demo settings:

      Demo start elegance
      info ~19 bytes: Click to fullscreen, it then waits until fullscreen is ready and then starts demo. ~8 bytes: Click to start demo BUT not fullscreen. Demoparty organiser has to F11 fullscreen manually BEFORE clicking to start demo. NO MARGINS. 0 bytes: Click to start demo BUT not fullscreen. Demoparty organiser has to F11 fullscreen manually BEFORE clicking to start demo. SOME white MARGINS.
      Crunch iterations
      Use direct eval()
      Minify shader before making demo (recommended)
      Exit fullscreen when demo is finished (~9 bytes)

      Crunching via FetchCrunch by subzey: https://github.com/subzey/fetchcrunch.

      Minify settings:

      Shader Minifier brought to you by Ctrl-Alt-Test demogroup: https://ctrl-alt-test.fr.
      (via some dumb headless chicken and its fancy fleece, written by yours truly)

      Preserve externals
      info Do not rename external values (e.g. uniform)
      Preserve all globals
      info Do not rename functions and global variables
      Inlining
      info Automatically inline variables
      Aggressive inlining
      info Can reduce size due to better constant folding OR can increase size due to repeated inlined constants (which can benefit gzip)
      Do not rename...
      info Comma-separated list of functions to preserve or do not rename anything
      info Comma-separated list of functions to preserve
      Comma operator trick
      info Use comma operator trick
      Smoothstep trick
      info Use IQ's smoothstep trick
      Remove unused code
      info Remove unused code
      Move declarations
      info Move declarations to group them

      More info on Shader Minifier's official github: https://github.com/laurentlb/Shader_Minifier

      Nah

      Character count: 

      Sliders settings

      exit
      Show sliders values
      Show sliders names
      Copy / replace float digits precision
      info Sliders float precisions are always maximum when passed to the shader uniforms.
      This precision only applies when clicking buttons below the sliders to copy value or replace uniform.

      Audio settings

      exit

      General audio settings:

      Audio-Shader time offset
      info Offsets the start of audio track by n seconds. Use this to skip the intro of a song.
      FFT smoothing
      (0 - 0.98) FFT data smoothing over time.
      info Use exactly 0.8 to save bytes! (if you "make a demo")
      FFT bin size
      Total amount of FFT samples. Go down to make each sample wider in frequency. Over 512 is overkill.
      FFT samples crop
      Only listen to first n samples. High frequencies haven't got much data, use this to crop end samples.
      Volume
      info 0 - 1 Volume

      FFT texture settings:

      info FFT data can also be passed to the shader as a texture. Turn on / off and setup FFT sampler below:
      Export FFT texture as "_texA" uniform sampler2D
      Min filter:
      Mag filter:
      Wrap:

      Global settings

      exit

      Welcome stranger, grab a beer and take a pew.
      It looks like you are packing: . But who am I to judge?

      Shader:

      Shader aspect ratio
      Shader float precision
      Rewind shader on fullscreen (useful for multi sampling / fluid shaders)

      Bonzomatic mode:

      Show code characters background
      Show whole editor background
      Editor background opacity
      Turn off cynicism

      Extra uniforms:

      info After modifying any of the following settings, please recompile for changes to take effect.
      Export mouse as "_m" vec4 uniform. (XY: Mouse XY pos, Z: Left click, W: Right click)
      info Left / right click on canvas and drag to pass mouse values. In Bonzomatic mode, you MUST press "ALT" THEN "CTRL" and THEN click to pass mouse values.
      Mouse position range type
      Export frame number as "_fn" int uniform
      Export delta time as "_dt" float uniform

      Pijpleiding naar Okkie's snor ‐ by evvvvil

      fork
      help
      about
      bug report
      settings
      ERROR
      COMPILED
      SAVED
      0
      code synth

      CODE:

      Pass 1

      inputs
      colour picker
      count
      switch
      full
      bonzo
      Loading...

      Tools
      paint
      select
      zoom in zoom out
      zoom in zoom out
      break loop
      Settings / Patterns
      pattern mode main track mode
      paint pattern
       pattern settings
      render off render on
      settings
      Channel settings
      preset
      See / Hear
      see
      hear
      • Copy
      • Paste
      • Loop selection
      • Loop pattern
      • Break loop
      CH 1
      B8
      A#8
      A8
      G#8
      G8
      F#8
      F8
      E8
      D#8
      D8
      C#8
      C8
      B7
      A#7
      A7
      G#7
      G7
      F#7
      F7
      E7
      D#7
      D7
      C#7
      C7
      B6
      A#6
      A6
      G#6
      G6
      F#6
      F6
      E6
      D#6
      D6
      C#6
      C6
      B5
      A#5
      A5
      G#5
      G5
      F#5
      F5
      E5
      D#5
      D5
      C#5
      C5
      B4
      A#4
      A4
      G#4
      G4
      F#4
      F4
      E4
      D#4
      D4
      C#4
      C4
      B3
      A#3
      A3
      G#3
      G3
      F#3
      F3
      E3
      D#3
      D3
      C#3
      C3
      B2
      A#2
      A2
      G#2
      G2
      F#2
      F2
      E2
      D#2
      D2
      C#2
      C2
      B1
      A#1
      A1
      G#1
      G1
      F#1
      F1
      E1
      D#1
      D1
      C#1
      C1
      preset
      settings

      Oscillators

      TYPE

      Unison
      Bend f.
      Bend t.

      LFO

      TYPE/OUT

      Freq.
      Gain

      Filter

      TYPE

      Freq.
      Res.
      Gain
      Envel.

      Envelope

      Attack
      Decay
      Sustain
      Release

      Compressor

      Thresh.
      Knee
      Ratio
      Attack
      Release

      FX

      TYPE

      Length
      Gain
      Amount

      Volume

      Gain
      Muted
      Channel 1
      Pattern 1
      synth/code synth/code
      compile
      Sequencer
      Patch
      info Synth muted
      Channel 1
      Channel 2
      Channel 3
      Channel 4
      Channel 5
      Channel 6
      Channel 7
      Channel 8
      Remove channel
      Add channel
      Pattern 1
      Pattern 2
      Pattern 3
      Pattern 4
      Pattern 5
      Pattern 6
      Pass 1
      Pass 1
      Pass 2
      Pass 3
      Pass 4
      Pass 5
      Pass 6
      Remove pass
      Add pass

      WEBGL CRASHED

      Boooooo

      3
      2
      1
      recording

      Please wait, stitching up chunks. File will auto download when it's done.

      00

      25

      00

      800 x 800

      FAILED COMPILING

      Please wait

      Please fix and recompile

      Alt + click + drag to move camera

      expand
      time

      Timeline:

      60s

      collapse
      switch
      expand
      sliders

      Inspector:

      Sliders

      Collapse
      Copy
      Copy
      settings
      remove slider
      add slider
      Copied to clipboard
      That's not how you spell Hawaian!

      texture

      Inspector:

      Textures Pass 1

      Collapse
      Add texture
      _tex0
      Add texture
      _tex1
      Add texture
      _tex2
      Add texture
      _tex3
      Add texture
      _tex4
      sounds

      Inspector:

      Audio

      Collapse
      youTube video URL:
      FFT audio-analysis:
      Samples:
      Audio quality:

      Drop audio file
      (mp3|wav|ogg|flac)

      Add sound file
      WTF is that?
      Booooo! File must be: mp3 / wav / ogg / flac, you sausage.

      Click on a range to delete it
      ERROR embeding youTube

      mute unmute
      settings
      Remove
      Hacking youTube. Please wait...
      0 / 0 loaded
      ERROR hacking youTube

      Mute Unmute
      Remove range
      Add range
      settings
      Remove
      camera

      Inspector:

      Camera

      Collapse
      Camera on / off:
      Flip camera Y:
      Speed:
      Minimum radius:
      Default radius:
      All passes camera:
      Camera XYZ:
      Copy
      Camera Target XYZ:
      Copy
      Copied to clipboard
      That's not how you spell Hawaian!

      sliders

      Inspector:

      Midi controller

      Collapse
      Divvin' knaa owt aboot yor space machine, alreet?
      I don't know anything about your controller yet
      info This module is in Geordie, hover over any text to see translation
      Scran flavoor:
      Giz a deek at yor inpoots, alreet?
      Let's see what inputs you got, ok?
      TOUCH MACHINE A WEE BIT, ALREET?
      sliders

      Inspector:

      Timer

      Collapse
      Timer on / off:
      hour minutes
      sliders
      textures
      audio
      camera
      timer
      timer
      REPORT