Roland Fantom G6 Kontakt LibraryThis interface allows gnuplot to be controlled from C++ and is designed to be the lowest hanging fruit. In other words, if you know how gnuplot works it should only take 30 seconds to learn this library. Basically it is just an iostream pipe to gnuplot with some extra functions for pushing data arrays and getting mouse clicks. Data sources include STL containers (eg. vector), Blitz++, and armadillo. You can use nested data types like std::vector<std::vector<std::pair<double, double>>> (as well as even more exotic types). Support for custom data types is possible. This is a low level interface, and usage involves manually sending commands to gnuplot using the "<<" operator (so you need to know gnuplot syntax). This is in my opinion the easiest way to do it if you are already comfortable with using gnuplot. If you would like a more high level interface check out the gnuplot-cpp library (http://code.google.com/p/gnuplot-cpp). DownloadTo retrieve the source code from git:git clone https://github.com/dstahlke/gnuplot-iostream.git DocumentationDocumentation is available [here] but also you can look at the example programs (starting with "example-misc.cc"). Example 1Roland Fantom G6 Kontakt Library: Expansion boards for the G6 added SuperNATURAL sounds, which are prized for their realism and performance expression. Finding and Using Fantom G6 Kontakt Libraries : Unlike the hardware which provides instant access to thousands of sounds, the Kontakt version's speed depends heavily on your system; using an SSD is highly recommended for a smoother experience. Pros and Cons Not all sampled libraries are created equal. When shopping for or downloading a Roland Fantom G6 Kontakt library, check for the following technical features to ensure maximum playability: roland fantom g6 kontakt library For sustained sounds like pads, strings, and organs, the sample loops must be perfectly crossfaded so they play infinitely without audible clicks or pops. How to Integrate the Library Into Your Beats Running massive synthesizer plug-ins can drain your computer's resources. Kontakt libraries use pre-recorded audio samples, which are often much lighter on your CPU. : Expansion boards for the G6 added SuperNATURAL This public link is valid for 7 days and shares a thread, including any personal information you added. This link or copies made by others cannot be deleted. If you share with third parties, their policies apply. Can’t copy the link right now. Try again later. So, which Kontakt libraries are compatible with the Roland Fantom G6? Here are a few popular options: When shopping for or downloading a Roland Fantom : The library replicates the G6’s focus on "bread and butter" sounds, including excellent Rhodes electric pianos , nylon string guitars, and deep synth pads. Since Roland does not offer an official "Fantom G6" library for Kontakt—opting instead to host its legacy sounds via the Roland Cloud Manager —these libraries are typically developed by third-party creators who sample the original hardware unit. Key Features of Fantom G6 Kontakt Libraries : Guide you through as a controller for Kontakt. Example 2// Demo of sending data via temporary files. The default is to send data to gnuplot directly
// through stdin.
//
// Compile it with:
// g++ -o example-tmpfile example-tmpfile.cc -lboost_iostreams -lboost_system -lboost_filesystem
#include <map>
#include <vector>
#include <cmath>
#include "gnuplot-iostream.h"
int main() {
Gnuplot gp;
std::vector<std::pair<double, double> > xy_pts_A;
for(double x=-2; x<2; x+=0.01) {
double y = x*x*x;
xy_pts_A.push_back(std::make_pair(x, y));
}
std::vector<std::pair<double, double> > xy_pts_B;
for(double alpha=0; alpha<1; alpha+=1.0/24.0) {
double theta = alpha*2.0*3.14159;
xy_pts_B.push_back(std::make_pair(cos(theta), sin(theta)));
}
gp << "set xrange [-2:2]\nset yrange [-2:2]\n";
// Data will be sent via a temporary file. These are erased when you call
// gp.clearTmpfiles() or when gp goes out of scope. If you pass a filename
// (e.g. "gp.file1d(pts, 'mydata.dat')"), then the named file will be created
// and won't be deleted (this is useful when creating a script).
gp << "plot" << gp.file1d(xy_pts_A) << "with lines title 'cubic',"
<< gp.file1d(xy_pts_B) << "with points title 'circle'" << std::endl;
#ifdef _WIN32
// For Windows, prompt for a keystroke before the Gnuplot object goes out of scope so that
// the gnuplot window doesn't get closed.
std::cout << "Press enter to exit." << std::endl;
std::cin.get();
#endif
}
|