Browse Source

jack fixed + notesnap note changed CV trigger

master
nebogeo 22 years ago
parent
commit
e610507ea0
4 changed files with 19 additions and 17 deletions
  1. +4
    -11
      SpiralSound/Plugins/JackPlugin/JackPlugin.C
  2. +1
    -1
      SpiralSound/Plugins/JackPlugin/Makefile.in
  3. +12
    -5
      SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPlugin.C
  4. +2
    -0
      SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPlugin.h

+ 4
- 11
SpiralSound/Plugins/JackPlugin/JackPlugin.C View File

@@ -63,7 +63,6 @@ bool JackClient::Attach()
}

jack_set_process_callback(m_Client, JackClient::Process, 0);
jack_set_buffer_size_callback(m_Client, JackClient::OnBufSizeChange, 0);
jack_set_sample_rate_callback (m_Client, JackClient::OnSRateChange, 0);
jack_on_shutdown (m_Client, JackClient::OnJackShutdown, this);

@@ -74,7 +73,7 @@ bool JackClient::Attach()
for (int n=0; n<NUM_INPUTS; n++)
{
char Name[256];
sprintf(Name,"In %d",n);
sprintf(Name,"In%d",n);
JackPort *NewPort = new JackPort;
NewPort->Name=Name;
@@ -86,7 +85,7 @@ bool JackClient::Attach()
for (int n=0; n<NUM_OUTPUTS; n++)
{
char Name[256];
sprintf(Name,"Out %d",n);
sprintf(Name,"Out%d",n);
JackPort *NewPort = new JackPort;
NewPort->Name=Name;
@@ -129,6 +128,8 @@ void JackClient::Detach()

int JackClient::Process(jack_nframes_t nframes, void *o)
{
m_BufferSize=nframes;
for (int n=0; n<NUM_INPUTS; n++)
{
if (jack_port_connected(m_InputPortMap[n]->Port))
@@ -166,14 +167,6 @@ int JackClient::Process(jack_nframes_t nframes, void *o)

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

int JackClient::OnBufSizeChange(long unsigned int n, void *o)
{
m_BufferSize=n;
return 0;
}

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

int JackClient::OnSRateChange(long unsigned int n, void *o)
{
m_SampleRate=n;


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

@@ -14,7 +14,7 @@ CXXFLAGS= @CXXFLAGS@
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
LIBS = -L/usr/X11R6/lib -L/usr/local/lib/ @FLTK_LIBS@ -lGL -lXext -lX11 -ldl -lrt -ljack -lpthread
MOC = moc
UIC =



+ 12
- 5
SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPlugin.C View File

@@ -52,9 +52,10 @@ m_Out(0)
m_PluginInfo.Width=90;
m_PluginInfo.Height=80;
m_PluginInfo.NumInputs=1;
m_PluginInfo.NumOutputs=1;
m_PluginInfo.NumOutputs=2;
m_PluginInfo.PortTips.push_back("Input");
m_PluginInfo.PortTips.push_back("Output");
m_PluginInfo.PortTips.push_back("Changed Trigger");
for (int n=0; n<12; n++)
{
@@ -82,24 +83,30 @@ SpiralGUIType *NoteSnapPlugin::CreateGUI()

void NoteSnapPlugin::Execute()
{
float Freq=0, OldFreq=0;
float Freq=0;
for (int n=0; n<m_HostInfo->BUFSIZE; n++)
{
Freq=GetInputPitch(0,n);
if (Freq!=OldFreq) // if it's changed
SetOutput(1,n,0);
if (Freq!=m_LastFreq) // if it's changed
{
for (int i=0; i<131; i++) // for every note
{
if (m_Filter[(i+1)%12] && Freq>=NoteTable[i] && Freq<NoteTable[i+1])
{
{
m_Out=NoteTable[i];
if (i!=m_LastNote)
{
SetOutput(1,n,1);
m_LastNote=i;
}
}
}
}
OldFreq=Freq;
m_LastFreq=Freq;
SetOutputPitch(0,n,m_Out);
}
}


+ 2
- 0
SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPlugin.h View File

@@ -44,6 +44,8 @@ private:
int m_Note;
bool m_Filter[12];
float m_Out;
float m_LastFreq;
int m_LastNote;
};

#endif

Loading…
Cancel
Save