cheapo amp 1.26 [effect]

------------------------------------------------------------------------------
Function:

Very configurable mono/stereo gain.

Features:
- configurable logarithmic slider gain range -128dB <-> + 128dB
- configurable linear slider range 0 <-> 1000%
- inertia range 0.0<-> 10240 ticks
- separate mute switch for easy live action
- Inertia: linear and logarithmic(zero level definable for in&out fades),
	tick/ms
- configurable mute fade in&out times [0-10000ms] (can use the inertia also)
- MidiNoteMute:
	Mute can be triggered by specified note from either one midi channel
	or all channels. Midinote learn, three different modes (on<->off,
	off<->on, switch) and two timings methods (realtime or snap-to-tick).
	Midi-note triggering can be disabled

------------------------------------------------------------------------------
Usage:

Parameters:
Max Gain:	Gain in dB
Gain:		Gain in % of "Max Gain"
Mute:		Mute's channel with inertia (either with specific mute in/out
		time or inertia)
Inertia:	Changes the volume smoothly. There are no steps in the fading
		curve of the ch.amp unless you disable inertia. No steps
		means no snaps, pops and crackles.

Attributes:
M.Gain neg dB [min]:		Specifies negative limit for the Max.Gain
M.Gain pos dB [max]:		Specifies positive limit for the Max.Gain
Min Gain %:			Smaller limit for "Gain" parameter
Max Gain %:			Bigger limit for "Gain" parameter
Inertia controlled Mute:	Uses Inertia setting instead of specific Mute
				 controls.
Inertia type [0=lin, 1=exp]	Linear or exponential (=logarithmic) inertia.
Mute start fade out [ms]:	Time it takes to fade to 0.0dB
Mute end fade in [ms]:		Time it takes to fade to normal volume
0 level E.Inertia Out [-dB]	For exponential inertia when volume is set to
				0. Defines the target level after which
				volume is totally muted (when inertia is over).
0 level E.Inertia In [-dB]	For exponential inertia when volume is raised
				from 0. Defines the level where to start
				fading in.
MidiMuteMode[1=+/-,2=-/+,3=+,-] Defines the mode for midi mute:
				1. Note on -> mute on, note off -> mute off
				2. Note on -> mute off, note off -> mute on
				3. Changes the status of mute.
MidiMute channel [0=off,17=all]	Used channel for midi mute. 0 disables and 17
				listens to all channels. 1-16 is normal range.
MidiMute note			Numerical value for the note. 12=C0, 24=C1,
				36=C2, 48=c3.
MidiMute accuracy [0=tick,1=rt]	Realtime mode starts to mute/unmute instantly.
				Tick mode works like snap-to-tick, so that the
				mute happens when the next tick is played.
Inertia Len [0 is tick-scale,0< is in ms]
				If 0 the inertia lenght is calculated in ticks.
				Otherwise defines the max inertia length in ms.
Reverse flag= Gain 1 + Mute 2	Inverses the off/states of the switches. Count
				flag values together to get the desired effect.
Attribute changes take effect when you change the parameters.

You can use <thru> in sequence editor to disable machine. (=bypass)

------------------------------------------------------------------------------
Tips for ch.amp
1. Ch.amp is very configurable. Use that to your advantage.
2. The maximum output for champ is very high, around +148dB. Don't push your
   luck with dangerous slider ranges.
3. Make templates for the ch-amp settings you use the most. The ch.amp has
   only four parameters which get saved to presets and only way to save
   attribute values is to make a template. Save an empty song with just the
   ch.amp and the correct settings to buzz\gear\template with a name like
   "normal_gain.bmw" for example.

Tips for midinotemute:

1. You need a low latency to use realtime properly
2. Use snap-to-tick if you might be busy doing something else (live situation)
   and your note playing timing is not 100%.
3. You can record the mutes to patterns like normal slider movements in buzz.
4. Use note learning, it's much faster then meddling with obscure numbers.
5. How to make a crossfader: connect to champs to different sound sources,
   teach them the same midi note. Select either mode 3 to both, or 1 to other
   and 2 to the other. For mode 3 move the mute switch of either champ to "on".
   When you send a midi note, the other champ mutes and the other unmutes and
   you get sound from the other source.
6. Variation to 5. Connect two champs to the same source, but use different
   effects after/before the other champ. With this setup you can easily cut in
   different sounds.
7. Change the mute settings, you can achieve nice effects with different mute
   fade in/out values specially when using more then one champ.

------------------------------------------------------------------------------
Revision history:
  1.27 Implemented attribute to reverse gain&mute controls. Based on
	a request by Simon Kirby for a crossfader.
  1.26 Fixed MuteInertia so that mute actually works with inertia len.
  1.25 Thanks to Discharge for spotting that
	"mute on was not on when loading a song" bug. Fixed now.
  1.23	New attribute: InertiaLength:tick/ms
  1.22	Fixed the problem of champ not obeying the settings when
	a song was loaded. Thanks to DjLaser for noticing that one.
  1.21	Added realtime mode for midinotemute. Code optimized for lower cpu
	usage and some inconsistencies fixed from the code.
  1.2	Midinote Mute feature added. (Thanks to Hymax for inventing it)
  1.1	Exponential inertia added, some people might call this logarithmic.
	Fixed stereomode. (thanks for the bug report Davide).
  1.0	First release.
------------------------------------------------------------------------------

oh.. almost forgot: YOU NEED BUZZ1.2 TO USE THIS EFFECT

Mikko Apo [http://iki.fi/apo/]
