Browse Source

Lots of helptext, streamplugin ported

master
nebogeo 22 years ago
parent
commit
5b5846a375
28 changed files with 213 additions and 95 deletions
  1. +9
    -0
      SpiralSound/Plugins/DiskWriterPlugin/DiskWriterPluginGUI.C
  2. +4
    -1
      SpiralSound/Plugins/DiskWriterPlugin/DiskWriterPluginGUI.h
  3. +0
    -1
      SpiralSound/Plugins/JackPlugin/JackPlugin.h
  4. +18
    -0
      SpiralSound/Plugins/JackPlugin/JackPluginGUI.C
  5. +3
    -0
      SpiralSound/Plugins/JackPlugin/JackPluginGUI.h
  6. +1
    -1
      SpiralSound/Plugins/JackPlugin/Makefile.in
  7. +10
    -0
      SpiralSound/Plugins/KeyboardPlugin/KeyboardPluginGUI.C
  8. +3
    -0
      SpiralSound/Plugins/KeyboardPlugin/KeyboardPluginGUI.h
  9. +6
    -0
      SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C
  10. +3
    -0
      SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h
  11. +27
    -0
      SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C
  12. +3
    -0
      SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.h
  13. +0
    -1
      SpiralSound/Plugins/MidiPlugin/MidiPlugin.C
  14. +23
    -0
      SpiralSound/Plugins/MidiPlugin/MidiPluginGUI.C
  15. +3
    -0
      SpiralSound/Plugins/MidiPlugin/MidiPluginGUI.h
  16. +12
    -0
      SpiralSound/Plugins/OutputPlugin/OutputPluginGUI.C
  17. +3
    -0
      SpiralSound/Plugins/OutputPlugin/OutputPluginGUI.h
  18. +18
    -0
      SpiralSound/Plugins/PoshSamplerPlugin/PoshSamplerPluginGUI.C
  19. +3
    -0
      SpiralSound/Plugins/PoshSamplerPlugin/PoshSamplerPluginGUI.h
  20. +11
    -0
      SpiralSound/Plugins/SeqSelectorPlugin/SeqSelectorPluginGUI.C
  21. +3
    -0
      SpiralSound/Plugins/SeqSelectorPlugin/SeqSelectorPluginGUI.h
  22. +1
    -1
      SpiralSound/Plugins/SpiralPluginGUI.C
  23. +10
    -18
      SpiralSound/Plugins/StreamPlugin/StreamPlugin.C
  24. +2
    -1
      SpiralSound/Plugins/StreamPlugin/StreamPlugin.h
  25. +30
    -69
      SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.C
  26. +4
    -0
      SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.h
  27. +1
    -0
      SpiralSynthModularInfo.C
  28. +2
    -2
      configure.in

+ 9
- 0
SpiralSound/Plugins/DiskWriterPlugin/DiskWriterPluginGUI.C View File

@@ -82,3 +82,12 @@ inline void DiskWriterPluginGUI::cb_Record_i(Fl_Button* o, void* v)
}
void DiskWriterPluginGUI::cb_Record(Fl_Button* o, void* v)
{ ((DiskWriterPluginGUI*)(o->parent()))->cb_Record_i(o,v); }

const string DiskWriterPluginGUI::GetHelpText(const string &loc){
return string("")
+ "One way of recording your creations to disk. First open a file\n"
+ "you wish to save to, then hit record to start recording.\n"
+ "You are able to stop and restart recording without closing the\n"
+ "file, which should make life a little easier if you are doing\n"
+ "things like recording lots of little samples.";
}

+ 4
- 1
SpiralSound/Plugins/DiskWriterPlugin/DiskWriterPluginGUI.h View File

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

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

Fl_Button *Open;


+ 0
- 1
SpiralSound/Plugins/JackPlugin/JackPlugin.h View File

@@ -20,7 +20,6 @@
#include "../../RiffWav.h"
#include <FL/Fl_Pixmap.H>
#include <map>
#include <glib.h>
#include <jack/jack.h>

