massi-world

this website of mine
Log | Files | Refs

color-synth.md (4003B)


      1 # color-synth
      2 
      3 - [git repo here](https://git.massi.world/color-synth)
      4 - [check out color-synth here!](https://color-synth.massi.world)
      5 
      6 @(samples)
      7 
      8 ## About
      9 
     10 Color-synth is a virtual modular [video synthesizer](https://en.wikipedia.org/wiki/Video_synthesizer). Add and hook up various signal-generating modules, connect them to the video output channels, and watch the colors start dancing in your eyes.
     11 
     12 ## Current State
     13 
     14 Color-synth is under __active development__. Everything is subject to change, and any programs you save to url may become invalid in the future.
     15 
     16 ## How To Synthesize
     17 
     18 - Add a module using the buttons on the bottom right.
     19 - To connect a module, drag from its purple connector on the top-right of the module, to either a green input port of another module, or the video output channels (lightness, chroma, hue) on the top right of the screen.
     20 - To disconnect a module, do the same thing you did to connect it.
     21 - When you've made something you want to share, click on the `save` button at the bottom right corner. This will save your patch to the url.
     22 
     23 ## The Modules
     24 
     25 - The __oscillator__ module generates a waveform signal. In the audio realm, you usually have knobs to control an oscillator's octave, semitone, and cents. Each knob is more precise than the last, and accomplishes different effects - pitching up or down an octave, transposing, and fine-tuning. In the video realm, there are some similarities to this system. Three knobs working at different harmonic levels. `Coarse` controls how the waveform repeats over the entire screen. For example, `coarse` set to `1` means that from the first pixel drawn on the screen to the last, the waveform will go through one cycle. `Fine` works on the row level - each increment of the fine knob will cycle the waveform once per row of pixels. `Superfine` is akin to cents. It enables movement by slightly adjusting the frequency of the wave so that it doesn't perfectly line up with the screen. Finally, you can select between a sine, square, or sawtooth wave with `waveform`.
     26 
     27 - The __signal__ module outputs whatever you put into it. It's useful if you want one control to effect multiple knobs throughout your patch, or if you want to set a knob to a value it isn't normally able to be set to.
     28 
     29 - The __noise__ module outputs random values, scaled by `amount`.
     30 
     31 - The __blur__ module smooths out the signal. Because of the left-to-right order in rendering pixels, this only blurs in the horizontal direction for now.
     32 
     33 - The __math__ module allows signals to be added, subtracted, multiplied, divided, or modulo'd together. Useful for scaling modules that don't have their own scaling knob and making some weird stuff happen.
     34 
     35 - The __image oscillator__ module currently adds a smiley face. In the _future_, you'll be able provide an image of your own! It has one control, `speed`, that is probably confusing right now. Basically, you can think of the color values of an image as a complicated waveform. That waveform has a frequency. In the current state of this module, a speed of `100,000` will display the image at full size. `200,000` will display a 2x2 grid of the image. `300,000`, 3x3. Etc.
     36 
     37 ## Roadmap
     38 
     39 - Better inputs. There is much to do here. The current ones are imprecise and unwieldy.
     40 - Image module overhaul. Having inputs for scaleX, scaleY, and image URL would be a good start.
     41 - Workspace improvements. There are a lot of impactful things here. The ability to hide all modules! The ability to move all modules at once and/or pan the workspace. Improvements to the initial positioning of new modules.
     42 - Workflow improvements. Undo/Redo! The ability to delete modules! Adding a module in between two connected modules! Better disconnect ergonomics!
     43 - Module design overhaul. My long-term goal is to style each module in its own unique way, as a nod to all the unique modular synthesis gear out there.
     44 - Mobile support.
     45 - MIDI support, so you can route midi to your browser and sync color-synth with your music!