This is freeverb3_vst, 2.x.x

Freeverb3_vst is a VST plugins set using freeverb3 library
which performs many types of processing of audio data.

BINARY PACKAGE AND INSTALL
==========================

lib/ VST plugins and configuration files (ini,xml)
 Freeverb3VST_Freeverb.dll 	   (Enhanced Original Freeverb)
 Freeverb3VST_NVerb.dll	   	   (CCRMA NReverb)
 Freeverb3VST_WindCompressor.dll   (Linearphase Multiband Compressor)
 Freeverb3VST_StereoEnhancer.dll   (Simple Stereo Ehancer)
 Freeverb3VST_Impulser2.dll	   (Multislot IR Convolution Reverb)
 freeverb3prg.xml		   (IR Program file for Impulser2)
 freeverb3.ini			   (Freeverb3_VST configuration file)
bin/ Tools including simple sampling rate converter
 check_cpu.exe	     	    	   (CPU SIMD detection tool)
 fv3_rateconv			   (Sampling Rate Converter)
 mingwm10.dll			   (MinGW fix library)

BINARIES AND PRECISION
======================

There are 2 types of binary distributions.
One is single precision plugin version and the other one is
double precision plugin version.
The double precision version (-doubleprecision) may be 2 times
slower than the single precision (-singleprecision) version.
If you use these effects in realtime, you should use
single precision version.

There are some SIMD optimized versions. (3DNow!/SSE/SSE2)
You can use check_cpu.exe to choose the best binary package.

The 32bit binaries are built on MinGW/Linux.
The 64bit binaries are built on MinGW W64/Linux,
which is still in alpha version. Since the x64 binaries are not
tested at all, any bug reports are welcome.

VST versions
============

This VST plugin's vstsdk version is 2.4.
Some old VST host applications may not be able to handle
plugin's delay (setInitialDelay()) and process()
(not processReplacing()), which is obsolete in vstsdk 2.4.

Configuration File
==================

You should set some options of Freeverb3VST by placing freeverb3.ini
under the same directory of Freeverb3VST_*.dll.

The configuration file sould be created using notepad editor and
be saved using the Unicode (UTF-16LE) encoding. Otherwise, the plugins
will not be able to read the configuration file and the MessageBox will appear
saying that you should update your INI file.

The log file(freeverb3log.txt) will be created under the same directory of
DLL files if you specify "outputLog" to 1.

The "fragmentSize" and "factor" must be 2^n.

"converterType" is a parameter of libsamplerate. If the program
cannot process the signals in realtime, you should
specify large number, but the quality is lower.

"multiThread" option enables the multithread convolution function
for the convolution reverb. This option should be "1" (enable MT)
only if you have multiple core CPUs. This option should be "0" (off)
if you encounter some troubles.

Preset Programs
===============

NReverb has some preset programs.
If you find better parameters, please post them.
Save parameter (copyParameter) is not implemented, so
you can revert to the preset program at any time.

Impulse File Program Change
===========================

The Impulser2 plugin can receive MIDI messages,
which can be used to control the load/unload of the Impulse Response files
during the playback. This function is still under development
and might cause problems. The bug reports are welcome.

1. Place the program file called "freeverb3prg.xml" under
the same directory as the Freeverb3_Impulser2.dll. The xml file is
editable in notepad.exe and should be encoded in UTF-8.

[Sample File]
<?xml version="1.0" encoding="UTF-8"?>
<fv3:programs>
  <fv3:ir fv3:msb="0" fv3:lsb="0" fv3:prg="0"
          fv3:file="C:\IR\Test1.wav"/>
  <fv3:ir fv3:msb="0" fv3:lsb="0" fv3:prg="1"
          fv3:file="C:\IR\Test2.wav"/>
  <fv3:ir fv3:msb="0" fv3:lsb="0" fv3:prg="2"
          fv3:file="C:\IR\Test3.wav"/>
  <fv3:ir fv3:msb="2" fv3:lsb="2" fv3:prg="2"
          fv3:file="C:\IR\Test33.wav"/>
</fv3:programs>

2. Send MIDI messages to Impulser2 VST plugin.

// [9t nn mm] NOTE ON
// t: Slot
// nn: Channel
// mm: Velocity
// mm=00 do nothing
// mm=01 load (MSB/LSB/Note) to slot[Channel(t)] (foreground)
// mm=02 load (MSB/LSB/Note) to slot[Channel(t)] (background)
// mm=03 do nothing
//
// [8n nn mm] NOTE OFF
// nn: ignore
// mm: Velocity
// mm=00 do nothing
// mm=01 unload (foreground)
// mm=02 unload (background)
// mm=03 do nothing
//
// [bn 00 nn] MSB
// set MSB
//
// [bn 20 nn] LSB
// set LSB
//

The foreground load means that the process will stop
and wait for the finish of the load. The backrgound load means that
the process does not stop during the load, but the time of the finish
of the load is not predictable.

[Example]
To load C:\IR\Test33.wav(MSB=2,LSB=2,PRG=2) to Slot 3 in backrgound:
b3 00 02  MSB->2
b3 20 02  LSB->2
93 02 02  note on  = Load in background
83 02 03  note off = Do nothing

To unload Slot 3 in background:
93 02 03  note on  = Do nothing
83 02 02  note off = Unload in background

If you want to cycle unload/load, you can use like this:
93 02 02  note on  = Load in background
... (slot is loaded)
83 02 02  note off = Unload in background

How to build binaries
=====================

This VST plugin can be built on following environments.

- MinGW cross compiler on Linux (or most UNIX platforms)
  [configure example (Debian/Linux)]
  export set PATH=/usr/i586-mingw32msvc/bin:$PATH
  export set build=i486-linux-gnu
  export set host=i586-mingw32msvc
  export set target=i586-mingw32msvc
  export set CFLAGS="-pipe -Wall -O3 -DENABLE_SSE -mtune=pentium3 -mfpmath=sse -msse \
  -DVST_FORCE_DEPRECATED=0"
  export set CXXFLAGS=$CFLAGS
  ./configure --prefix=/Freeverb3_VST --build=$build --host=$host --target=$target \
  --disable-static --enable-shared --disable-debug \
  --enable-dstr=-fast-SSE-singleprecision --enable-fftw3n=fftw3f-sse

- MinGW native compiler + MSYS on Windows

The source distribution package contains
libsndfile/libsamlerate sources and fftw3 libraries.
Original sources are available from following sites.

- FFTW3 [http://www.fftw.org/]

- libsamplerate [http://www.mega-nerd.com/SRC/]

- libsndfile [http://www.mega-nerd.com/libsndfile/]

- libexpat [http://expat.sf.net/]

This distribution package contains VSTGUI/VST sources patched for MinGW.

Please report any bugs or advices.

MINGW
=====

- Minimalist GNU for Windows [http://www.mingw.org/]

- Minimalist GNU for Windows 64 [http://sourceforge.net/projects/mingw-w64/]

LICENSES
========

freeverb3_vst:
GPL (COPYING)

VSTGUI:
VSTGUI LICENSE (VSTGUI/LICENSE)

VST:
Steinberg VST PlugIns SDK Licensing Agreement (VST/LICENSE.rtf)

CONTACTS AND SUPPORT
====================

freeverb3 was written by Teru KAMOGASHIRA.
The freeverb3 homepage is at:

	http://freeverb3.sourceforge.net/
	http://sourceforge.net/projects/freeverb3/
