Browse Source

Fix synths build

gh-pages
falkTX 9 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)
break;
if (jevent.size > 4)
continue;

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

midiEvent.frame = jevent.time;
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);


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

@@ -203,58 +203,58 @@ public:
{
case SND_SEQ_EVENT_NOTEOFF:
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;
case SND_SEQ_EVENT_NOTEON:
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;
case SND_SEQ_EVENT_KEYPRESS:
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;
case SND_SEQ_EVENT_CONTROLLER:
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;
case SND_SEQ_EVENT_CHANPRESS:
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;
#if 0 // TODO
case SND_SEQ_EVENT_PITCHBEND:
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;
#endif
}


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

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

const uint8_t* const data((const uint8_t*)(event + 1));
@@ -276,11 +276,10 @@ public:
midiEvent.frame = event->time.frames;
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;
continue;


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

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


Loading…
Cancel
Save