Although i developed a proof of concept one year ago, this more serious version begun in September 2016 with the original codebase, with some hard work for a few month, it is now almost ready to be shipped to the world!
So, what is Fragment?
Fragment is a web-based collaborative spectral musical instrument driven by real-time visuals generated by its users from shared GLSL scripts.
If this sound cryptic, it is alright, i will explain its concept here.
Fragment is first and foremost a simple additive synthesizer, meaning that under the hood, the synthesis engine just add sine waves of different frequencies together!
The originality come from the method of control of those frequencies, in Fragment you have three essential visual components, a GLSL code editor, a canvas (which can be called the score) and what i call slices, these components are the core of Fragment with the global timer and the synthesis engine that you cannot see but hear.
- The GLSL code editor is used to generate the visuals, it is essentially a fragment shader it compute the color of each pixels of the canvas individually
- The score (or canvas) is where the output of the fragment shader is shown
- Slices are parts of the score, they are 1 pixel in width and the height of the canvas, they are vertical parts of the score
So, how does it work?
Fragment simplified flow is essentially : GLSL code > canvas > slice > synthesis engine
The code that users type produce visuals (a bunch of pixels), pixels are captured by the vertical slices, those vertical slices are unified into one and a conversion process happen to transform the pixels into “notes”, one pixel will equate to a sine wave with the amplitude defined by the pixel brightness, the frequency defined by the vertical position of the pixel in the slice and the stereo channel defined by the color of the pixel, this happen at a rate of 60 fps.
Fragment add alot of goodies on top of that such as MIDI controllable uniforms (variables that you use in your GLSL code that are updated by you from controllers), an unlimited number of slices possible, frequency shifting of individual slices, many other small features, textures import, configurable score and most importantly collaborative features, Fragment can be used locally or online, peoples can join and share sessions to experiment together, almost everything is synchronized between users.
Fragment will be released sometimes in january, the beta testing phase is just beginning and there is still some things to affine.
If you like this project and want to see its progression, you can follow us through social media :