typedef jack_default_audio_sample_t sample_t;


+ 18
- 0
SpiralSound/Plugins/JackPlugin/JackPluginGUI.C View File

@@ -229,3 +229,21 @@ inline void JackPluginGUI::cb_InputConnect_i(Fl_Button* o, void* v)
}
void JackPluginGUI::cb_InputConnect(Fl_Button* o, void* v)
{ ((JackPluginGUI*)(o->parent()))->cb_InputConnect_i(o,v);}

const string JackPluginGUI::GetHelpText(const string &loc){
return string("")
+ "JACK is the Jack Audio Connection Kit, and allows multiple Linux audio\n"
+ "apps to be connected together and run simultaneously in a low latency.\n"
+ "environment.\n\n"
+ "This plugin allows you to connect up to 8 inputs and outputs to other\n"
+ "JACK apps (providing a server is running)\n"
+ "You can use the JackPlugin to connect the ports, or a external program\n"
+ "such as the excellent qjackconnect app. Be aware however that if you\n"
+ "connect from an external app, the port GUI does not update itself yet.\n"
+ "Another problem yet to be fixed is that ssm will get confused if more\n"
+ "than one JackPlugin is being used. It's best to use one central\n"
+ "JackPlugin at this time.\n\n"
+ "When using JACK, make sure the buffer size and samplerate are set to\n"
+ "match the JACK server, otherwise glitchy playback, and/or crashes may\n"
+ "result";
}

+ 3
- 0
SpiralSound/Plugins/JackPlugin/JackPluginGUI.h View File

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



+ 1
- 1
SpiralSound/Plugins/JackPlugin/Makefile.in View File

@@ -11,7 +11,7 @@ CC = gcc
CXX = g++
CFLAGS = @CFLAGS@
CXXFLAGS= @CXXFLAGS@
INCPATH = -I/usr/X11R6/include -I/usr/lib/glib/include/
INCPATH = -I/usr/X11R6/include
LINK = g++ -shared
LFLAGS =
LIBS = -L/usr/X11R6/lib -L/usr/local/lib/ @FLTK_LIBS@ -lGL -lXext -lX11 -ldl -ljack -lpthread


+ 10
- 0
SpiralSound/Plugins/KeyboardPlugin/KeyboardPluginGUI.C View File

@@ -188,3 +188,13 @@ inline void KeyboardPluginGUI::cb_Key_i(Fl_Button* o, void* v)
}
void KeyboardPluginGUI::cb_Key(Fl_Button* o, void* v)
{ ((KeyboardPluginGUI*)(o->parent()->user_data()))->cb_Key_i(o,v);}

const string KeyboardPluginGUI::GetHelpText(const string &loc){
return string("")
+ "This plugin provides you with a soft-keyboard if you don't have midi.\n"
+ "You can either use the mouse to play the keyboard GUI, or it will also\n"
+ "pick up PC keyboard presses in the ssm window.\n\n"
+ "The keyboard map follows the SoundTracker standard - i.e:\n"
+ "z=C4 s=C#4 x=D4 ... q=C5 2=C#5 w=D5...\n"
+ "The function keys change the octave.";
}

+ 3
- 0
SpiralSound/Plugins/KeyboardPlugin/KeyboardPluginGUI.h View File

@@ -41,6 +41,9 @@ public:
virtual void UpdateValues(SpiralPlugin *o);
virtual void Update();
protected:
const string GetHelpText(const string &loc);
private:
int m_Num[NUM_KEYS];
Fl_Button* m_Key[NUM_KEYS];


+ 6
- 0
SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C View File

@@ -282,3 +282,9 @@ void LFOPluginGUI::cb_Saw (Fl_Check_Button* o, void* v) {
((LFOPluginGUI*)(o->parent()))->cb_Saw_i (o, v);
}
const string LFOPluginGUI::GetHelpText(const string &loc){
return string("")
+ "A very low frequency oscillator. Also produces inverted and \"cosine\"\n"
+ "outputs (output phase shifted by 180 degrees)\n"
+ "Period length goes down to 2 minutes :]\n";
}

