Browse Source

Added Patrick's helptext and reduce the wire redraw rate.

master
nebogeo 22 years ago
parent
commit
9dd738599f
31 changed files with 236 additions and 57 deletions
  1. +51
    -52
      GUI/Widgets/Fl_Canvas.C
  2. +4
    -1
      GUI/Widgets/Fl_Canvas.h
  3. +7
    -0
      SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.C
  4. +3
    -0
      SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.h
  5. +10
    -0
      SpiralSound/Plugins/ControllerPlugin/ControllerPluginGUI.C
  6. +4
    -1
      SpiralSound/Plugins/ControllerPlugin/ControllerPluginGUI.h
  7. +18
    -0
      SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.C
  8. +4
    -1
      SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.h
  9. +7
    -0
      SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.C
  10. +3
    -0
      SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.h
  11. +0
    -1
      SpiralSound/Plugins/Edit.sh
  12. +11
    -0
      SpiralSound/Plugins/EnvFollowerPlugin/EnvFollowerPluginGUI.C
  13. +3
    -0
      SpiralSound/Plugins/EnvFollowerPlugin/EnvFollowerPluginGUI.h
  14. +16
    -0
      SpiralSound/Plugins/EnvelopePlugin/EnvelopePluginGUI.C
  15. +3
    -0
      SpiralSound/Plugins/EnvelopePlugin/EnvelopePluginGUI.h
  16. +7
    -0
      SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C
  17. +3
    -0
      SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.h
  18. +5
    -0
      SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPluginGUI.C
  19. +3
    -0
      SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPluginGUI.h
  20. +10
    -0
      SpiralSound/Plugins/RingModPlugin/RingModPluginGUI.C
  21. +3
    -0
      SpiralSound/Plugins/RingModPlugin/RingModPluginGUI.h
  22. +8
    -1
      SpiralSound/Plugins/SampleHoldPlugin/SampleHoldPluginGUI.C
  23. +3
    -0
      SpiralSound/Plugins/SampleHoldPlugin/SampleHoldPluginGUI.h
  24. +8
    -0
      SpiralSound/Plugins/ScopePlugin/ScopePluginGUI.C
  25. +3
    -0
      SpiralSound/Plugins/ScopePlugin/ScopePluginGUI.h
  26. +15
    -0
      SpiralSound/Plugins/SmoothPlugin/SmoothPluginGUI.C
  27. +3
    -0
      SpiralSound/Plugins/SmoothPlugin/SmoothPluginGUI.h
  28. +6
    -0
      SpiralSound/Plugins/SplitterPlugin/SplitterPluginGUI.C
  29. +3
    -0
      SpiralSound/Plugins/SplitterPlugin/SplitterPluginGUI.h
  30. +9
    -0
      SpiralSound/Plugins/StereoMixerPlugin/StereoMixerPluginGUI.C
  31. +3
    -0
      SpiralSound/Plugins/StereoMixerPlugin/StereoMixerPluginGUI.h

+ 51
- 52
GUI/Widgets/Fl_Canvas.C View File

@@ -22,11 +22,9 @@
#include <iostream> #include <iostream>
#include "../../SpiralSynthModularInfo.h" #include "../../SpiralSynthModularInfo.h"


//#define IMG_BACKGROUND

#ifdef IMG_BACKGROUND
#include <png.h>
#endif
// no of calls to handle when dragged, before the widget is redrawn
// to allow the wire (connection currently being made) to be redrawn
static const int UPDATE_TICKS = 5;


//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////


