Browse Source

Fix synths build

gh-pages
falkTX 10 years ago
parent
commit
815d012771
4 changed files with 47 additions and 46 deletions
  1. +5
    -3
      distrho/src/DistrhoPluginJack.cpp
  2. +36
    -36
      distrho/src/DistrhoPluginLADSPA+DSSI.cpp
  3. +5
    -6
      distrho/src/DistrhoPluginLV2.cpp
  4. +1
    -1
      distrho/src/DistrhoPluginVST.cpp

+ 5
- 3
distrho/src/DistrhoPluginJack.cpp View File

@@ -249,14 +249,16 @@ protected:
{ {
if (jack_midi_event_get(&jevent, midiBuf, i) != 0) if (jack_midi_event_get(&jevent, midiBuf, i) != 0)
break; break;
if (jevent.size > 4)
continue;


MidiEvent& midiEvent(midiEvents[midiEventCount++]); MidiEvent& midiEvent(midiEvents[midiEventCount++]);


midiEvent.frame = jevent.time; midiEvent.frame = jevent.time;
midiEvent.size = jevent.size; midiEvent.size = jevent.size;
std::memcpy(midiEvent.buf, jevent.buffer, jevent.size);

if (midiEvent.size > MidiEvent::kDataSize)
midiEvent.dataExt = jevent.buffer;
else
std::memcpy(midiEvent.data, jevent.buffer, midiEvent.size);
} }


fPlugin.run(audioIns, audioOuts, nframes, midiEvents, midiEventCount); fPlugin.run(audioIns, audioOuts, nframes, midiEvents, midiEventCount);


+ 36
- 36
distrho/src/DistrhoPluginLADSPA+DSSI.cpp View File

@@ -203,58 +203,58 @@ public:
{ {
case SND_SEQ_EVENT_NOTEOFF: case SND_SEQ_EVENT_NOTEOFF:
j = midiEventCount++; j = midiEventCount++;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].buf[0] = 0x80 + seqEvent.data.note.channel;
midiEvents[j].buf[1] = seqEvent.data.note.note;
midiEvents[j].buf[2] = 0;
midiEvents[j].buf[3] = 0;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].data[0] = 0x80 + seqEvent.data.note.channel;
midiEvents[j].data[1] = seqEvent.data.note.note;
midiEvents[j].data[2] = 0;
midiEvents[j].data[3] = 0;
break; break;
case SND_SEQ_EVENT_NOTEON: case SND_SEQ_EVENT_NOTEON:
j = midiEventCount++; j = midiEventCount++;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].buf[0] = 0x90 + seqEvent.data.note.channel;
midiEvents[j].buf[1] = seqEvent.data.note.note;
midiEvents[j].buf[2] = seqEvent.data.note.velocity;
midiEvents[j].buf[3] = 0;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].data[0] = 0x90 + seqEvent.data.note.channel;
midiEvents[j].data[1] = seqEvent.data.note.note;
midiEvents[j].data[2] = seqEvent.data.note.velocity;
midiEvents[j].data[3] = 0;
break; break;
case SND_SEQ_EVENT_KEYPRESS: case SND_SEQ_EVENT_KEYPRESS:
j = midiEventCount++; j = midiEventCount++;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].buf[0] = 0xA0 + seqEvent.data.note.channel;
midiEvents[j].buf[1] = seqEvent.data.note.note;
midiEvents[j].buf[2] = seqEvent.data.note.velocity;
midiEvents[j].buf[3] = 0;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].data[0] = 0xA0 + seqEvent.data.note.channel;
midiEvents[j].data[1] = seqEvent.data.note.note;
midiEvents[j].data[2] = seqEvent.data.note.velocity;
midiEvents[j].data[3] = 0;
break; break;
case SND_SEQ_EVENT_CONTROLLER: case SND_SEQ_EVENT_CONTROLLER:
j = midiEventCount++; j = midiEventCount++;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].buf[0] = 0xB0 + seqEvent.data.control.channel;
midiEvents[j].buf[1] = seqEvent.data.control.param;
midiEvents[j].buf[2] = seqEvent.data.control.value;
midiEvents[j].buf[3] = 0;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].data[0] = 0xB0 + seqEvent.data.control.channel;
midiEvents[j].data[1] = seqEvent.data.control.param;
midiEvents[j].data[2] = seqEvent.data.control.value;
midiEvents[j].data[3] = 0;
break; break;
case SND_SEQ_EVENT_CHANPRESS: case SND_SEQ_EVENT_CHANPRESS:
j = midiEventCount++; j = midiEventCount++;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 2;
midiEvents[j].buf[0] = 0xD0 + seqEvent.data.control.channel;
midiEvents[j].buf[1] = seqEvent.data.control.value;
midiEvents[j].buf[2] = 0;
midiEvents[j].buf[3] = 0;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 2;
midiEvents[j].data[0] = 0xD0 + seqEvent.data.control.channel;
midiEvents[j].data[1] = seqEvent.data.control.value;
midiEvents[j].data[2] = 0;
midiEvents[j].data[3] = 0;
break; break;
#if 0 // TODO #if 0 // TODO
case SND_SEQ_EVENT_PITCHBEND: case SND_SEQ_EVENT_PITCHBEND:
j = midiEventCount++; j = midiEventCount++;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].buf[0] = 0xE0 + seqEvent.data.control.channel;
midiEvents[j].buf[1] = 0;
midiEvents[j].buf[2] = 0;
midiEvents[j].buf[3] = 0;
midiEvents[j].frame = seqEvent.time.tick;
midiEvents[j].size = 3;
midiEvents[j].data[0] = 0xE0 + seqEvent.data.control.channel;
midiEvents[j].data[1] = 0;
midiEvents[j].data[2] = 0;
midiEvents[j].data[3] = 0;
break; break;
#endif #endif
} }