+ 3
- 0
SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h View File

@@ -31,6 +31,9 @@ class LFOPluginGUI : public SpiralPluginGUI {
LFOPluginGUI(int w, int h, LFOPlugin *o,ChannelHandler *ch,const HostInfo *Info);
virtual void UpdateValues(SpiralPlugin *o);
protected:
const string GetHelpText(const string &loc);
private:
Fl_Check_Button* ShapeSine;
Fl_Pixmap pixmap_Sine;


+ 27
- 0
SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C View File

@@ -415,3 +415,30 @@ void MatrixPluginGUI::cb_TransDnBtn (Fl_Button* o, void* v)
{
((MatrixPluginGUI*)(o->parent())) -> cb_TransDnBtn_i (o, v);
}

const string MatrixPluginGUI::GetHelpText(const string &loc){
return string("")
+ "This is a matrix style step sequencer for techno purists. Great for\n"
+ "drum programming, but also capable of robotic bass and melodies.\n\n"
+ "Note events are turned on and off by activating the 64*32 grid of\n"
+ "toggle buttons on the GUI. The speed and octave of the notes can be\n"
+ "set. The length of the pattern in notes and note cut are also\n"
+ "present. The current play position is indicated by the row of LED's\n"
+ "along the top of the plugin window. You can copy and paste between\n"
+ "different patterns and transpose the notes\n\n"
+ "16 triggers are supplied for simultaneous triggering of samples in the\n"
+ "sampler plugin (for instance).\n\n"
+ "Each Matrix plugin can contain up to 16 different patterns, these are\n"
+ "selectable on the plugin GUI, and triggerable by the play trigger CV.\n"
+ "This CV input takes a note frequency CV rather than just a trigger,\n"
+ "and the bottom 16 notes on the midi scale trigger the 16 patterns.\n"
+ "This means that a matrix can trigger another matrix, if set to a much\n"
+ "lower speed, and (set to octave 0) the notes trigger the differnt\n"
+ "patterns in the slave matrix.\n\n"
+ "The external clock input is an important alternative to the matrixes\n"
+ "internal clock, it allows you to have multiple matrixes powered from one\n"
+ "oscillator clock. To allow you to sync these matrixes, the matrix is\n"
+ "provided with a Reset Trigger, which when plugged into the Play Trigger\n"
+ "of another matrix, will synch the two so they start at the same clock\n"
+ "pulse.";
}

+ 3
- 0
SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.h View File

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


+ 0
- 1
SpiralSound/Plugins/MidiPlugin/MidiPlugin.C View File

@@ -310,4 +310,3 @@ void MidiPlugin::StreamIn(istream &s)
}
}
}


+ 23
- 0
SpiralSound/Plugins/MidiPlugin/MidiPluginGUI.C View File

@@ -283,3 +283,26 @@ inline void MidiPluginGUI::cb_RemoveControl_i(Fl_Button* o, void* v)
}
void MidiPluginGUI::cb_RemoveControl(Fl_Button* o, void* v)
{ ((MidiPluginGUI*)(o->parent()))->cb_RemoveControl_i(o,v);}

const string MidiPluginGUI::GetHelpText(const string &loc){
return string("")
+ "A plugin that converts midi signals into SSM's CVs. The midi plugin\n"
+ "outputs a Frequency CV, which comes from the last note pressed and\n"
+ "Trigger CV which lets you know the timing and the velocity of the\n"
+ "event.\n"
+ "It also detects pitchbend, channel pressure and aftertouch information,\n"
+ "and outputs these as continuous CV data.\n\n"
+ "You can select the Midi device used with the selector. Devices 0-16 are\n"
+ "valid Midi channels. You can run multiple Midi plugins simultaneously\n"
+ "to get data from different device numbers to make an externally\n"
+ "controlled song.\n\n"
+ "The note frequency CV can optionally be switched into \"Note Cut\" mode,\n"
+ "where the frequecy is set to zero when the key is released. This is\n"
+ "useful for a number of things, including retriggering samples from\n"
+ "frequency information (see sampler).\n"
+ "Extra ports can be added to handle the 128 controller messages. Click\n"
+ "add control, and you will get a menu window to pick the controller you\n"
+ "need.\n"
+ "The MidiPlugin also supports midi note output to external devices";
}