@@ -35,7 +33,8 @@ Fl_Group(x,y,w,h,name),
cb_Connection(NULL), cb_Connection(NULL),
cb_Unconnect(NULL), cb_Unconnect(NULL),
cb_AddDevice(NULL), cb_AddDevice(NULL),
m_ToolMenu(false)
m_ToolMenu(false),
m_UpdateTimer(0)
{ {
m_IncompleteWire.OutputChild=-1; m_IncompleteWire.OutputChild=-1;
m_IncompleteWire.OutputPort=-1; m_IncompleteWire.OutputPort=-1;
@@ -44,55 +43,16 @@ m_ToolMenu(false)
m_BG=NULL; m_BG=NULL;
m_BGData=NULL; m_BGData=NULL;
#ifdef IMG_BACKGROUND
if (SpiralSynthModularInfo::BGIMG=="None") return;
FILE *fp=fopen(SpiralSynthModularInfo::BGIMG.c_str(),"rb");
if (!fp)
{
SpiralInfo::Alert("Couldn't open image ["+SpiralSynthModularInfo::BGIMG+"]");
}
else
{
png_structp png_ptr;
png_infop info_ptr;
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
info_ptr = png_create_info_struct(png_ptr);
png_init_io(png_ptr, fp);
png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL);
fclose(fp);
m_BGData = new char[png_ptr->rowbytes*png_ptr->height];
int p=0;
for (unsigned int row = 0; row < png_ptr->height; row++)
{
for (unsigned int i=0; i<png_ptr->rowbytes; i++)
{
m_BGData[p]=(char)info_ptr->row_pointers[row][i];
p++;
}
}
#if FL_MAJOR_VERSION == 1 && FL_MINOR_VERSION == 0
m_BG = new Fl_Image((unsigned char*)m_BGData,
(int)png_ptr->width,
(int)png_ptr->height,(int)png_ptr->rowbytes/(int)png_ptr->width);
#else
m_BG = new Fl_RGB_Image((unsigned char*)m_BGData,(int)png_ptr->width,(int)png_ptr->height);
#endif
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
}
#endif
} }


////////////////////////////////////////////////////////////////////////

Fl_Canvas::~Fl_Canvas() Fl_Canvas::~Fl_Canvas()
{ {
#ifdef IMG_BACKGROUND
if (m_BGData) delete[] m_BGData;
#endif
} }


////////////////////////////////////////////////////////////////////////

void Fl_Canvas::draw() void Fl_Canvas::draw()
{ {
Fl_Widget*const* a = array(); Fl_Widget*const* a = array();
@@ -185,15 +145,22 @@ void Fl_Canvas::draw()
} }
} }


////////////////////////////////////////////////////////////////////////

void Fl_Canvas::Poll() void Fl_Canvas::Poll()
{ {
// bit of a workaround...
if(m_IncompleteWire.InputChild!=-1 || m_IncompleteWire.OutputChild!=-1)
// bit of a workaround...
if (UserMakingConnection()) m_UpdateTimer++;
if (m_UpdateTimer>UPDATE_TICKS)
{ {
m_UpdateTimer=0;
redraw(); redraw();
} }
} }


////////////////////////////////////////////////////////////////////////

void Fl_Canvas::DrawWires() void Fl_Canvas::DrawWires()
{ {
for(vector<CanvasWire>::iterator i=m_WireVec.begin(); for(vector<CanvasWire>::iterator i=m_WireVec.begin();
@@ -233,6 +200,20 @@ void Fl_Canvas::DrawWires()
DestDevice->GetPortY(i->InputPort)); DestDevice->GetPortY(i->InputPort));
} }
DrawIncompleteWire();
}

////////////////////////////////////////////////////////////////////////

bool Fl_Canvas::UserMakingConnection()
{
return (m_IncompleteWire.InputChild!=-1 || m_IncompleteWire.OutputChild!=-1);
}

////////////////////////////////////////////////////////////////////////

void Fl_Canvas::DrawIncompleteWire()
{
// draw the wire we are currently connecting // draw the wire we are currently connecting
if(m_IncompleteWire.InputChild!=-1) if(m_IncompleteWire.InputChild!=-1)
{ {
@@ -290,6 +271,9 @@ void Fl_Canvas::DrawWires()
Fl::event_y()); Fl::event_y());
} }
} }

////////////////////////////////////////////////////////////////////////

void Fl_Canvas::ClearIncompleteWire() void Fl_Canvas::ClearIncompleteWire()
{ {
// Turn off both ports // Turn off both ports
@@ -306,6 +290,8 @@ void Fl_Canvas::ClearIncompleteWire()
m_IncompleteWire.Clear(); m_IncompleteWire.Clear();
} }


////////////////////////////////////////////////////////////////////////

