Browse Source

Matrix GUI now shows what pattern is playing when triggered externally

master
edgeeffect 22 years ago
parent
commit
806d72718f
2 changed files with 20 additions and 17 deletions
  1. +5
    -4
      SpiralSound/Plugins/MatrixPlugin/MatrixPlugin.C
  2. +15
    -13
      SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C

+ 5
- 4
SpiralSound/Plugins/MatrixPlugin/MatrixPlugin.C View File

@@ -70,7 +70,7 @@ m_PatReset(false)
m_PluginInfo.Width=600; m_PluginInfo.Width=600;
m_PluginInfo.Height=270; m_PluginInfo.Height=270;
m_PluginInfo.NumInputs=5; m_PluginInfo.NumInputs=5;
m_PluginInfo.NumOutputs=19;
m_PluginInfo.NumOutputs=19;
m_PluginInfo.PortTips.push_back("Play Trigger"); m_PluginInfo.PortTips.push_back("Play Trigger");
m_PluginInfo.PortTips.push_back("StepTime CV"); m_PluginInfo.PortTips.push_back("StepTime CV");
m_PluginInfo.PortTips.push_back("Input Pitch CV"); m_PluginInfo.PortTips.push_back("Input Pitch CV");
@@ -110,15 +110,15 @@ m_PatReset(false)
m_Matrix[n].Matrix[x][y]=false; m_Matrix[n].Matrix[x][y]=false;
m_Matrix[n].Volume[x][y]=1; m_Matrix[n].Volume[x][y]=1;
} }
m_TriggerLevel[n]=0; m_TriggerLevel[n]=0;
} }
for (int n=0; n<NUM_PATSEQ; n++) for (int n=0; n<NUM_PATSEQ; n++)
{ {
m_PatSeq[n]=0; m_PatSeq[n]=0;
} }
m_AudioCH->Register("NoteCut",&m_NoteCut,ChannelHandler::INPUT); m_AudioCH->Register("NoteCut",&m_NoteCut,ChannelHandler::INPUT);
m_AudioCH->Register("Volume",&m_GUIArgs.Volume,ChannelHandler::INPUT); m_AudioCH->Register("Volume",&m_GUIArgs.Volume,ChannelHandler::INPUT);
m_AudioCH->Register("Current",&m_GUICurrent,ChannelHandler::INPUT); m_AudioCH->Register("Current",&m_GUICurrent,ChannelHandler::INPUT);
@@ -131,6 +131,7 @@ m_PatReset(false)
m_AudioCH->Register("Octave",&m_GUIArgs.Octave,ChannelHandler::INPUT); m_AudioCH->Register("Octave",&m_GUIArgs.Octave,ChannelHandler::INPUT);
m_AudioCH->Register("Step",&m_Step,ChannelHandler::OUTPUT); m_AudioCH->Register("Step",&m_Step,ChannelHandler::OUTPUT);
m_AudioCH->Register("PatSeqStep",&m_CurPatSeq,ChannelHandler::OUTPUT); m_AudioCH->Register("PatSeqStep",&m_CurPatSeq,ChannelHandler::OUTPUT);
m_AudioCH->Register("EchoCur", &m_Current, ChannelHandler::OUTPUT);
m_AudioCH->RegisterData("Matrix",ChannelHandler::OUTPUT_REQUEST,&m_Matrix,sizeof(m_Matrix)); m_AudioCH->RegisterData("Matrix",ChannelHandler::OUTPUT_REQUEST,&m_Matrix,sizeof(m_Matrix));
} }




+ 15
- 13
SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C View File

@@ -142,7 +142,7 @@ m_LastPatSeqLight(0)
m_Speed->labelsize(10); m_Speed->labelsize(10);
m_Speed->maximum(200); m_Speed->maximum(200);
m_Speed->step(0.01); m_Speed->step(0.01);
m_Speed->value(1.0);
m_Speed->value(1.0);
m_Speed->callback((Fl_Callback*)cb_Speed); m_Speed->callback((Fl_Callback*)cb_Speed);
add(m_Speed); add(m_Speed);
@@ -270,48 +270,50 @@ void MatrixPluginGUI::Update()
m_Flash[Light]->value(1); m_Flash[Light]->value(1);
m_Flash[m_LastLight]->value(0); m_Flash[m_LastLight]->value(0);
m_LastLight=Light; m_LastLight=Light;

m_PlayPattern->value (m_GUICH->GetInt("EchoCur"));

int PatSeqLight=m_GUICH->GetInt("PatSeqStep"); int PatSeqLight=m_GUICH->GetInt("PatSeqStep");
if (PatSeqLight!=m_LastPatSeqLight) if (PatSeqLight!=m_LastPatSeqLight)
{ {
m_PatSeqFlash[PatSeqLight]->value(1); m_PatSeqFlash[PatSeqLight]->value(1);
m_PatSeqFlash[m_LastPatSeqLight]->value(0); m_PatSeqFlash[m_LastPatSeqLight]->value(0);
m_LastPatSeqLight=PatSeqLight; m_LastPatSeqLight=PatSeqLight;
}
}
} }
} }


