Transform video and audio to art.

Buy Now




System Requirements:

macOS 10.14 or above




Spectra functions the same on the Mac and iOS. Screenshots here are for the Mac user interface, but similar controls shown exist on the iPhone and iPad.


Spectra Creates Art With Video and Audio


Presets are a collection of settings that you can use to get started. After choosing a preset use the controls to vary its attributes.


The screenshots demonstrate how the sample multicolor video, which is included in the app, is used to generate art using the presets.




Average Frame Color and Sound Levels


A basic parameter in Spectra is called 'Lines'. This parameter determines how many lines (or arcs, etc.) are drawn in the graphic.


The color of each line is generated from a frame in the video. Hence the lines parameter also determines how many frames will be used from the video.


For the multicolor sample video each frame is pretty much a single color that varies over the duration of the video. It was created by paning over a large multicolor image and QuickTime player.



Since the sample multicolor video has no audio we had Spectra use one of the sample audio files provided in the app.



Spectra Draws Average Frame Color


Spectra extracts frames from the video and calculates their 'average' color.


The graphic Spectra draws is determined by the 'Type' parameter. The type in this sample is 'Linear' - it merely consists of lines.


Each line is drawn at a time along a time axis that corresponds to its video frame time.


The color of the line is the average color of its frame.



Line and Arc Length & Width Modulated by Audio Levels


Sound has 'levels' which is a value that is related to the volume of the sound. Graphs of sound are probably familar to you.


Spectra can use the sound levels to draw lines of length and/or that are functionally related to the sound level. Such a relationship may be a proportional relation illustrated below.


As with color, a line is modulated at a time along a time axis that corresponds to its audio level time.


Note that it is not required that the duration of the audio match the duration of the video.