int Fl_Canvas::handle(int event) int Fl_Canvas::handle(int event)
{ {
if (Fl_Group::handle(event)) return 1; if (Fl_Group::handle(event)) return 1;
@@ -313,6 +299,7 @@ int Fl_Canvas::handle(int event)
if (event==FL_PUSH) if (event==FL_PUSH)
{ {
ClearIncompleteWire(); ClearIncompleteWire();
redraw();
} }
if (Fl::event_button()==3) if (Fl::event_button()==3)
@@ -325,7 +312,7 @@ int Fl_Canvas::handle(int event)
redraw(); redraw();
} }
if (event==FL_DRAG) redraw();
if (event==FL_DRAG) redraw();
if (event==FL_RELEASE && Fl::event_button()==3) if (event==FL_RELEASE && Fl::event_button()==3)
{ {
@@ -345,6 +332,8 @@ int Fl_Canvas::handle(int event)
return 1; return 1;
} }
////////////////////////////////////////////////////////////////////////

void Fl_Canvas::PortClicked(Fl_DeviceGUI* Device, int Type, int Port, bool Value) void Fl_Canvas::PortClicked(Fl_DeviceGUI* Device, int Type, int Port, bool Value)
{ {
// find out which child this comes from. // find out which child this comes from.
@@ -461,6 +450,8 @@ void Fl_Canvas::PortClicked(Fl_DeviceGUI* Device, int Type, int Port, bool Value
} }
} }


////////////////////////////////////////////////////////////////////////

void Fl_Canvas::ClearConnections(Fl_DeviceGUI* Device) void Fl_Canvas::ClearConnections(Fl_DeviceGUI* Device)
{ {
// find out which child this comes from. // find out which child this comes from.
@@ -507,6 +498,8 @@ void Fl_Canvas::ClearConnections(Fl_DeviceGUI* Device)
} }
} }
} }

////////////////////////////////////////////////////////////////////////
void Fl_Canvas::RemoveDevice(Fl_DeviceGUI* Device) void Fl_Canvas::RemoveDevice(Fl_DeviceGUI* Device)
{ {
@@ -538,6 +531,8 @@ void Fl_Canvas::RemoveDevice(Fl_DeviceGUI* Device)
remove(child(ChildNum)); remove(child(ChildNum));
redraw(); redraw();
} }

////////////////////////////////////////////////////////////////////////
void Fl_Canvas::Clear() void Fl_Canvas::Clear()
{ {
@@ -554,6 +549,8 @@ void Fl_Canvas::Clear()
redraw(); redraw();
} }



////////////////////////////////////////////////////////////////////////
istream &operator>>(istream &s, Fl_Canvas &o) istream &operator>>(istream &s, Fl_Canvas &o)
@@ -587,6 +584,8 @@ istream &operator>>(istream &s, Fl_Canvas &o)
return s; return s;
} }


////////////////////////////////////////////////////////////////////////

ostream &operator<<(ostream &s, Fl_Canvas &o) ostream &operator<<(ostream &s, Fl_Canvas &o)
{ {
s<<o.m_WireVec.size()<<endl; s<<o.m_WireVec.size()<<endl;


+ 4
- 1
GUI/Widgets/Fl_Canvas.h View File

@@ -82,7 +82,9 @@ private:


void DrawWires(); void DrawWires();
void ClearIncompleteWire(); void ClearIncompleteWire();

void DrawIncompleteWire();
bool UserMakingConnection();
Fl_Image *m_BG; Fl_Image *m_BG;
char *m_BGData; char *m_BGData;
@@ -98,6 +100,7 @@ private:
vector< pair<string,int> > m_PluginNameList; vector< pair<string,int> > m_PluginNameList;


GraphSort m_Graph; GraphSort m_Graph;
int m_UpdateTimer;


friend istream &operator>>(istream &s, Fl_Canvas &o); friend istream &operator>>(istream &s, Fl_Canvas &o);
friend ostream &operator<<(ostream &s, Fl_Canvas &o); friend ostream &operator<<(ostream &s, Fl_Canvas &o);


+ 7
- 0
SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.C View File

@@ -136,3 +136,10 @@ void AmpPluginGUI::cb_pop(Fl_Button* o, void* v) {
((AmpPluginGUI*)(o->parent()))->cb_pop_i(o,v); ((AmpPluginGUI*)(o->parent()))->cb_pop_i(o,v);
} }
const string AmpPluginGUI::GetHelpText(const string &loc){
return string("")
+ "A CV controlled amplifer. You also can use this device to modify\n"
+ "the signal's DC offset (the up or down in the range of values).\n\n"
+ "Handy for fine tuning CV's by hand, or modulating complex\n"
+ "controls.";
}

+ 3
- 0
SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.h View File

@@ -39,6 +39,9 @@ public:
virtual SpiralPlugin* GetPlugin() { return m_Plugin; } virtual SpiralPlugin* GetPlugin() { return m_Plugin; }
AmpPlugin *m_Plugin; AmpPlugin *m_Plugin;
protected:
const string GetHelpText(const string &loc);
private: private:
Fl_Group *GUIFilterGroup; Fl_Group *GUIFilterGroup;


+ 10
- 0
SpiralSound/Plugins/ControllerPlugin/ControllerPluginGUI.C View File

@@ -270,3 +270,13 @@ void ControllerPluginGUI::StreamOut(ostream &s)
s<<(*i)->m_Chan->value()<<endl; s<<(*i)->m_Chan->value()<<endl;
} }
} }