+ 5
- 6
distrho/src/DistrhoPluginLV2.cpp View File

@@ -266,7 +266,7 @@ public:
# if DISTRHO_PLUGIN_IS_SYNTH # if DISTRHO_PLUGIN_IS_SYNTH
if (event->body.type == fURIDs.midiEvent) if (event->body.type == fURIDs.midiEvent)
{ {
if (event->body.size > 4 || midiEventCount >= kMaxMidiEvents)
if (midiEventCount >= kMaxMidiEvents)
continue; continue;


const uint8_t* const data((const uint8_t*)(event + 1)); const uint8_t* const data((const uint8_t*)(event + 1));
@@ -276,11 +276,10 @@ public:
midiEvent.frame = event->time.frames; midiEvent.frame = event->time.frames;
midiEvent.size = event->body.size; midiEvent.size = event->body.size;


uint8_t i;
for (i=0; i < midiEvent.size; ++i)
midiEvent.buf[i] = data[i];
for (; i < 4; ++i)
midiEvent.buf[i] = 0;
if (midiEvent.size > MidiEvent::kDataSize)
midiEvent.dataExt = data;
else
std::memcpy(midiEvent.data, data, midiEvent.size);


++midiEventCount; ++midiEventCount;
continue; continue;


+ 1
- 1
distrho/src/DistrhoPluginVST.cpp View File

@@ -577,7 +577,7 @@ public:
MidiEvent& midiEvent(fMidiEvents[fMidiEventCount++]); MidiEvent& midiEvent(fMidiEvents[fMidiEventCount++]);
midiEvent.frame = vstMidiEvent->deltaFrames; midiEvent.frame = vstMidiEvent->deltaFrames;
midiEvent.size = 3; midiEvent.size = 3;
std::memcpy(midiEvent.buf, vstMidiEvent->midiData, 3*sizeof(uint8_t));
std::memcpy(midiEvent.data, vstMidiEvent->midiData, sizeof(uint8_t)*3);
} }
} }
break; break;


Loading…
Cancel
Save