diff options
Diffstat (limited to 'attic/muse_qt4_evolution/midiplugins/splitlayer')
5 files changed, 0 insertions, 651 deletions
diff --git a/attic/muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt b/attic/muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt deleted file mode 100644 index b6803d8b..00000000 --- a/attic/muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -#============================================================================= -#  MusE -#  Linux Music Editor -#  $Id:$ -# -#  Copyright (C) 2002-2006 by Werner Schweer and others -# -#  This program is free software; you can redistribute it and/or modify -#  it under the terms of the GNU General Public License version 2. -# -#  This program is distributed in the hope that it will be useful, -#  but WITHOUT ANY WARRANTY; without even the implied warranty of -#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -#  GNU General Public License for more details. -# -#  You should have received a copy of the GNU General Public License -#  along with this program; if not, write to the Free Software -#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -#============================================================================= - -QT4_WRAP_CPP ( splitlayer_mocs splitlayergui.h ) -## QT4_WRAP_UI (  splitlayer_uis splitlayergui.ui ) - -add_library ( splitlayer SHARED  -      splitlayer.cpp  -      splitlayergui.cpp -      splitlayergui.h -      ${splitlayer_mocs} -      ) -target_link_libraries( splitlayer -   midiplugin -   ${QT_LIBRARIES} -   ) - -# - tell cmake to name target splitlayer.so instead of  -#   libsplitlayer.so -# - use precompiled header files -# -set_target_properties ( splitlayer  -   PROPERTIES PREFIX "" -   COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h" -   ) - -install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ splitlayer ) - diff --git a/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp b/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp deleted file mode 100644 index 7ea4ba3e..00000000 --- a/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp +++ /dev/null @@ -1,209 +0,0 @@ -//============================================================================= -//  MusE -//  Linux Music Editor -//  $Id:$ -// -//  Copyright (C) 2006 by Werner Schweer -// -//  This program is free software; you can redistribute it and/or modify -//  it under the terms of the GNU General Public License version 2. -// -//  This program is distributed in the hope that it will be useful, -//  but WITHOUT ANY WARRANTY; without even the implied warranty of -//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -//  GNU General Public License for more details. -// -//  You should have received a copy of the GNU General Public License -//  along with this program; if not, write to the Free Software -//  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -//============================================================================= - -#include "splitlayergui.h" -#include "splitlayer.h" -#include "midi.h" -#include "midievent.h" - -//--------------------------------------------------------- -//   SplitLayer -//--------------------------------------------------------- - -SplitLayer::SplitLayer(const char* name, const MempiHost* h) -   : Mempi(name, h) -      { -      gui = 0; -      } - -//--------------------------------------------------------- -//   SplitLayer -//--------------------------------------------------------- - -SplitLayer::~SplitLayer() -      { -      if (gui) -            delete gui; -      } - -//--------------------------------------------------------- -//   init -//--------------------------------------------------------- - -bool SplitLayer::init() -      { -      data.startVelo[0]   = 0; -      data.endVelo[0]     = 128; -      data.startPitch[0]  = 0; -      data.endPitch[0]    = 128; -      data.pitchOffset[0] = 0; -      data.veloOffset[0]  = 0; -      for (int i = 1; i < MIDI_CHANNELS; ++i) { -            data.startVelo[i]   = 0; -            data.endVelo[i]     = 0; -            data.startPitch[i]  = 0; -            data.endPitch[i]    = 0; -            data.pitchOffset[i] = 0; -            data.veloOffset[i]  = 0; -            } -      memset(notes, 0, 128 * sizeof(int)); -      learnMode = false; -      gui = new SplitLayerGui(this, 0); -      gui->hide(); -      gui->setWindowTitle(QString(name())); -      gui->init(); -      return false; -      } - -//--------------------------------------------------------- -//   getGeometry -//--------------------------------------------------------- - -void SplitLayer::getGeometry(int* x, int* y, int* w, int* h) const -      { -      QPoint pos(gui->pos()); -      QSize size(gui->size()); -      *x = pos.x(); -      *y = pos.y(); -      *w = size.width(); -      *h = size.height(); -      } - -//--------------------------------------------------------- -//   setGeometry -//--------------------------------------------------------- - -void SplitLayer::setGeometry(int x, int y, int w, int h) -      { -      gui->resize(QSize(w, h)); -      gui->move(QPoint(x, y)); -      } - -//--------------------------------------------------------- -//   process -//--------------------------------------------------------- - -void SplitLayer::process(unsigned, unsigned, MidiEventList* il, MidiEventList* ol) -      { -      for (iMidiEvent i = il->begin(); i != il->end(); ++i) { -            if (i->type() != ME_NOTEON && i->type() != ME_NOTEOFF) { -                  ol->insert(*i); -                  continue; -                  } -            int pitch = i->dataA(); -            int velo  = i->dataB(); -            if (learnMode) { -                  if (learnStartPitch) -                        data.startPitch[learnChannel] = pitch; -                  else -                        data.endPitch[learnChannel] = pitch; -                  learnMode = false; -                  gui->sendResetLearnMode(); -                  return; -                  } -            if (i->type() == ME_NOTEON && velo) { -                  for (int ch = 0; ch < MIDI_CHANNELS; ++ch) { -                        MidiEvent event(*i); -                        if (pitch >= data.startPitch[ch]  -                           && pitch <= data.endPitch[ch] -                           && velo >= data.startVelo[ch] -                           && velo <= data.endVelo[ch]) { -                              notes[pitch] |= (1 << ch); -                              event.setChannel(ch); -                              int p = pitch; -                              int v = velo; -                              p += data.pitchOffset[ch]; -                              if (p > 127) -                                    p = 127; -                              else if (p < 0) -                                    p = 0; -                              v += data.veloOffset[ch]; -                              if (v > 127) -                                    v = 127; -                              else if (v < 0) -                                    v = 0; -                              event.setA(p); -                              event.setB(v); -                              ol->insert(event); -                              } -                        } -                  } -            else { -                  for (int ch = 0; ch < MIDI_CHANNELS; ++ch) { -                        if (notes[pitch] & (1 << ch)) { -                              MidiEvent event(*i); -                              event.setChannel(ch); -                              int p = pitch + data.pitchOffset[ch]; -                              if (p < 0) -                                    p = 0; -                              else if (p > 127) -                                    p = 127; -                              event.setA(p); -                              ol->insert(event); -                              } -                        } -                  notes[pitch] = 0; -                  } -            } -      } - -//--------------------------------------------------------- -//   getInitData -//--------------------------------------------------------- - -void SplitLayer::getInitData(int* n, const unsigned char** p) const -      { -      *n = sizeof(data); -      *p = (unsigned char*)&data; -      } - -//--------------------------------------------------------- -//   setInitData -//--------------------------------------------------------- - -void SplitLayer::setInitData(int n, const unsigned char* p) -      { -      memcpy((void*)&data, p, n); -      if (gui) -            gui->init(); -      } - -//--------------------------------------------------------- -//   inst -//--------------------------------------------------------- - -static Mempi* instantiate(const char* name, const MempiHost* h) -      { -      return new SplitLayer(name, h); -      } - -extern "C" { -      static MEMPI descriptor = { -            "SplitLayer", -            "MusE Midi Splits and Layers", -            "0.1",      // version string -            MEMPI_FILTER, -            MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, -            instantiate -            }; - -      const MEMPI* mempi_descriptor() { return &descriptor; } -      } - diff --git a/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h b/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h deleted file mode 100644 index 7c213c01..00000000 --- a/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h +++ /dev/null @@ -1,69 +0,0 @@ -//============================================================================= -//  MusE -//  Linux Music Editor -//  $Id:$ -// -//  Copyright (C) 2006 by Werner Schweer -// -//  This program is free software; you can redistribute it and/or modify -//  it under the terms of the GNU General Public License version 2. -// -//  This program is distributed in the hope that it will be useful, -//  but WITHOUT ANY WARRANTY; without even the implied warranty of -//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -//  GNU General Public License for more details. -// -//  You should have received a copy of the GNU General Public License -//  along with this program; if not, write to the Free Software -//  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -//============================================================================= - -#ifndef __METRONOM_H__ -#define __METRONOM_H__ - -#include "../libmidiplugin/mempi.h" - -static const int MIDI_CHANNELS = 16; - -//--------------------------------------------------------- -//   SplitLayer   - splits and layers for midi input -//--------------------------------------------------------- - -class SplitLayer : public Mempi { - -   protected: -      struct InitData { -            int startVelo[MIDI_CHANNELS]; -            int endVelo[MIDI_CHANNELS]; -            int startPitch[MIDI_CHANNELS]; -            int endPitch[MIDI_CHANNELS]; -            int pitchOffset[MIDI_CHANNELS]; -            int veloOffset[MIDI_CHANNELS]; -            } data; -      int notes[128];   // bitmapped note-on/channel values -      bool learnMode; -      int learnChannel; -      bool learnStartPitch; - -      SplitLayerGui* gui; -      friend class SplitLayerGui; - -      virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*); - -   public: -      SplitLayer(const char* name, const MempiHost*); -      ~SplitLayer(); -      virtual bool init(); - -      virtual bool hasGui() const      { return true;             } -      virtual bool guiVisible() const  { return gui->isVisible(); } -      virtual void showGui(bool val)   { gui->setShown(val);      } -      virtual void getGeometry(int* x, int* y, int* w, int* h) const; -      virtual void setGeometry(int, int, int, int); - -      virtual void getInitData(int*, const unsigned char**) const; -      virtual void setInitData(int, const unsigned char*); -      }; - -#endif - diff --git a/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp b/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp deleted file mode 100644 index b5d2bdb4..00000000 --- a/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp +++ /dev/null @@ -1,263 +0,0 @@ -//============================================================================= -//  MusE -//  Linux Music Editor -//  $Id:$ -// -//  Copyright (C) 2006 by Werner Schweer -// -//  This program is free software; you can redistribute it and/or modify -//  it under the terms of the GNU General Public License version 2. -// -//  This program is distributed in the hope that it will be useful, -//  but WITHOUT ANY WARRANTY; without even the implied warranty of -//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -//  GNU General Public License for more details. -// -//  You should have received a copy of the GNU General Public License -//  along with this program; if not, write to the Free Software -//  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -//============================================================================= - -#include "splitlayergui.h" -#include "splitlayer.h" -#include "gui.h" - -//--------------------------------------------------------- -//   SplitLayerGui -//--------------------------------------------------------- - -SplitLayerGui::SplitLayerGui(SplitLayer* f, QWidget* parent) -  : QWidget(parent) -      { -      sl = f; -      QGridLayout* grid = new QGridLayout; -      grid->setSpacing(1); -      setLayout(grid); -      QSignalMapper* m1 = new QSignalMapper(this); -      QSignalMapper* m2 = new QSignalMapper(this); -      QSignalMapper* m3 = new QSignalMapper(this); -      QSignalMapper* m4 = new QSignalMapper(this); -      QSignalMapper* m5 = new QSignalMapper(this); -      QSignalMapper* m6 = new QSignalMapper(this); -      connect(m1, SIGNAL(mapped(int)), SLOT(startPitchChanged(int))); -      connect(m2, SIGNAL(mapped(int)), SLOT(endPitchChanged(int))); -      connect(m3, SIGNAL(mapped(int)), SLOT(pitchOffsetChanged(int))); -      connect(m4, SIGNAL(mapped(int)), SLOT(startVeloChanged(int))); -      connect(m5, SIGNAL(mapped(int)), SLOT(endVeloChanged(int))); -      connect(m6, SIGNAL(mapped(int)), SLOT(veloOffsetChanged(int))); -      for (int i = 0; i < MIDI_CHANNELS; ++i) { -            QLabel* l = new QLabel(QString("Ch %1").arg(i+1)); -            grid->addWidget(l, i, 0); - -            p1[i] = new Awl::PitchEdit(0); -            p1[i]->setToolTip(tr("start pitch for split")); -            connect(p1[i], SIGNAL(valueChanged(int)), m1, SLOT(map())); -            m1->setMapping(p1[i], i); - -            a1[i] = new QAction(this); -            a1[i]->setToolTip(tr("enable learn mode for start pitch")); -            a1[i]->setCheckable(true); -            QIcon icon; -            icon.addFile(":/xpm/recordOn.svg",  ICON_SIZE, QIcon::Normal, QIcon::On); -            icon.addFile(":/xpm/recordOff.svg", ICON_SIZE, QIcon::Normal, QIcon::Off); -            a1[i]->setIcon(icon); -            a1[i]->setData(i); -            QToolButton* rb1  = new QToolButton; -            rb1->setDefaultAction(a1[i]); -            connect(rb1, SIGNAL(triggered(QAction*)), SLOT(learnStartPitch(QAction*))); - -            p2[i] = new Awl::PitchEdit(0); -            p2[i]->setToolTip(tr("end pitch for split")); -            connect(p2[i], SIGNAL(valueChanged(int)), m2, SLOT(map())); -            m2->setMapping(p2[i], i); - -            a2[i] = new QAction(this); -            a2[i]->setToolTip(tr("enable learn mode for end pitch")); -            a2[i]->setCheckable(true); -            a2[i]->setIcon(icon); -            a2[i]->setData(i); -            QToolButton* rb2  = new QToolButton; -            rb2->setDefaultAction(a2[i]); -            connect(rb2, SIGNAL(triggered(QAction*)), SLOT(learnEndPitch(QAction*))); - -            p3[i] = new Awl::PitchEdit(0); -            p3[i]->setToolTip(tr("pitch offset for split")); -            p3[i]->setDeltaMode(true); -            connect(p3[i], SIGNAL(valueChanged(int)), m3, SLOT(map())); -            m3->setMapping(p3[i], i); - -            p4[i] = new QSpinBox; -            p4[i]->setRange(0, 127); -            p4[i]->setToolTip(tr("start velocity for split")); -            connect(p4[i], SIGNAL(valueChanged(int)), m4, SLOT(map())); -            m4->setMapping(p4[i], i); - -            p5[i] = new QSpinBox; -            p5[i]->setRange(0, 127); -            p5[i]->setToolTip(tr("end velocity for split")); -            connect(p5[i], SIGNAL(valueChanged(int)), m5, SLOT(map())); -            m5->setMapping(p5[i], i); - -            p6[i] = new QSpinBox; -            p6[i]->setRange(-127, 127); -            p6[i]->setToolTip(tr("velocity offset for split")); -            connect(p6[i], SIGNAL(valueChanged(int)), m6, SLOT(map())); -            m6->setMapping(p6[i], i); - -            grid->addWidget(p1[i], i, 1); -            grid->addWidget(rb1,   i, 2); -            grid->addWidget(p2[i], i, 3); -            grid->addWidget(rb2,   i, 4); -            grid->addWidget(p3[i], i, 5); -            grid->addWidget(p4[i], i, 7); -            grid->addWidget(p5[i], i, 8); -            grid->addWidget(p6[i], i, 9); -            } -      QFrame* fr = new QFrame; -      fr->setFrameStyle(QFrame::VLine | QFrame::Raised); -      fr->setLineWidth(4); -      grid->addWidget(fr, 0, 6, MIDI_CHANNELS, 1); - -      int filedes[2];         // 0 - reading   1 - writing -      if (pipe(filedes) == -1) { -            perror("SplitLayerGui:creating pipe"); -            exit(-1); -            } -      fd2 = filedes[0]; -      fd1 = filedes[1]; -       -      QSocketNotifier* socket = new QSocketNotifier(fd2,  -         QSocketNotifier::Read, this); -      connect(socket, SIGNAL(activated(int)), SLOT(resetLearnMode(int))); -      init(); -      } - -//--------------------------------------------------------- -//   init -//--------------------------------------------------------- - -void SplitLayerGui::init() -      { -      for (int i = 0; i < MIDI_CHANNELS; ++i) { -            p1[i]->setValue(sl->data.startPitch[i]); -            p2[i]->setValue(sl->data.endPitch[i]); -            p3[i]->setValue(sl->data.pitchOffset[i]); -            p4[i]->setValue(sl->data.startVelo[i]); -            p5[i]->setValue(sl->data.endVelo[i]); -            p6[i]->setValue(sl->data.veloOffset[i]); -            } -      } - -//--------------------------------------------------------- -//   learnStartPitch -//--------------------------------------------------------- - -void SplitLayerGui::learnStartPitch(QAction* a) -      { -      sl->learnChannel = a->data().toInt(); -      sl->learnStartPitch = true; -      sl->learnMode = true; -      for (int i = 0; i < MIDI_CHANNELS; ++i) { -            if (a != a1[i]) -                  a1[i]->setChecked(false); -            if (a != a2[i]) -                  a2[i]->setChecked(false); -            } -      } - -//--------------------------------------------------------- -//   learnEndPitch -//--------------------------------------------------------- - -void SplitLayerGui::learnEndPitch(QAction* a) -      { -      sl->learnChannel = a->data().toInt(); -      sl->learnStartPitch = false; -      sl->learnMode = true; -      for (int i = 0; i < MIDI_CHANNELS; ++i) { -            if (a != a1[i]) -                  a1[i]->setChecked(false); -            if (a != a2[i]) -                  a2[i]->setChecked(false); -            } -      } - -//--------------------------------------------------------- -//   startPitchChanged -//--------------------------------------------------------- - -void SplitLayerGui::startPitchChanged(int n) -      { -      sl->data.startPitch[n] = p1[n]->value(); -      } - -//--------------------------------------------------------- -//   endPitchChanged -//--------------------------------------------------------- - -void SplitLayerGui::endPitchChanged(int n) -      { -      sl->data.endPitch[n] = p2[n]->value(); -      } - -//--------------------------------------------------------- -//   pitchOffsetChanged -//--------------------------------------------------------- - -void SplitLayerGui::pitchOffsetChanged(int n) -      { -      sl->data.pitchOffset[n] = p3[n]->value(); -      } - -//--------------------------------------------------------- -//   startVeloChanged -//--------------------------------------------------------- - -void SplitLayerGui::startVeloChanged(int n) -      { -      sl->data.startVelo[n] = p4[n]->value(); -      } - -//--------------------------------------------------------- -//   endVeloChanged -//--------------------------------------------------------- - -void SplitLayerGui::endVeloChanged(int n) -      { -      sl->data.endVelo[n] = p5[n]->value(); -      } - -//--------------------------------------------------------- -//   veloOffsetChanged -//--------------------------------------------------------- - -void SplitLayerGui::veloOffsetChanged(int n) -      { -      sl->data.veloOffset[n] = p6[n]->value(); -      } - -//--------------------------------------------------------- -//   resetLearnMode -//--------------------------------------------------------- - -void SplitLayerGui::resetLearnMode(int fd) -      { -      char buffer[16]; -      read(fd, buffer, 16); - -      for (int i = 0; i < MIDI_CHANNELS; ++i) { -            a1[i]->setChecked(false); -            a2[i]->setChecked(false); -            } -      init(); -      } - -//--------------------------------------------------------- -//   sendResetLearnMode -//--------------------------------------------------------- - -void SplitLayerGui::sendResetLearnMode() -      { -      write(fd1, "X", 1); -      } - diff --git a/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h b/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h deleted file mode 100644 index 4f2006ca..00000000 --- a/attic/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h +++ /dev/null @@ -1,65 +0,0 @@ -//============================================================================= -//  MusE -//  Linux Music Editor -//  $Id:$ -// -//  Copyright (C) 2006 by Werner Schweer -// -//  This program is free software; you can redistribute it and/or modify -//  it under the terms of the GNU General Public License version 2. -// -//  This program is distributed in the hope that it will be useful, -//  but WITHOUT ANY WARRANTY; without even the implied warranty of -//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -//  GNU General Public License for more details. -// -//  You should have received a copy of the GNU General Public License -//  along with this program; if not, write to the Free Software -//  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -//============================================================================= - -#ifndef __SPLITLAYERGUI_H__ -#define __SPLITLAYERGUI_H__ - -#include "awl/pitchedit.h" - -class SplitLayer; - -//--------------------------------------------------------- -//   SplitLayerGui -//--------------------------------------------------------- - -class SplitLayerGui : public QWidget { -      Q_OBJECT -      SplitLayer* sl; - -      Awl::PitchEdit* p1[16]; -      Awl::PitchEdit* p2[16]; -      Awl::PitchEdit* p3[16]; -      QSpinBox* p4[16]; -      QSpinBox* p5[16]; -      QSpinBox* p6[16]; - -      QAction* a1[16]; -      QAction* a2[16]; -      int fd1, fd2; - -   private slots: -      void learnStartPitch(QAction*); -      void learnEndPitch(QAction*); -      void startPitchChanged(int); -      void endPitchChanged(int); -      void pitchOffsetChanged(int); -      void resetLearnMode(int); -      void startVeloChanged(int); -      void endVeloChanged(int); -      void veloOffsetChanged(int); - -   public: -      SplitLayerGui(SplitLayer*, QWidget* parent=0); -      void init(); -      void sendResetLearnMode(); -      }; - -#endif -  | 