const string ControllerPluginGUI::GetHelpText(const string &loc){
return string("")
+ "This is a simple plugin to allow you to generate CV values\n"
+ "interatively with sliders in the plugin window. Useful if you\n"
+ "can't use Midi, or for controlling LADSPA plugins. The slider\n"
+ "ranges can be set, and titles can be given to each slider.\n"
+ "You can add or delete sliders from the plugin using the\n"
+ "+ or - buttons.\n";
}

+ 4
- 1
SpiralSound/Plugins/ControllerPlugin/ControllerPluginGUI.h View File

@@ -42,7 +42,10 @@ public:
void StreamIn(istream &s); void StreamIn(istream &s);
void StreamOut(ostream &s); void StreamOut(ostream &s);

protected:
const string GetHelpText(const string &loc);
private: private:


void Clear(); void Clear();


+ 18
- 0
SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.C View File

@@ -70,3 +70,21 @@ inline void DelayPluginGUI::cb_Mix_i(Fl_Knob* o, void* v)
{ m_GUICH->Set("Mix",(float)o->value()); } { m_GUICH->Set("Mix",(float)o->value()); }
void DelayPluginGUI::cb_Mix(Fl_Knob* o, void* v) void DelayPluginGUI::cb_Mix(Fl_Knob* o, void* v)
{ ((DelayPluginGUI*)(o->parent()))->cb_Mix_i(o,v); } { ((DelayPluginGUI*)(o->parent()))->cb_Mix_i(o,v); }

const string DelayPluginGUI::GetHelpText(const string &loc){
return string("")
+ "The delay plugins delays the input signal, and can\n"
+ "mix the current signal into the output, the amount\n"
+ "is set by the dial in the plugin window.\n"
+ "\n"
+ "The delay time and read head position can be modified\n"
+ "by input CV's. The read head is the place in the buffer\n"
+ "the output sample is taken from, relative to the write\n"
+ "head.\n"
+ "\n"
+ "This plugin can be used as the base of a number of effects,\n"
+ "such as phasers, flangers and complex echos. If the output\n"
+ "is fed back into the input, you get a similar effect\n"
+ "to the echo, but you can add cool effects by routing\n"
+ "the signal back through a lowpass filter (for example).\n";
}

+ 4
- 1
SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.h View File

@@ -35,7 +35,10 @@ public:
DelayPluginGUI(int w, int h, DelayPlugin *o,ChannelHandler *ch,const HostInfo *Info); DelayPluginGUI(int w, int h, DelayPlugin *o,ChannelHandler *ch,const HostInfo *Info);
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);

protected:
const string GetHelpText(const string &loc);
private: private:
Fl_Slider *m_Delay; Fl_Slider *m_Delay;


+ 7
- 0
SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.C View File

@@ -133,3 +133,10 @@ inline void EchoPluginGUI::cb_pop_i(Fl_Button *o, void*) {
void EchoPluginGUI::cb_pop(Fl_Button* o, void* v) { void EchoPluginGUI::cb_pop(Fl_Button* o, void* v) {
((EchoPluginGUI*)(o->parent()))->cb_pop_i(o,v); ((EchoPluginGUI*)(o->parent()))->cb_pop_i(o,v);
} }

const string EchoPluginGUI::GetHelpText(const string &loc){
return string("")
+ "This plugin is a fully operational delay with feedback\n"
+ "- providing a no-frills echo effect. The delay and\n"
+ "feedback controls can be modulated via CV inputs.\n";
}

+ 3
- 0
SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.h View File

@@ -38,6 +38,9 @@ public:
EchoPluginGUI(int w, int h, EchoPlugin *o,ChannelHandler *ch,const HostInfo *Info); EchoPluginGUI(int w, int h, EchoPlugin *o,ChannelHandler *ch,const HostInfo *Info);
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);