+ 3
- 0
SpiralSound/Plugins/MidiPlugin/MidiPluginGUI.h View File

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


+ 12
- 0
SpiralSound/Plugins/OutputPlugin/OutputPluginGUI.C View File

@@ -131,3 +131,15 @@ inline void OutputPluginGUI::cb_OpenWrite_i(Fl_Button* o, void* v)
}
void OutputPluginGUI::cb_OpenWrite(Fl_Button* o, void* v)
{ ((OutputPluginGUI*)(o->parent()))->cb_OpenWrite_i(o,v); }


const string OutputPluginGUI::GetHelpText(const string &loc){
return string("")
+ "Your basic OSS i/o plugin, It opens the OSS sound driver, and outputs\n"
+ "whatever is passed into it's inputs to the soundcard. It works in stereo,\n"
+ "so you have seperate left and right inputs.\n\n"
+ "There are three modes of operation: read, write and duplex. You can select\n"
+ "read to record/process sound from your soundcard, write to play sound\n"
+ "(default) and if your card supports it - duplex, to play and record \n"
+ "simultaneously.";
}

+ 3
- 0
SpiralSound/Plugins/OutputPlugin/OutputPluginGUI.h View File

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

Fl_Group *GUIMixGroup;


+ 18
- 0
SpiralSound/Plugins/PoshSamplerPlugin/PoshSamplerPluginGUI.C View File

@@ -675,3 +675,21 @@ inline void PoshSamplerPluginGUI::cb_ZoomOut_i(Fl_Button* o, void* v)
}
void PoshSamplerPluginGUI::cb_ZoomOut(Fl_Button* o, void* v)
{ ((PoshSamplerPluginGUI*)(o->parent()))->cb_ZoomOut_i(o,v);}

const string PoshSamplerPluginGUI::GetHelpText(const string &loc){
return string("")
+ "A sampler that allows simple sample editing (cut copy paste etc),\n"
+ "dirty time stretching (by modulating the start pos + retriggering +\n"
+ "modulating pitch) and loop start/end points with ping pong loop mode.\n"
+ "Also implementations of controls, such as continuous pitch changing,\n"
+ "so you can add portmento to samples, trigger velocity sets sample\n"
+ "volume.\n\n"
+ "Can records input data too.\n\n"
+ "Controls:\n"
+ "lmb: Select region\n"
+ "mmb: Move view\n"
+ "rmb: Draws samples at full zoom.\n\n"
+ "Left mouse also drags loop points. The Loop end marker defaults to the\n"
+ "end of the sample.\n\n"
+ "Note: The loading and saving of samples is not yet realtime safe";
}

+ 3
- 0
SpiralSound/Plugins/PoshSamplerPlugin/PoshSamplerPluginGUI.h View File

@@ -81,6 +81,9 @@ public:
void SetPlayPos(long s) { m_Display->SetPlayPos(s); }
int GetCurrentSample() { return (int)m_SampleNum->value(); }
protected:
const string GetHelpText(const string &loc);
private:

void UpdateSampleDisplay(int num);


+ 11
- 0
SpiralSound/Plugins/SeqSelectorPlugin/SeqSelectorPluginGUI.C View File

@@ -287,3 +287,14 @@ inline void SeqSelectorPluginGUI::cb_UseRange_i(Fl_Button* o, void* v)
}
void SeqSelectorPluginGUI::cb_UseRange(Fl_Button* o, void* v)
{ ((SeqSelectorPluginGUI*)(o->parent()))->cb_UseRange_i(o,v); }

