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_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_set_sample_rate_callback (m_Client, JackClient::OnSRateChange, 0);
jack_on_shutdown (m_Client, JackClient::OnJackShutdown, this); jack_on_shutdown (m_Client, JackClient::OnJackShutdown, this);


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


int JackClient::Process(jack_nframes_t nframes, void *o) int JackClient::Process(jack_nframes_t nframes, void *o)
{ {
m_BufferSize=nframes;
for (int n=0; n<NUM_INPUTS; n++) for (int n=0; n<NUM_INPUTS; n++)
{ {
if (jack_port_connected(m_InputPortMap[n]->Port)) 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) int JackClient::OnSRateChange(long unsigned int n, void *o)
{ {
m_SampleRate=n; m_SampleRate=n;


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

@@ -14,7 +14,7 @@ CXXFLAGS= @CXXFLAGS@
INCPATH = -I/usr/X11R6/include INCPATH = -I/usr/X11R6/include
LINK = g++ -shared LINK = g++ -shared
LFLAGS = 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 MOC = moc
UIC = UIC =




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

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


void NoteSnapPlugin::Execute() void NoteSnapPlugin::Execute()
{ {
float Freq=0, OldFreq=0;
float Freq=0;
for (int n=0; n<m_HostInfo->BUFSIZE; n++) for (int n=0; n<m_HostInfo->BUFSIZE; n++)
{ {
Freq=GetInputPitch(0,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 for (int i=0; i<131; i++) // for every note
{ {
if (m_Filter[(i+1)%12] && Freq>=NoteTable[i] && Freq<NoteTable[i+1]) if (m_Filter[(i+1)%12] && Freq>=NoteTable[i] && Freq<NoteTable[i+1])
{
{
m_Out=NoteTable[i]; 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); SetOutputPitch(0,n,m_Out);
} }
} }


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

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


#endif #endif

Loading…
Cancel
Save