protected:
const string GetHelpText(const string &loc);
private: private:


+ 0
- 1
SpiralSound/Plugins/Edit.sh View File

@@ -4,7 +4,6 @@ for file in `cat PluginList.txt`
do do
echo $file echo $file
cd $file/ cd $file/
cvs edit Makefile.in
nedit Makefile.in nedit Makefile.in
cd .. cd ..
done done

+ 11
- 0
SpiralSound/Plugins/EnvFollowerPlugin/EnvFollowerPluginGUI.C View File

@@ -70,3 +70,14 @@ inline void EnvFollowerPluginGUI::cb_Attack_i(Fl_Knob* o, void* v)
{ m_GUICH->Set("Attack",o->value()); } { m_GUICH->Set("Attack",o->value()); }
void EnvFollowerPluginGUI::cb_Attack(Fl_Knob* o, void* v) void EnvFollowerPluginGUI::cb_Attack(Fl_Knob* o, void* v)
{ ((EnvFollowerPluginGUI*)(o->parent()))->cb_Attack_i(o,v);} { ((EnvFollowerPluginGUI*)(o->parent()))->cb_Attack_i(o,v);}

const string EnvFollowerPluginGUI::GetHelpText(const string &loc){
return string("")
+ "The Envelope Follower takes an audio signal input and\n"
+ "attempts to recreate the envelope that shaped it. This\n"
+ "is particually useful for extracting information from\n"
+ "samples, for use in a vocoder for example.\n"
+ "\n"
+ "The sensitivity of the EnvFollower can be set with the\n"
+ "Attack and Decay controls on the plugin window.\n";
}

+ 3
- 0
SpiralSound/Plugins/EnvFollowerPlugin/EnvFollowerPluginGUI.h View File

@@ -37,6 +37,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);


protected:
const string GetHelpText(const string &loc);
private: private:


Fl_Knob* m_Attack; Fl_Knob* m_Attack;


+ 16
- 0
SpiralSound/Plugins/EnvelopePlugin/EnvelopePluginGUI.C View File

@@ -273,3 +273,19 @@ void EnvelopePluginGUI::cb_pop(Fl_Button* o, void* v) {
((EnvelopePluginGUI*)(o->parent()))->cb_pop_i(o,v); ((EnvelopePluginGUI*)(o->parent()))->cb_pop_i(o,v);
} }


const string EnvelopePluginGUI::GetHelpText(const string &loc){
return string("")
+ "An ADSR envelope. This plugin also has a built in\n"
+ "amplifier for signals, so data fed through the Input\n"
+ "and Output are amplified according to the envelope value.\n"
+ "The envelope is triggered with an input CV, and the output\n"
+ "CV is the value of the envelope at that time. The signal\n"
+ "level needed to trigger the envelope can be set using\n"
+ "the \"T\" slider, also the volume level of the output can\n"
+ "be set with the \"V\" slider.\n\n"
+ "This envelope can be used to mimic audio triggered effects\n"
+ "units, by feeding the audio signal into the trigger CV.\n"
+ "In fact, the envelope plugin itself can be made into a\n"
+ "compressor, by feeding the audio signal into both inputs,\n"
+ "and tweaking the ADSR values. \n";
}

+ 3
- 0
SpiralSound/Plugins/EnvelopePlugin/EnvelopePluginGUI.h View File

@@ -38,6 +38,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);


protected:
const string GetHelpText(const string &loc);
private: private:
Fl_Slider *Thresh; Fl_Slider *Thresh;


+ 7
- 0
SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C View File

@@ -69,3 +69,10 @@ inline void MixerPluginGUI::cb_Chan_i(Fl_Slider* o, void* v)


void MixerPluginGUI::cb_Chan(Fl_Slider* o, void* v) void MixerPluginGUI::cb_Chan(Fl_Slider* o, void* v)
{ ((MixerPluginGUI*)(o->parent()))->cb_Chan_i(o,v);} { ((MixerPluginGUI*)(o->parent()))->cb_Chan_i(o,v);}

