Name ImagePlayer3.1
Created At 2019-06-12 12:44pm
Submitted By Menno0
Type blue.orchestra.BlueSynthBuilder

The ImagePlayer is a troublemaker; this instrument plays images. The image must in the PNG format.
But still it's hard to predict what the sounding result will be, even if the 3 colors red, blue and green scanned and thus have a steady pattern as they are not moving or evolving entities in the image...

A few things to understand:
- No sound will be produced when only black image; black is the silent canvas
- 3 basic colours (RGB) on which the image opcodes react: red, blue and green.
- The three colours (red, green and blue) have volume faders.
- The image is scanned from left to right (X axis) and from top to bottom (Y axis) or reverse and rotated
- Top of the image = the lower frequencies, bottom of the image = the higher frequencies or reverse
- take a low scanning speed for adsyn, so with low base frequency, there will be no problems with Nyquist distortion (aliasing). The harmonics will be built upon the frequency set by p4
- can take a lot of CPU

The lpf18 filter can be used to avoid further aliasing when experimenting at higher base frequencies . .

example of score:
i1 0 20 244
where p4 = frequency.

please have a look at the Wiki page:

version 3.1, december 2017
- rotates picture if image width is smaller then image height
- replaced ADSRs by multicurve envelopes
- added more envelopes
- added scaling for amp, filter frequency and filter depth and pitch bend
- changed AL names to more understandable ones

version 3.0, december 2017
- layout converted to JavaFX standard, blue version >=2.7
- renewed layout so that: - XY controller represents the portion of the image to be scanned
- added filter ADSR with depth control
- added stereo option that puts RED to the left, GREEN in the middle and BLUE to the right
- rescaling of base frequency when playing
- more than ImagePlayer can be used in a composition
- option to show image in external viewer (xviewer for example). Please change according to your needs

version 2.3, december 2015
- improved text for labels
- added a setting for basefrequency instead of p4
- added anti-aliasing switch & aliasing filter is adjustable

version 2.2, nvember 2015
- changed label 'logaritmic' to 'exponential'
- XY positions are now automatable
- added labels to explain the range of image to be scanned

version 2.1 , november 2015
- fixed file input selector
- removed fill table option because prone to errors
- removed switch for inverse X Y read out (not interesting enough)
- XY position for number of overtones
- select log or linear ftable to hold frequencies
- choose the part of the image width to play
- changed filter to LPF18 with distortion
- red, green and blue volume now undependent from each other

version 2 , october 2015
- stereo option
- add limit to voices to save CPU
- variable ftable to hold frequencies
- changed filter to LPF18 with distortion
- switch for inverse X Y read out
- 5 basic waveforms

* version 1.1, april 2013
- repaired initialization bug
- show width and heigth of image
- transition from raw sound (=low resolution) to clean sound (+high resolution) is fluid now
- added panning

* initial version 1, march 2013