home *** CD-ROM | disk | FTP | other *** search
- /*
- Copyright 2007, Philip S. Considine
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification, are permitted
- provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice, this list of conditions
- and the following disclaimer.
-
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions
- and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- The name of Philip S. Considine may not be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- desc:8 channel input switcher. Useful for A/B comparisons.
-
- //Selects the output mode
- slider1:0<0,3,1{1+2, 3+4, 5+6, 7+8}>Output Source
- slider2:0<-60,30,0.1>Level 1 + 2 (dB)
- slider3:0<-60,30,0.1>Level 3 + 4 (dB)
- slider4:0<-60,30,0.1>Level 5 + 6 (dB)
- slider5:0<-60,30,0.1>Level 7 + 8 (dB)
-
- @init
- gainMin = -60;
- gainMax = 30;
-
- @slider
- slider2 < gainMin ? slider2 = gainMin; slider2 > gainMax ? slider2 = gainMax;
- slider3 < gainMin ? slider3 = gainMin; slider3 > gainMax ? slider3 = gainMax;
- slider4 < gainMin ? slider4 = gainMin; slider4 > gainMax ? slider4 = gainMax;
- slider5 < gainMin ? slider5 = gainMin; slider5 > gainMax ? slider5 = gainMax;
-
- source = slider1;
-
- gain12 = 2 ^ ( slider2 / 6 );
- gain34 = 2 ^ ( slider3 / 6 );
- gain56 = 2 ^ ( slider4 / 6 );
- gain78 = 2 ^ ( slider5 / 6 );
-
- ch12 = gain12 * (source == 0 ? 1 : 0);
- ch34 = gain34 * (source == 1 ? 1 : 0);
- ch56 = gain56 * (source == 2 ? 1 : 0);
- ch78 = gain78 * (source == 3 ? 1 : 0);
-
- @sample
- spl0 = spl0 * ch12 + spl2 * ch34 + spl4 * ch56 + spl6 * ch78;
- spl1 = spl1 * ch12 + spl3 * ch34 + spl5 * ch56 + spl7 * ch78;
-