const string MixerPluginGUI::GetHelpText(const string &loc){
return string("")
+ "A general purpose 4 channel mixer, not much else to say\n"
+ "really. Useful for mixing CV values as well as mono audio\n"
+ "signals. \n";
}

+ 3
- 0
SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.h View File

@@ -35,6 +35,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);


protected:
const string GetHelpText(const string &loc);
private: private:
int Numbers[NUM_CHANNELS]; int Numbers[NUM_CHANNELS];


+ 5
- 0
SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPluginGUI.C View File

@@ -38,3 +38,8 @@ void NoteSnapPluginGUI::UpdateValues(SpiralPlugin *o)
{ {
} }
const string NoteSnapPluginGUI::GetHelpText(const string &loc){
return string("")
+ "Quantises the input value into a note frequency\n"
+ "(using the midi note data).\n";
}

+ 3
- 0
SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPluginGUI.h View File

@@ -37,6 +37,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);
protected:
const string GetHelpText(const string &loc);

private: private:


//// Callbacks //// //// Callbacks ////


+ 10
- 0
SpiralSound/Plugins/RingModPlugin/RingModPluginGUI.C View File

@@ -53,3 +53,13 @@ inline void RingModPluginGUI::cb_Amount_i(Fl_Knob* o, void* v)
} }
void RingModPluginGUI::cb_Amount(Fl_Knob* o, void* v) void RingModPluginGUI::cb_Amount(Fl_Knob* o, void* v)
{ ((RingModPluginGUI*)(o->parent()))->cb_Amount_i(o,v); } { ((RingModPluginGUI*)(o->parent()))->cb_Amount_i(o,v); }

const string RingModPluginGUI::GetHelpText(const string &loc){
return string("")
+ "A ring modulator, multiplies two inputs together.\n"
+ "An extra dial sets the amount of modulation. The\n"
+ "ring modulation effect creates an extra harmonic\n"
+ "in the signal, although this is often out of tune\n"
+ "with the other signals, its useful for creating bell\n"
+ "or struck metallic sounds.\n";
}

+ 3
- 0
SpiralSound/Plugins/RingModPlugin/RingModPluginGUI.h View File

@@ -36,6 +36,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);
protected:
const string GetHelpText(const string &loc);

private: private:
Fl_Group *GUIFilterGroup; Fl_Group *GUIFilterGroup;


+ 8
- 1
SpiralSound/Plugins/SampleHoldPlugin/SampleHoldPluginGUI.C View File

@@ -37,4 +37,11 @@ SpiralPluginGUI(w,h,o,ch)
void SampleHoldPluginGUI::UpdateValues(SpiralPlugin *o) void SampleHoldPluginGUI::UpdateValues(SpiralPlugin *o)
{ {
} }

const string SampleHoldPluginGUI::GetHelpText(const string &loc){
return string("")
+ "Holds the input value until the clock input is triggered.\n"
+ "Useful for wacky 60's computer sounds...\n"
+ "\n"
+ "Author: Yves Usson\n";
}

+ 3
- 0
SpiralSound/Plugins/SampleHoldPlugin/SampleHoldPluginGUI.h View File

@@ -37,6 +37,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);


protected:
const string GetHelpText(const string &loc);

private: private:


//// Callbacks //// //// Callbacks ////


+ 8
- 0
SpiralSound/Plugins/ScopePlugin/ScopePluginGUI.C View File

@@ -104,3 +104,11 @@ void ScopePluginGUI::cb_Bypass_i(Fl_Button* o, void* v)
{m_Bypass=o->value();} {m_Bypass=o->value();}
void ScopePluginGUI::cb_Bypass(Fl_Button* o, void* v) void ScopePluginGUI::cb_Bypass(Fl_Button* o, void* v)
{((ScopePluginGUI*)(o->parent()))->cb_Bypass_i(o,v);} {((ScopePluginGUI*)(o->parent()))->cb_Bypass_i(o,v);}

const string ScopePluginGUI::GetHelpText(const string &loc){
return string("")
+ "The Scope lets you see a visual representation of the\n"
+ "data flowing through it. It does nothing to the signal,\n"
+ "but its very useful for checking the layouts, looking at\n"
+ "CV value etc.\n";
}

