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.Height=270;
m_PluginInfo.NumInputs=5;
m_PluginInfo.NumOutputs=19;
m_PluginInfo.NumOutputs=19;
m_PluginInfo.PortTips.push_back("Play Trigger");
m_PluginInfo.PortTips.push_back("StepTime 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].Volume[x][y]=1;
}
m_TriggerLevel[n]=0;
}
for (int n=0; n<NUM_PATSEQ; n++)
{
m_PatSeq[n]=0;
}
m_AudioCH->Register("NoteCut",&m_NoteCut,ChannelHandler::INPUT);
m_AudioCH->Register("Volume",&m_GUIArgs.Volume,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("Step",&m_Step,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));
}



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

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

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

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

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

}

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

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

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


Loading…
Cancel
Save