const string SeqSelectorPluginGUI::GetHelpText(const string &loc){
return string("")
+ "The SeqSelector is designed to allow you to syncronise and select up\n"
+ "to 8 Sequencer or Matrix patterns into tracks. When the SeqSelector\n"
+ "recieves a trigger (which could come from a master pattern, or a clock\n"
+ "oscillator) it will briefly flash the next set of values to its outputs,\n"
+ "triggering the next patterns on it's slave sequencers or matrix plugins.\n\n"
+ "You can also specify a loop, which will be used if the \"use range\"\n"
+ "button is activated. This is useful for auditioning sections of a track.";
}

+ 3
- 0
SpiralSound/Plugins/SeqSelectorPlugin/SeqSelectorPluginGUI.h View File

@@ -72,6 +72,9 @@ public:
void StreamOut(ostream &s);
void StreamIn(istream &s);
protected:
const string GetHelpText(const string &loc);
private:
int m_LastLight;


+ 1
- 1
SpiralSound/Plugins/SpiralPluginGUI.C View File

@@ -83,7 +83,7 @@ inline void SpiralPluginGUI::cb_Help_i(Fl_Button* o, void* v)
{
if (m_HelpWin==NULL)
{
int w=300,h=200;
int w=330,h=200;
m_HelpWin = new Fl_Double_Window(w,h,"Help");

Fl_Text_Display* text = new Fl_Text_Display(0,0,10,10);


+ 10
- 18
SpiralSound/Plugins/StreamPlugin/StreamPlugin.C View File

@@ -76,11 +76,11 @@ m_Mode(STOPM)
m_AudioCH->RegisterData("FileName",ChannelHandler::INPUT,&m_FileNameArg,sizeof(m_FileNameArg));
m_AudioCH->Register("Time",&m_TimeArg);
m_AudioCH->Register("TimeOut",&m_TimeOut,ChannelHandler::OUTPUT);
m_AudioCH->Register("MaxTime",&m_MaxTime,ChannelHandler::OUTPUT);
}

StreamPlugin::~StreamPlugin()
{
cerr << "I'm deleted" << endl;
}

PluginInfo &StreamPlugin::Initialise(const HostInfo *Host)
@@ -141,10 +141,7 @@ void StreamPlugin::Execute()
m_Pos+=m_StreamDesc.PitchMod+CVPitch;
m_GlobalPos+=m_StreamDesc.PitchMod+CVPitch;
}
//if (((StreamPluginGUI*)m_GUI)->visible())
// ((StreamPluginGUI*)m_GUI)->SetTime(GetTime());
//Joe must fix this.

m_TimeOut=GetTime();
}
}
@@ -155,14 +152,11 @@ void StreamPlugin::ExecuteCommands()
{
switch(m_AudioCH->GetCommand())
{
case (LOAD) : OpenStream(m_FileNameArg); break;
case (RESTART) : Restart(); break;
case (STOP) : Stop(); break;
case (PLAY) : Play(); break;
case (HALF) : m_StreamDesc.PitchMod/=2; break;
case (RESET) : m_StreamDesc.PitchMod=1; break;
case (DOUBLE) : m_StreamDesc.PitchMod*=2; break;
case (NUDGE) : Nudge(); break;
case (LOAD) : OpenStream(m_FileNameArg); break;
case (RESTART) : Restart(); break;
case (STOP) : Stop(); break;
case (PLAY) : Play(); break;
case (NUDGE) : Nudge(); break;
case (SET_TIME) : SetTime(m_TimeArg); break;
}
}
@@ -220,12 +214,10 @@ void StreamPlugin::OpenStream(const string &Name)
m_StreamDesc.Pitch = m_StreamDesc.SampleRate/(float)m_HostInfo->SAMPLERATE;
if (m_StreamDesc.Stereo)
{
m_StreamDesc.Pitch*=2;
//((StreamPluginGUI*)m_GUI)->SetMaxTime(GetLength());
m_StreamDesc.Pitch*=2;
m_MaxTime=GetLength();
}
//else ((StreamPluginGUI*)m_GUI)->SetMaxTime(GetLength()/2);
//Joe this must use the chanel handler
else m_MaxTime=GetLength()/2;
}