+ 3
- 0
SpiralSound/Plugins/ScopePlugin/ScopePluginGUI.h View File

@@ -58,6 +58,9 @@ public:
virtual void draw(); virtual void draw();
void Display(const float *data); void Display(const float *data);
protected:
const string GetHelpText(const string &loc);

private: private:


bool m_Bypass; bool m_Bypass;


+ 15
- 0
SpiralSound/Plugins/SmoothPlugin/SmoothPluginGUI.C View File

@@ -73,3 +73,18 @@ inline void SmoothPluginGUI::cb_Up_i(Fl_Knob* o, void* v)


void SmoothPluginGUI::cb_Up(Fl_Knob* o, void* v) void SmoothPluginGUI::cb_Up(Fl_Knob* o, void* v)
{ ((SmoothPluginGUI*)(o->parent()))->cb_Up_i(o,v);} { ((SmoothPluginGUI*)(o->parent()))->cb_Up_i(o,v);}

const string SmoothPluginGUI::GetHelpText(const string &loc){
return string("")
+ "This device is used for smoothing out the signal fed\n"
+ "through it. It's primary use is for smoothing out the\n"
+ "frequency CV sent to the oscillator to achieve portmento\n"
+ "or sliding between notes.\n"
+ "It can also be used as a primitive filter for audio\n"
+ "signals, but its mainly used on CVs.\n"
+ "\n"
+ "The controls on the plugin window allow you to alter\n"
+ "the speed of the sliding, up and down are seperated,\n"
+ "so going up the keyboard can have a different effect\n"
+ "to going down :) \n";
}

+ 3
- 0
SpiralSound/Plugins/SmoothPlugin/SmoothPluginGUI.h View File

@@ -37,6 +37,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);


protected:
const string GetHelpText(const string &loc);

private: private:


Fl_Knob* m_Up; Fl_Knob* m_Up;


+ 6
- 0
SpiralSound/Plugins/SplitterPlugin/SplitterPluginGUI.C View File

@@ -38,3 +38,9 @@ void SplitterPluginGUI::UpdateValues(SpiralPlugin *o)
{ {
} }
const string SplitterPluginGUI::GetHelpText(const string &loc){
return string("")
+ "The simplest plugin - the splitter simply takes the input,\n"
+ "and duplicates it into it's outputs. Simple, but difficult\n"
+ "to do without.\n";
}

+ 3
- 0
SpiralSound/Plugins/SplitterPlugin/SplitterPluginGUI.h View File

@@ -37,6 +37,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);


protected:
const string GetHelpText(const string &loc);

private: private:


//// Callbacks //// //// Callbacks ////


+ 9
- 0
SpiralSound/Plugins/StereoMixerPlugin/StereoMixerPluginGUI.C View File

@@ -91,3 +91,12 @@ inline void StereoMixerPluginGUI::cb_Pan_i(Fl_Knob* o, void* v) {
void StereoMixerPluginGUI::cb_Pan(Fl_Knob* o, void* v) { void StereoMixerPluginGUI::cb_Pan(Fl_Knob* o, void* v) {
((StereoMixerPluginGUI*)(o->parent()))->cb_Pan_i(o,v); ((StereoMixerPluginGUI*)(o->parent()))->cb_Pan_i(o,v);
} }

const string StereoMixerPluginGUI::GetHelpText(const string &loc){
return string("")
+ "A more advanced version of the 4 channel mixer,\n"
+ "this one has a stereo output. CV's are provided\n"
+ "for control of the panning of each of the inputs.\n"
+ "The panning can also be set with the knobs on the\n"
+ "plugin window. \n";
}

+ 3
- 0
SpiralSound/Plugins/StereoMixerPlugin/StereoMixerPluginGUI.h View File

@@ -35,6 +35,9 @@ public:
StereoMixerPluginGUI(int w, int h, StereoMixerPlugin *o,ChannelHandler *ch,const HostInfo *Info); StereoMixerPluginGUI(int w, int h, StereoMixerPlugin *o,ChannelHandler *ch,const HostInfo *Info);
virtual void UpdateValues(SpiralPlugin *o); virtual void UpdateValues(SpiralPlugin *o);
protected:
const string GetHelpText(const string &loc);

private: private:
int Numbers[NUM_CHANNELS]; int Numbers[NUM_CHANNELS];


Loading…
Cancel
Save