void MatrixPluginGUI::UpdateValues(SpiralPlugin *o) void MatrixPluginGUI::UpdateValues(SpiralPlugin *o)
{ {
MatrixPlugin *Plugin = (MatrixPlugin*)o; MatrixPlugin *Plugin = (MatrixPlugin*)o;
m_Pattern->value(Plugin->GetCurrent()); m_Pattern->value(Plugin->GetCurrent());
m_Length->value(Plugin->GetPattern()->Length); m_Length->value(Plugin->GetPattern()->Length);
m_Speed->value(Plugin->GetPattern()->Speed*8); m_Speed->value(Plugin->GetPattern()->Speed*8);
m_SpeedVal->value((int)m_Speed->value()); m_SpeedVal->value((int)m_Speed->value());
m_Octave->value(Plugin->GetPattern()->Octave); m_Octave->value(Plugin->GetPattern()->Octave);
for(int x=0; x<MATX; x++) for(int x=0; x<MATX; x++)
for(int y=0; y<MATY; y++) for(int y=0; y<MATY; y++)
{ {
m_Matrix[x][y]->value(Plugin->GetPattern()->Matrix[x][y]); m_Matrix[x][y]->value(Plugin->GetPattern()->Matrix[x][y]);
m_Matrix[x][y]->SetVolume(Plugin->GetPattern()->Volume[x][y]); m_Matrix[x][y]->SetVolume(Plugin->GetPattern()->Volume[x][y]);
} }
for(int n=0; n<NUM_PATSEQ; n++) for(int n=0; n<NUM_PATSEQ; n++)
{ {
m_PatSeq[n]->value(Plugin->GetPatSeq(n)); m_PatSeq[n]->value(Plugin->GetPatSeq(n));
} }
} }
void MatrixPluginGUI::UpdateMatrix() void MatrixPluginGUI::UpdateMatrix()
{ {
m_GUICH->Wait(); m_GUICH->Wait();
m_GUICH->RequestChannelAndWait("Matrix"); m_GUICH->RequestChannelAndWait("Matrix");
m_GUICH->GetData("Matrix",(void*)m_GUIMatrix); m_GUICH->GetData("Matrix",(void*)m_GUIMatrix);
Pattern *p=&m_GUIMatrix[(int)m_Pattern->value()]; Pattern *p=&m_GUIMatrix[(int)m_Pattern->value()];
m_Length->value(p->Length); m_Length->value(p->Length);
m_Speed->value(p->Speed*8); m_Speed->value(p->Speed*8);
m_SpeedVal->value((int)m_Speed->value()); m_SpeedVal->value((int)m_Speed->value());
@@ -322,25 +324,25 @@ void MatrixPluginGUI::UpdateMatrix()
{ {
m_Matrix[x][y]->value(p->Matrix[x][y]); m_Matrix[x][y]->value(p->Matrix[x][y]);
m_Matrix[x][y]->SetVolume(p->Volume[x][y]); m_Matrix[x][y]->SetVolume(p->Volume[x][y]);
}
}


} }


inline void MatrixPluginGUI::cb_NoteCut_i(Fl_Button* o, void* v) inline void MatrixPluginGUI::cb_NoteCut_i(Fl_Button* o, void* v)
{
{
m_GUICH->Set("NoteCut",o->value()); m_GUICH->Set("NoteCut",o->value());
} }
void MatrixPluginGUI::cb_NoteCut(Fl_Button* o, void* v) void MatrixPluginGUI::cb_NoteCut(Fl_Button* o, void* v)
{ ((MatrixPluginGUI*)(o->parent()))->cb_NoteCut_i(o,v);} { ((MatrixPluginGUI*)(o->parent()))->cb_NoteCut_i(o,v);}


inline void MatrixPluginGUI::cb_Matrix_i(Fl_Button* o, void* v) inline void MatrixPluginGUI::cb_Matrix_i(Fl_Button* o, void* v)
{
{
m_GUICH->Set("X",*(int*)v/MATY); m_GUICH->Set("X",*(int*)v/MATY);
m_GUICH->Set("Y",*(int*)v%MATY); m_GUICH->Set("Y",*(int*)v%MATY);


if (o->value()) m_GUICH->SetCommand(MatrixPlugin::MAT_ACTIVATE); if (o->value()) m_GUICH->SetCommand(MatrixPlugin::MAT_ACTIVATE);
else m_GUICH->SetCommand(MatrixPlugin::MAT_DEACTIVATE); else m_GUICH->SetCommand(MatrixPlugin::MAT_DEACTIVATE);
m_GUICH->Wait(); m_GUICH->Wait();
} }
void MatrixPluginGUI::cb_Matrix(Fl_Button* o, void* v) void MatrixPluginGUI::cb_Matrix(Fl_Button* o, void* v)


Loading…
Cancel
Save