void StreamPlugin::Restart()


+ 2
- 1
SpiralSound/Plugins/StreamPlugin/StreamPlugin.h View File

@@ -44,7 +44,7 @@ class StreamPlugin : public SpiralPlugin
public:
enum Mode{PLAYM,STOPM};

enum GUICommands{LOAD,RESTART,STOP,PLAY,HALF,RESET,DOUBLE,NUDGE,SET_TIME};
enum GUICommands{NONE,LOAD,RESTART,STOP,PLAY,HALF,RESET,DOUBLE,NUDGE,SET_TIME};

StreamPlugin();
virtual ~StreamPlugin();
@@ -92,6 +92,7 @@ private:
char m_FileNameArg[256];
float m_TimeArg;
float m_TimeOut;
float m_MaxTime;
};

#endif

+ 30
- 69
SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.C View File

@@ -32,13 +32,9 @@ char PitchLabel[256];
StreamPluginGUI::StreamPluginGUI(int w, int h,StreamPlugin *o,ChannelHandler *ch,const HostInfo *Info) :
SpiralPluginGUI(w,h,o,ch)
{

//int Width=20;
//int Height=100;
//What are Width and Height for.

m_PitchValue=1.0f;
m_TempPitch=1.0f;
m_Load = new Fl_Button(2, 130, 30, 30, "Load");
m_Load->labelsize(9);
m_Load->callback((Fl_Callback*)cb_Load);
@@ -84,9 +80,6 @@ SpiralPluginGUI(w,h,o,ch)
m_Nudge->callback((Fl_Callback*)cb_Nudge);
add(m_Nudge);
// Andy Preston changed
// m_Volume = new Fl_Knob(170, 15, 50, 50, "Volume");
// to
m_Volume = new Fl_Knob (180, 15, 50, 50, "Volume");
m_Volume->color(GUI_COLOUR);
m_Volume->type(Fl_Knob::LINELIN);
@@ -110,40 +103,7 @@ SpiralPluginGUI(w,h,o,ch)
m_Pitch->callback((Fl_Callback*)cb_Pitch);
add(m_Pitch);

// Andy Preston changed
// int k=4;
// m_Display[0] = new Fl_SevenSeg(10, 20, 30, 60);
// m_Display[0]->bar_width(k);
// m_Display[0]->color(FL_WHITE);
// m_Display[0]->color2(GUI_COLOUR);
// add(m_Display[0]);
// m_Display[1] = new Fl_SevenSeg(30, 20, 30, 60);
// m_Display[1]->bar_width(k);
// m_Display[1]->color(FL_WHITE);
// m_Display[1]->color2(GUI_COLOUR);
// add(m_Display[1]);
// m_Display[2] = new Fl_SevenSeg(60, 20, 30, 60);
// m_Display[2]->bar_width(k);
// m_Display[2]->color(FL_WHITE);
// m_Display[2]->color2(GUI_COLOUR);
// add(m_Display[2]);
// m_Display[3] = new Fl_SevenSeg(80, 20, 30, 60);
// m_Display[3]->bar_width(k);
// m_Display[3]->color(FL_WHITE);
// m_Display[3]->color2(GUI_COLOUR);
// add(m_Display[3]);
// m_Display[4] = new Fl_SevenSeg(110, 20, 30, 60);
// m_Display[4]->bar_width(k);
// m_Display[4]->color(FL_WHITE);
// m_Display[4]->color2(GUI_COLOUR);
// add(m_Display[4]);
// m_Display[5] = new Fl_SevenSeg(130, 20, 30, 60);
// m_Display[5]->bar_width(k);
// m_Display[5]->color(FL_WHITE);
// m_Display[5]->color2(GUI_COLOUR);
// add(m_Display[5]);
// to
for (int dis=0; dis<6; dis++) {
for (int dis=0; dis<6; dis++) {
m_Display[dis] = new Fl_SevenSeg (5 + 28*dis, 20, 28, 60);
m_Display[dis] -> bar_width (4);
m_Display[dis] -> color (FL_WHITE);
@@ -163,7 +123,6 @@ SpiralPluginGUI(w,h,o,ch)

StreamPluginGUI::~StreamPluginGUI()
{
cerr << "~StreamPluginGUI" << endl;
}

void StreamPluginGUI::Update()
@@ -182,26 +141,9 @@ void StreamPluginGUI::Update()
m_Display[0]->value((int)(t/600)%10);
redraw();

}

/*void StreamPluginGUI::SetTime()
{
cerr << "foo" << endl;
float t=m_GUICH->GetFloat("TimeOut");

m_Pos->value(t);

m_Display[5]->value((int)(t*100)%10);
m_Display[4]->value((int)(t*10)%10);

m_Display[3]->value((int)t%10);
m_Display[2]->value((int)(t/10)%6);

m_Display[1]->value((int)(t/60)%10);
m_Display[0]->value((int)(t/600)%10);
redraw();
}*/
SetMaxTime(m_GUICH->GetFloat("MaxTime"));

}

void StreamPluginGUI::UpdateValues(SpiralPlugin *o)
{
@@ -219,8 +161,10 @@ inline void StreamPluginGUI::cb_Load_i(Fl_Button* o, void* v)
if (fn && fn!='\0')
{
strcpy(m_TextBuf,fn);
m_GUICH->Set("FileName",m_TextBuf);
m_GUICH->SetData("FileName",(void*)m_TextBuf);
m_GUICH->SetCommand(StreamPlugin::LOAD);
m_GUICH->Wait();
SetMaxTime(m_GUICH->GetFloat("MaxTime"));
}
}
void StreamPluginGUI::cb_Load(Fl_Button* o, void* v)
@@ -244,7 +188,7 @@ void StreamPluginGUI::cb_Pitch(Fl_Slider* o, void* v)
inline void StreamPluginGUI::cb_Loop_i(Fl_Button* o, void* v) //Why is this function named so.
{
m_PitchValue*=2.0f;
m_GUICH->SetCommand(StreamPlugin::DOUBLE);
m_GUICH->Set("Pitch",m_PitchValue);
sprintf(PitchLabel,"%1.3f ",m_PitchValue);
m_Pitch->label(PitchLabel);
m_Pitch->value(m_PitchValue+10);
@@ -256,7 +200,7 @@ void StreamPluginGUI::cb_Loop(Fl_Button* o, void* v)
inline void StreamPluginGUI::cb_Div_i(Fl_Button* o, void* v)
{
m_PitchValue/=2.0f;
m_GUICH->SetCommand(StreamPlugin::HALF);
m_GUICH->Set("Pitch",m_PitchValue);
sprintf(PitchLabel,"%1.3f ",m_PitchValue);
m_Pitch->label(PitchLabel);
m_Pitch->value(m_PitchValue+10);
@@ -271,18 +215,25 @@ void StreamPluginGUI::cb_ToStart(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_ToStart_i(o,v);}

inline void StreamPluginGUI::cb_Stop_i(Fl_Button* o, void* v)
{ m_GUICH->SetCommand(StreamPlugin::STOP); }
{
m_TempPitch=m_PitchValue;
m_PitchValue=0;
m_GUICH->Set("Pitch",m_PitchValue);
}
void StreamPluginGUI::cb_Stop(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Stop_i(o,v);}

inline void StreamPluginGUI::cb_Play_i(Fl_Button* o, void* v)
{ m_GUICH->SetCommand(StreamPlugin::PLAY); }
{
m_PitchValue=m_TempPitch;
m_GUICH->Set("Pitch",m_PitchValue);
}
void StreamPluginGUI::cb_Play(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Play_i(o,v);}

inline void StreamPluginGUI::cb_Reset_i(Fl_Button* o, void* v)
{
m_GUICH->SetCommand(StreamPlugin::RESET);
m_GUICH->Set("Pitch",1.0f);
sprintf(PitchLabel,"%1.3f ",1.0);
m_Pitch->label(PitchLabel);
m_Pitch->value(11);
@@ -307,3 +258,13 @@ inline void StreamPluginGUI::cb_Pos_i(Fl_Slider* o, void* v)
void StreamPluginGUI::cb_Pos(Fl_Slider* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Pos_i(o,v);}

const string StreamPluginGUI::GetHelpText(const string &loc){
return string("")
+ "If you want to mix whole tracks and add effects etc, then this is the\n"
+ "way to do it. The StreamPlugin loads a wav in bit by bit, so it doesn't\n"
+ "use much memory. The track can be pitched for mixing.\n"
+ "Operates pretty much like a media player such as XMMS (only wav\n"
+ "format though).\n\n"
+ "Note: Not realtime safe, if you're using JACK, use a client such as\n"
+ "alsaplayer.";
}

+ 4
- 0
SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.h View File

@@ -45,6 +45,9 @@ public:
//void SetTime();
void SetMaxTime(float t) { m_Pos->maximum(t); }

protected:
const string GetHelpText(const string &loc);
private:
Fl_Button* m_Load;
@@ -67,6 +70,7 @@ private:
char m_TextBuf[256];

float m_PitchValue;
float m_TempPitch;
//// Callbacks ////
inline void cb_Load_i(Fl_Button* o, void* v);


+ 1
- 0
SpiralSynthModularInfo.C View File

@@ -100,6 +100,7 @@ SpiralSynthModularInfo::SpiralSynthModularInfo()
PLUGINVEC.push_back("XFadePlugin.so");
PLUGINVEC.push_back("DistributorPlugin.so");
PLUGINVEC.push_back("SplitterPlugin.so");
PLUGINVEC.push_back("StreamPlugin.so");
}

void SpiralSynthModularInfo::StreamInPrefs(istream &s)


+ 2
- 2
configure.in View File

@@ -41,14 +41,14 @@ if test $ac_arg_jack = "Y" ; then
PLUGINLIST="AmpPlugin ControllerPlugin DelayPlugin EchoPlugin EnvFollowerPlugin \
EnvelopePlugin FilterPlugin MatrixPlugin MidiPlugin MixerPlugin MoogFilterPlugin \
NoteSnapPlugin OscillatorPlugin OutputPlugin RingModPlugin SVFilterPlugin \
SampleHoldPlugin ScopePlugin SmoothPlugin SplitterPlugin StereoMixerPlugin\
SampleHoldPlugin ScopePlugin SmoothPlugin SplitterPlugin StereoMixerPlugin StreamPlugin\
WaveTablePlugin LADSPAPlugin XFadePlugin PoshSamplerPlugin SeqSelectorPlugin\
DistributorPlugin LFOPlugin KeyboardPlugin DiskWriterPlugin JackPlugin"
else
PLUGINLIST="AmpPlugin ControllerPlugin DelayPlugin EchoPlugin EnvFollowerPlugin \
EnvelopePlugin FilterPlugin MatrixPlugin MidiPlugin MixerPlugin MoogFilterPlugin \
NoteSnapPlugin OscillatorPlugin OutputPlugin RingModPlugin SVFilterPlugin \
SampleHoldPlugin ScopePlugin SmoothPlugin SplitterPlugin StereoMixerPlugin\
SampleHoldPlugin ScopePlugin SmoothPlugin SplitterPlugin StereoMixerPlugin StreamPlugin\
WaveTablePlugin LADSPAPlugin XFadePlugin PoshSamplerPlugin SeqSelectorPlugin\
DistributorPlugin LFOPlugin KeyboardPlugin DiskWriterPlugin"
fi


Loading…
Cancel
Save