Exemplo n.º 1
0


#if 1
#define rObject Config
static const rtosc::Ports ports = {
    //rString(cfg.LinuxOSSWaveOutDev),
    //rString(cfg.LinuxOSSSeqInDev),
    rParamI(cfg.SampleRate, "samples of audio per second"),
    rParamI(cfg.SoundBufferSize, "Size of processed audio buffer"),
    rParamI(cfg.OscilSize, "Size Of Oscillator Wavetable"),
    rToggle(cfg.SwapStereo, "Swap Left And Right Channels"),
    rToggle(cfg.BankUIAutoClose, "Automatic Closing of BackUI After Patch Selection"),
    rParamI(cfg.GzipCompression, "Level of Gzip Compression For Save Files"),
    rParamI(cfg.Interpolation, "Level of Interpolation, Linear/Cubic"),
    {"cfg.presetsDirList", rProp(parameter) rDoc("list of preset search directories"), 0,
        [](const char *msg, rtosc::RtData &d)
        {
            Config &c = *(Config*)d.obj;
            if(rtosc_narguments(msg) != 0) {
                std::string args = rtosc_argument_string(msg);

                //clear everything
                c.clearpresetsdirlist();
                for(int i=0; i<(int)args.size(); ++i)
                    if(args[i] == 's')
                        c.cfg.presetsDirList[i] = rtosc_argument(msg, i).s;
            }

            char         types[MAX_BANK_ROOT_DIRS+1];
            rtosc_arg_t  args[MAX_BANK_ROOT_DIRS];
Exemplo n.º 2
0
#include <rtosc/port-sugar.h>
#include "../Misc/Allocator.h"
#include "Echo.h"

#define MAX_DELAY 2

namespace zyn {

#define rObject Echo
#define rBegin [](const char *msg, rtosc::RtData &d) {
#define rEnd }

rtosc::Ports Echo::ports = {
    {"preset::i", rOptions(Echo 1, Echo 2, Echo 3, Simple Echo, Canyon, Panning Echo 1,
            Panning Echo 2, Panning Echo 3, Feedback Echo)
                  rProp(parameter)
                  rDoc("Instrument Presets"), 0,
                  rBegin;
                  rObject *o = (rObject*)d.obj;
                  if(rtosc_narguments(msg))
                      o->setpreset(rtosc_argument(msg, 0).i);
                  else
                      d.reply(d.loc, "i", o->Ppreset);
                  rEnd},
    rEffParVol(rDefault(67), rPresetsAt(6, 81, 81, 62)),
    rEffParPan(rPresetsAt(2, 75, 60, 60, 64, 60, 60, 64)),
    rEffPar(Pdelay,   2, rShort("delay"), rLinear(0, 127),
            rPresets(35, 21, 60, 44, 102, 44, 46, 26, 28),
            "Length of Echo"),
    rEffPar(Plrdelay, 3, rShort("lr delay"),
            rPresetsAt(4, 50, 17, 118, 100, 64), rDefault(64),
Exemplo n.º 3
0
            "When enabled oscilfilter(freqs); then waveshape(freqs);, "
            "otherwise waveshape(freqs); then oscilfilter(freqs);"),
    rOption(Psatype, rOptions(None, Pow, ThrsD, ThrsU),
            "Spectral Adjustment Type"),
    rParamZyn(Psapar, "Spectral Adjustment Parameter"),
    rParamI(Pharmonicshift, "Amount of shift on harmonics"),
    rToggle(Pharmonicshiftfirst, "If harmonics are shifted before waveshaping/filtering"),
    rOption(Pmodulation, rOptions(None, Rev, Sine, Power),
            "Frequency Modulation To Combined Spectra"),
    rParamZyn(Pmodulationpar1, "modulation parameter"),
    rParamZyn(Pmodulationpar2, "modulation parameter"),
    rParamZyn(Pmodulationpar3, "modulation parameter"),


    //TODO update to rArray and test
    {"phase#128::c:i", rProp(parameter) rLinear(0,127) rDoc("Sets harmonic phase"),
        NULL, [](const char *m, rtosc::RtData &d) {
            const char *mm = m;
            while(*mm && !isdigit(*mm)) ++mm;
            unsigned char &phase = ((OscilGen*)d.obj)->Phphase[atoi(mm)];
            if(!rtosc_narguments(m))
                d.reply(d.loc, "c", phase);
            else
                phase = rtosc_argument(m,0).i;
        }},
    //TODO update to rArray and test
    {"magnitude#128::c:i", rProp(parameter) rLinear(0,127) rDoc("Sets harmonic magnitude"),
        NULL, [](const char *m, rtosc::RtData &d) {
            //printf("I'm at '%s'\n", d.loc);
            const char *mm = m;
            while(*mm && !isdigit(*mm)) ++mm;
Exemplo n.º 4
0
KResourceMan::KResourceMan()
{
	Atom type;
	int format;
	unsigned long nitems;
	unsigned long offset = 0;
	unsigned long bytes_after = 1;
	char *buf;
	
	prefix.sprintf("*");
	
	QString rProp( "RESOURCE_MANAGER" );
	
	propDict = new QDict <QString> ( 199 );
	
	kde_display = KApplication::desktop()->x11Display();
	screen = DefaultScreen(kde_display);
    root = RootWindow(kde_display, screen);
	at = 0;
	
	if( !rProp.isEmpty() ) {
  		at = XInternAtom( kde_display, rProp.data(), False);
		
		QString s = "";
		
		while( bytes_after > 0 ) {
			XGetWindowProperty( kde_display, root, at, offset, 256,
				False, XA_STRING, &type, &format, &nitems, &bytes_after,
				(unsigned char **)&buf);

			s.append( buf );
			offset += 256;
		}
			
		// Parse through the property string stripping out key value pairs
		// and putting them in the dictionary
		
		//debug(s);
		QString keypair;
		int i=0;
		QString key;
		QString value;
		
		while(s.length() >0 ) {
			
			// parse the string for first key-value pair separator '\n'
			
			i = s.find("\n");
			if(i == -1)
				i = s.length();
		
			// extract the key-values pair and remove from string
			
			keypair = s.left(i).simplifyWhiteSpace();
			s.remove(0,i+1);
			
			// split key and value and add to dictionary
			
			i = keypair.find( ":" );
			if( i != -1 ) {
				key = keypair.left( i ).simplifyWhiteSpace();
				value = keypair.right( keypair.length() - i - 1 ).simplifyWhiteSpace();
				//debug("%s -> %s", key.data(), value.data() );
				propDict->insert( key.data(), new QString( value.data() ) );
			}
		}
	}
}
Exemplo n.º 5
0
rtosc::Ports filter_ports = {
    rParamF(f, rLog(0.1, 10e3), "Cutoff Frequency"),
    rParamF(Q, rLinear(0,5), "Q"),
};
#undef rObject

#define BasePort(name,doc) {#name "/", rDoc(doc), &name##_ports, [](const char *msg, \
                       rtosc::RtData &d)\
                       {while(*msg != '/') msg++; msg++; d.obj = &name; \
                       name##_ports.dispatch(msg,d);}}

rtosc::Ports ports = {
    BasePort(seq, "Sequencer"),
    BasePort(lfo, "Low Frequency Oscillator"),
    BasePort(filter, "Low Pass Filter"),
    {"echo", rProp(internal) rDoc("Echo Message Back") , 0,
            [](const char *m, rtosc::RtData &d) {d.reply(m-1);}},
};
// end::ports[]

jack_client_t *client;
jack_port_t   *port;
jack_port_t   *josc;

int process(unsigned nframes, void *v)
{
    (void) v;
    float seq_sqr[nframes];
    float seq_noise[nframes];
    float sqr[nframes];
    float noise[nframes];
Exemplo n.º 6
0
#include "Distorsion.h"
#include "EQ.h"
#include "DynamicFilter.h"
#include "Phaser.h"
#include "../Misc/XMLwrapper.h"
#include "../Misc/Util.h"
#include "../Params/FilterParams.h"
#include "../Misc/Allocator.h"


#define rObject EffectMgr
static const rtosc::Ports local_ports = {
    rSelf(EffectMgr),
    rPaste,
    rRecurp(filterpars, "Filter Parameter for Dynamic Filter"),
    {"parameter#128::i", rProp(alias) rDoc("Parameter Accessor"), NULL,
        [](const char *msg, rtosc::RtData &d)
        {
            EffectMgr *eff = (EffectMgr*)d.obj;
            const char *mm = msg;
            while(!isdigit(*mm))++mm;

            if(!rtosc_narguments(msg))
                d.reply(d.loc, "i", eff->geteffectparrt(atoi(mm)));
            else {
                eff->seteffectparrt(atoi(mm), rtosc_argument(msg, 0).i);
                d.broadcast(d.loc, "i", eff->geteffectparrt(atoi(mm)));
            }
        }},
    {"preset::i", rProp(alias) rDoc("Effect Preset Selector"), NULL,
        [](const char *msg, rtosc::RtData &d)