diff options
Diffstat (limited to 'muse_qt4_evolution/midiplugins')
51 files changed, 0 insertions, 5947 deletions
diff --git a/muse_qt4_evolution/midiplugins/CMakeLists.txt b/muse_qt4_evolution/midiplugins/CMakeLists.txt deleted file mode 100644 index 465e1983..00000000 --- a/muse_qt4_evolution/midiplugins/CMakeLists.txt +++ /dev/null @@ -1,36 +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. -#============================================================================= - -subdirs( - libmidiplugin - splitlayer - filter - metronom - transform - trigg - dump - drumglue - ) - -set ( CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SHARED -fPIC" - ) - -set ( CMAKE_LDD_FLAGS -module -avoid-version ) diff --git a/muse_qt4_evolution/midiplugins/drumglue/CMakeLists.txt b/muse_qt4_evolution/midiplugins/drumglue/CMakeLists.txt deleted file mode 100644 index f824c54b..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/CMakeLists.txt +++ /dev/null @@ -1,50 +0,0 @@ -#============================================================================= -# MusE -# Linux Music Editor -# $Id:$ -# -# Copyright (C) 2002-2008 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 ( drumglue_mocs drumgluegui.h globalinstrumentview.h outputinstrumentview.h ) -QT4_WRAP_UI ( drumglue_uis drumgluegui.ui globalinstrumentview.ui outputinstrumentview.ui ) - -add_library ( drumglue SHARED - drumglue.cpp - drumgluegui.cpp - drumgluegui.h - globalinstrumentview.cpp - globalinstrumentview.h - outputinstrumentview.cpp - outputinstrumentview.h - ${drumglue_mocs} - ${drumglue_uis} - ) - -target_link_libraries( drumglue - midiplugin awl - ${QT_LIBRARIES} - ) - -# - tell cmake to name target name.so instead of -# libname.so -# - use precompiled header files -set_target_properties ( drumglue - PROPERTIES PREFIX "" - COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h" - ) - -install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ drumglue ) - diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp b/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp deleted file mode 100644 index 7a9b6ed2..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp +++ /dev/null @@ -1,250 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// -// drumglue - filter -// -// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se) -// (C) Copyright 2005- Werner Schweer (ws@seh.de) -// Copyright: See COPYING file that comes with this distribution -//========================================================= - -#include "drumgluegui.h" -#include "drumglue.h" -#include "midi.h" -#include "midievent.h" - - - -//--------------------------------------------------------- -// DrumInstrument - get next index -// - next output instrument to use -//--------------------------------------------------------- -int DrumInstrument::getNextIndex(int /*velocity*/) -{ - // for now we simply do a round robin - // - // future improvements are to keep track of - // the time since the last hit and the - // weight set for each instrument. - // the incoming velocity should be checked that it's in range - if (outputInstruments.size() == 0) - return -1; - - if (lastOutputIndex+1 > outputInstruments.size()-1) - return 0; - else - return lastOutputIndex+1; -} - -//--------------------------------------------------------- -// DrumInstrument - get velocity -// - velocity value to use -//--------------------------------------------------------- -int DrumInstrument::getVelocity(int /*index*/, int velocity) -{ - // for now we just return the same velocity - // future improvements are to allow for some - return velocity; -} - - -//--------------------------------------------------------- -// DrumGlue - constructor -//--------------------------------------------------------- -DrumGlue::DrumGlue(const char* name, const MempiHost* h) - : Mempi(name, h) - { - gui = 0; - saveData = NULL; - } - -//--------------------------------------------------------- -// DrumGlue - destructor -//--------------------------------------------------------- -DrumGlue::~DrumGlue() - { - if (gui) - delete gui; - if (saveData) - delete saveData; - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- - -bool DrumGlue::init() - { - gui = new DrumGlueGui(this, 0); - gui->setWindowTitle("MusE: "+QString(name())); - gui->show(); - return false; - } - -//--------------------------------------------------------- -// getGeometry -//--------------------------------------------------------- - -void DrumGlue::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 DrumGlue::setGeometry(int x, int y, int w, int h) - { - gui->resize(QSize(w, h)); - gui->move(QPoint(x, y)); - } - -//--------------------------------------------------------- -// process -//--------------------------------------------------------- - -void DrumGlue::process(unsigned , unsigned , MidiEventList* il, MidiEventList* ol) - { - - for (iMidiEvent i = il->begin(); i != il->end(); ++i) { - MidiEvent temp=*i; - if (temp.isNote() && !temp.isNoteOff()) - { - foreach(DrumInstrument *di, drumInstruments) { - if (temp.dataA() == di->inKey) { - int inVelocity = temp.dataB(); - int instrumentIdx = di->getNextIndex(inVelocity); - if (instrumentIdx==-1) { - // no instrument defined, yet, skip it - break; - } - int outKey = di->outputInstruments[instrumentIdx]->outKey; - int outVelocity= di->getVelocity(instrumentIdx, inVelocity); - printf("inKey=%d outKey =%d outVelocity=%d instrumentIdx=%d\n", di->inKey, outKey, outVelocity, instrumentIdx); - temp.setA(outKey); - temp.setB(outVelocity); - - ol->insert(temp); // note on - - temp.setB(0); - ol->insert(temp); // note off - - di->lastOutputIndex = instrumentIdx; - di->outputTime = temp.time(); - break; - } - } - } - if (temp.isNoteOff()) ; // we just throw it away, we will insert noteoffs for each note on - } - } - -// -// getInitData - return configuration to MusE -// -void DrumGlue::getInitData(int* n, const unsigned char** p) const - { - QString saveStr; - - foreach (DrumInstrument *di, drumInstruments) { - QString drumline = "DRUM " +di->name + " " + QString("%1").arg(di->inKey) + "\n"; - saveStr.append(drumline); - foreach (DrumOutputInstrument *doi, di->outputInstruments) { - QString outputline = "OUTPUT " + - QString("%1").arg(doi->outKey) + " " + - QString("%1").arg(doi->lowestVelocity) + " " + - QString("%1").arg(doi->highestVelocity) + " " + - QString("%1").arg(doi->prefer) + " " + - QString("%1").arg(doi->preferFast) + "\n"; - saveStr.append(outputline); - - } - } - - *n = saveStr.length(); - - if (saveData) - delete saveData; - - - saveData = new unsigned char[saveStr.length()]; - - strncpy((char*)saveData, saveStr.toLatin1().data(), saveStr.length()); - saveData[saveStr.length()]=0; - printf("getInitData -\n%s\n",saveData); - - *p = saveData; - - } - -void DrumGlue::setInitData(int n, const unsigned char* p) - { - if (saveData) - delete saveData; - saveData = new unsigned char[n+1]; - - strncpy((char*)saveData,(char*)p,n); - saveData[n]=0; - - QString loadStr = (char*)saveData; - printf("setInitData -\n%s\n",saveData); - - QStringList loadList = loadStr.split("\n"); - - DrumInstrument *currentInstrument=NULL; - foreach (QString line, loadList) { - QStringList splitLine = line.split(" "); - if (splitLine[0] == "DRUM") { - if (currentInstrument) - drumInstruments.append(currentInstrument); - - currentInstrument = new DrumInstrument(); - currentInstrument->name = splitLine[1]; - currentInstrument->inKey = splitLine[2].toInt(); - } - if (splitLine[0] == "OUTPUT") { - DrumOutputInstrument *doi = new DrumOutputInstrument; - doi->outKey = splitLine[1].toInt(); - doi->lowestVelocity = splitLine[2].toInt(); - doi->highestVelocity = splitLine[3].toInt(); - doi->prefer = splitLine[4].toInt(); - doi->preferFast = splitLine[5].toInt(); - currentInstrument->outputInstruments.append(doi); - } - } - if (currentInstrument) - drumInstruments.append(currentInstrument); - - if (gui) - gui->init(); - } - -//--------------------------------------------------------- -// inst -//--------------------------------------------------------- - -static Mempi* instantiate(const char* name, const MempiHost* h) - { - return new DrumGlue(name, h); - } - -extern "C" { - static MEMPI descriptor = { - "DrumGlue", - "Drum instrument mux filter", - "0.1", // filter version string - MEMPI_FILTER, // plugin type - MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, - instantiate - }; - - const MEMPI* mempi_descriptor() { return &descriptor; } - } - diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumglue.h b/muse_qt4_evolution/midiplugins/drumglue/drumglue.h deleted file mode 100644 index 49a19b55..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/drumglue.h +++ /dev/null @@ -1,86 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// -// drumglue - filter -// -// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se) -// (C) Copyright 2005- Werner Schweer (ws@seh.de) -// Copyright: See COPYING file that comes with this distribution -//========================================================= - -#ifndef __DRUMGLUE_H__ -#define __DRUMGLUE_H__ - -#include <QtGui> - -#include "../libmidiplugin/mempi.h" - -#include "drumgluegui.h" -//--------------------------------------------------------- -// drumglue - filter -//--------------------------------------------------------- - -struct DrumOutputInstrument { - int outKey; // key to send - int lowestVelocity; // lower velocity valid for this instrument - int highestVelocity; // highest velocity valid for this instrument - bool prefer; // true if this instrument is preferred - bool preferFast; // true if this instrument is preferred for fast transitions -}; - -class DrumInstrument { - public: - DrumInstrument() - { - inKey=0; - lastOutputIndex=0; - outputTime=0; - } - - int getNextIndex(int velocity); - int getVelocity(int index, int velocity); - - - int inKey; // the key which triggers this instrument - QString name; - QList <DrumOutputInstrument *> outputInstruments; - -// storage of runtime variables - int lastOutputIndex; - unsigned int outputTime; -}; - - - - -class DrumGlue : public Mempi { - friend class DrumGlueGui; - friend class GlobalInstrumentView; - friend class OutputInstrumentView; - - QList<DrumInstrument *> drumInstruments; - - DrumGlueGui* gui; - - mutable unsigned char *saveData; - - virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*); - - public: - DrumGlue(const char* name, const MempiHost*); - ~DrumGlue(); - 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/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.cpp b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.cpp deleted file mode 100644 index 562adf2c..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.cpp +++ /dev/null @@ -1,68 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// -// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se) -// (C) Copyright 2005- Werner Schweer (ws@seh.de) -// Copyright: See COPYING file that comes with this distribution -//========================================================= - -#include "drumgluegui.h" -#include "drumglue.h" -#include "globalinstrumentview.h" - -//--------------------------------------------------------- -// DrumGlueGui -//--------------------------------------------------------- - -DrumGlueGui::DrumGlueGui(DrumGlue* f, QWidget* parent) - : QDialog(parent) - { - drumGlue = f; - setupUi(this); - instrumentsTabWidget->clear(); - - connect (addInstrumentButton, SIGNAL(clicked()), this, SLOT(addInstrument())); - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- -void DrumGlueGui::init() - { - foreach(DrumInstrument *di, drumGlue->drumInstruments) { - GlobalInstrumentView *giView = new GlobalInstrumentView(drumGlue,this, di->name); - instrumentsTabWidget->addTab(giView, di->name); - } - } - -//--------------------------------------------------------- -// addInstrument -//--------------------------------------------------------- -void DrumGlueGui::addInstrument() - { - bool ok; - QString text = QInputDialog::getText(this, tr("Instrument name"), - tr("Name of instrument:"), QLineEdit::Normal, - "", &ok); - if (ok && !text.isEmpty()) { - DrumInstrument *di = new DrumInstrument(); - di->name = text; - drumGlue->drumInstruments.append(di); - GlobalInstrumentView *giView = new GlobalInstrumentView(drumGlue,this, text); - instrumentsTabWidget->addTab(giView, text); - } - } - -//--------------------------------------------------------- -// removeInstrument -//--------------------------------------------------------- -void DrumGlueGui::removeInstrument() - { - int ret = QMessageBox::warning(this, tr("Remove instrument"), - tr("Are you sure you want to remove current instrument?"), - QMessageBox::No, - QMessageBox::Yes); - if (ret == QMessageBox::Yes) - instrumentsTabWidget->removeTab(instrumentsTabWidget->currentIndex()); - } diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.h b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.h deleted file mode 100644 index cdbac7a3..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.h +++ /dev/null @@ -1,41 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// -// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se) -// (C) Copyright 2005- Werner Schweer (ws@seh.de) -// Copyright: See COPYING file that comes with this distribution -//========================================================= - -#ifndef __DRUMGLUEGUI_H__ -#define __DRUMGLUEGUI_H__ - -//#include "ui_drumglue.h" -#include "ui_drumgluegui.h" - - -//--------------------------------------------------------- -// DrumGlueGui -//--------------------------------------------------------- -class DrumGlue; - -class DrumGlueGui : public QDialog, public Ui::DrumGlueBase { - Q_OBJECT - - DrumGlue* drumGlue; - - signals: - void hideWindow(); - - public: - DrumGlueGui(DrumGlue*, QWidget* parent=0); - void init(); - - private slots: - void addInstrument(); - void removeInstrument(); - - }; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.ui b/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.ui deleted file mode 100644 index ddd402c4..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/drumgluegui.ui +++ /dev/null @@ -1,91 +0,0 @@ -<ui version="4.0" > - <class>DrumGlueBase</class> - <widget class="QDialog" name="DrumGlueBase" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>444</width> - <height>270</height> - </rect> - </property> - <property name="windowTitle" > - <string>Drumglue - midi filter</string> - </property> - <layout class="QGridLayout" > - <item row="0" column="0" > - <layout class="QVBoxLayout" > - <item> - <layout class="QHBoxLayout" > - <item> - <widget class="QPushButton" name="addInstrumentButton" > - <property name="text" > - <string>Add instrument</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="pushButton" > - <property name="text" > - <string>Remove current</string> - </property> - </widget> - </item> - <item> - <spacer> - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" > - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QLabel" name="label" > - <property name="font" > - <font> - <family>Arial</family> - <pointsize>14</pointsize> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="text" > - <string>DrumGlue 0.1</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QTabWidget" name="instrumentsTabWidget" > - <property name="tabPosition" > - <enum>QTabWidget::North</enum> - </property> - <property name="tabShape" > - <enum>QTabWidget::Rounded</enum> - </property> - <property name="currentIndex" > - <number>0</number> - </property> - <property name="elideMode" > - <enum>Qt::ElideLeft</enum> - </property> - <widget class="QWidget" name="Tab1" > - <attribute name="title" > - <string>Snare</string> - </attribute> - </widget> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.cpp b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.cpp deleted file mode 100644 index 5ca81054..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.cpp +++ /dev/null @@ -1,153 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// -// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se) -// (C) Copyright 2005- Werner Schweer (ws@seh.de) -// Copyright: See COPYING file that comes with this distribution -//========================================================= - -#include "globalinstrumentview.h" -#include "outputinstrumentview.h" -#include "drumglue.h" - -//--------------------------------------------------------- -// GlobalInstrumentView -//--------------------------------------------------------- - -GlobalInstrumentView::GlobalInstrumentView(DrumGlue* f, QWidget* parent, QString name) - : QWidget(parent) - { - setupUi(this); - drumGlue = f; - - instrumentName=name; - - DrumInstrument *di =getCurrentOutputInstrument(); - printf("di->inKey=%d\n", di->inKey); - if (di) - inKeySpinBox->setValue(di->inKey); - - connect (addOutputButton, SIGNAL(clicked()), this, SLOT(addOutput())); - connect (editOutputButton, SIGNAL(clicked()), this, SLOT(editOutput())); - connect (removeOutputButton, SIGNAL(clicked()), this, SLOT(removeOutput())); - connect (inKeySpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateInKey())); - updateList(); - } - - -DrumInstrument *GlobalInstrumentView::getCurrentOutputInstrument() -{ - // get the global instrument belonging to this instance - QList<DrumInstrument *>::iterator iter = drumGlue->drumInstruments.begin(); - while(iter != drumGlue->drumInstruments.end()) { - printf("name = %s instrumentName= %s\n", (*iter)->name.toLatin1().data(), instrumentName.toLatin1().data()); - if ((*iter)->name == instrumentName) { - break; - } - iter++; - } - if (iter == drumGlue->drumInstruments.end()) { - printf("Reached the end without getting a hit\n"); - return NULL; - } - return *iter; -} - -void GlobalInstrumentView::addOutput() - { - DrumInstrument *di = getCurrentOutputInstrument(); - if (!di) - return; - // create new output - DrumOutputInstrument *doi = new DrumOutputInstrument; - di->outputInstruments.append(doi); - - OutputInstrumentView *outputView = new OutputInstrumentView(doi,this); - int res = outputView->exec(); - if (res == QDialog::Rejected) { - // roll back - di->outputInstruments.removeAll(doi); - delete doi; - } - delete outputView; - updateList(); - } - -void GlobalInstrumentView::editOutput() - { - DrumInstrument *di = getCurrentOutputInstrument(); - - int currIdx = outputListWidget->currentRow(); - if (currIdx < 0 || currIdx >= di->outputInstruments.size()) { - printf("out of range!!\n"); - return; - } - - DrumOutputInstrument *doi = di->outputInstruments[currIdx]; - - DrumOutputInstrument doi_backup = *doi; - OutputInstrumentView *outputView = new OutputInstrumentView(doi,this); - int res = outputView->exec(); - if (res == QDialog::Rejected) { - // roll back - *doi = doi_backup; - } - delete outputView; - updateList(); - } - -void GlobalInstrumentView::removeOutput() - { - int ret = QMessageBox::warning(this, tr("Remove output"), - tr("Are you sure you want to remove current output?"), - QMessageBox::No, - QMessageBox::Yes); - if (ret == QMessageBox::Yes) { - DrumInstrument *di = getCurrentOutputInstrument(); - - int currIdx = outputListWidget->currentRow(); - if (currIdx < 0 || currIdx >= di->outputInstruments.size()) { - printf("out of range!!\n"); - return; - } - - DrumOutputInstrument *doi = di->outputInstruments[currIdx]; - di->outputInstruments.removeAll(doi); - delete doi; - } - updateList(); - } - -void GlobalInstrumentView::updateList() -{ - printf("updateList\n"); - outputListWidget->clear(); - - QList<DrumInstrument *>::iterator iter = drumGlue->drumInstruments.begin(); - while(iter != drumGlue->drumInstruments.end()) { - printf("name = %s instrumentName= %s\n", (*iter)->name.toLatin1().data(), instrumentName.toLatin1().data()); - if ((*iter)->name == instrumentName) { - printf("updating current list\n"); - foreach (DrumOutputInstrument *doi, (*iter)->outputInstruments) { - QListWidgetItem *outDrumItem = new QListWidgetItem(outputListWidget); - QString str = QString("%1 %2 %3 %4 %5").arg(doi->outKey).arg(doi->lowestVelocity).arg(doi->highestVelocity).arg(doi->prefer).arg(doi->preferFast); - printf("setting item to %s\n",str.toLatin1().data()); - outDrumItem->setText(str); - } - } - iter++; - } -} - -void GlobalInstrumentView::updateInKey() -{ - QList<DrumInstrument *>::iterator iter = drumGlue->drumInstruments.begin(); - while(iter != drumGlue->drumInstruments.end()) { - if ((*iter)->name == instrumentName) { - (*iter)->inKey = inKeySpinBox->value(); - } - iter++; - } - -} diff --git a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.h b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.h deleted file mode 100644 index f923ec49..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.h +++ /dev/null @@ -1,41 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// -// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se) -// (C) Copyright 2005- Werner Schweer (ws@seh.de) -// Copyright: See COPYING file that comes with this distribution -//========================================================= - -#ifndef __GLOBALINSTRUMENTVIEW_H__ -#define __GLOBALINSTRUMENTVIEW_H__ - -#include "ui_globalinstrumentview.h" - -#include "drumglue.h" -//--------------------------------------------------------- -// GlobalInstrumentView -//--------------------------------------------------------- -class DrumGlue; - -class GlobalInstrumentView : public QWidget, public Ui::GlobalInstrumentViewBase { - Q_OBJECT - - DrumGlue *drumGlue; - QString instrumentName; - DrumInstrument *getCurrentOutputInstrument(); - - public: - GlobalInstrumentView(DrumGlue*, QWidget* parent, QString name); - private slots: - void addOutput(); - void editOutput(); - void removeOutput(); - void updateInKey(); - - public slots: - void updateList(); - }; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.ui b/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.ui deleted file mode 100644 index e817906a..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/globalinstrumentview.ui +++ /dev/null @@ -1,102 +0,0 @@ -<ui version="4.0" > - <class>GlobalInstrumentViewBase</class> - <widget class="QWidget" name="GlobalInstrumentViewBase" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>386</width> - <height>256</height> - </rect> - </property> - <property name="windowTitle" > - <string>Form</string> - </property> - <layout class="QHBoxLayout" > - <property name="spacing" > - <number>-1</number> - </property> - <item> - <layout class="QHBoxLayout" > - <property name="spacing" > - <number>-1</number> - </property> - <item> - <layout class="QVBoxLayout" > - <property name="spacing" > - <number>-1</number> - </property> - <item> - <widget class="QLabel" name="label_2" > - <property name="text" > - <string>Midi input key:</string> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="inKeySpinBox" > - <property name="minimum" > - <number>1</number> - </property> - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="addOutputButton" > - <property name="text" > - <string>Add output</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="removeOutputButton" > - <property name="text" > - <string>Remove output</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="editOutputButton" > - <property name="text" > - <string>Edit output</string> - </property> - </widget> - </item> - <item> - <spacer> - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" > - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item> - <layout class="QVBoxLayout" > - <item> - <widget class="QLabel" name="label" > - <property name="text" > - <string>Midi output definitions:</string> - </property> - </widget> - </item> - <item> - <widget class="QListWidget" name="outputListWidget" /> - </item> - </layout> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.cpp b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.cpp deleted file mode 100644 index 2e4c97ce..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.cpp +++ /dev/null @@ -1,45 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filtergui.cpp,v 1.4 2005/11/06 17:49:34 wschweer Exp $ -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "outputinstrumentview.h" -#include "drumglue.h" -#include <QtGui> -//--------------------------------------------------------- -// OutputInstrumentView -//--------------------------------------------------------- - -OutputInstrumentView::OutputInstrumentView(DrumOutputInstrument* doi, QWidget* parent) - : QDialog(parent) - { - outputInstrument= doi; - setupUi(this); - - midiOutputSpinBox->setValue(outputInstrument->outKey); - highRangeSlider->setValue(outputInstrument->highestVelocity); - lowRangeSlider->setValue(outputInstrument->lowestVelocity); - preferWhenFastCheckBox->setChecked(outputInstrument->preferFast); - highProbabiltyCheckBox->setChecked(outputInstrument->prefer); - - - connect(midiOutputSpinBox,SIGNAL(valueChanged(int)),this, SLOT(update())); - connect(highRangeSlider,SIGNAL(valueChanged(int)),this, SLOT(update())); - connect(lowRangeSlider,SIGNAL(valueChanged(int)),this, SLOT(update())); - connect(preferWhenFastCheckBox,SIGNAL(stateChanged(int)),this, SLOT(update())); - connect(highProbabiltyCheckBox,SIGNAL(stateChanged(int)),this, SLOT(update())); - } - - -void OutputInstrumentView::update() -{ - outputInstrument->outKey = midiOutputSpinBox->value(); - outputInstrument->highestVelocity = highRangeSlider->value(); - outputInstrument->lowestVelocity = lowRangeSlider->value(); - outputInstrument->preferFast = preferWhenFastCheckBox->isChecked(); - outputInstrument->prefer = highProbabiltyCheckBox->isChecked(); - -} diff --git a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.h b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.h deleted file mode 100644 index b2b5dc12..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.h +++ /dev/null @@ -1,31 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// -// (C) Copyright 2008 Robert Jonsson (rj@spamatica.se) -// (C) Copyright 2005- Werner Schweer (ws@seh.de) -// Copyright: See COPYING file that comes with this distribution -//========================================================= - -#ifndef __OUTPUTINSTRUMENTVIEW_H__ -#define __OUTPUTINSTRUMENTVIEW_H__ - -#include "ui_outputinstrumentview.h" - -#include "drumglue.h" -//--------------------------------------------------------- -// OutputInstrumentView -//--------------------------------------------------------- -class DrumGlue; - -class OutputInstrumentView : public QDialog, public Ui::OutputInstrumentViewBase { - Q_OBJECT - DrumOutputInstrument *outputInstrument; - public: - OutputInstrumentView(DrumOutputInstrument*, QWidget* parent); - private slots: - void update(); - }; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.ui b/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.ui deleted file mode 100644 index 250c2010..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/outputinstrumentview.ui +++ /dev/null @@ -1,292 +0,0 @@ -<ui version="4.0" > - <class>OutputInstrumentViewBase</class> - <widget class="QDialog" name="OutputInstrumentViewBase" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>449</width> - <height>150</height> - </rect> - </property> - <property name="windowTitle" > - <string>Dialog</string> - </property> - <layout class="QVBoxLayout" > - <item> - <layout class="QVBoxLayout" > - <item> - <layout class="QHBoxLayout" > - <item> - <widget class="QLabel" name="label" > - <property name="text" > - <string>Midi output key:</string> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="midiOutputSpinBox" > - <property name="minimum" > - <number>1</number> - </property> - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="highProbabiltyCheckBox" > - <property name="toolTip" > - <string>If this instrument is to be used more often than others check this box.</string> - </property> - <property name="statusTip" > - <string/> - </property> - <property name="text" > - <string>Prefer always</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="preferWhenFastCheckBox" > - <property name="toolTip" > - <string>If this instrument is to be used more often when used often, check this checkbox.</string> - </property> - <property name="statusTip" > - <string/> - </property> - <property name="text" > - <string>Prefer when fast</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_4" > - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" > - <item> - <widget class="QLabel" name="label_3" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Preferred" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string> [low]</string> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line_2" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line_3" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_4" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Preferred" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="layoutDirection" > - <enum>Qt::RightToLeft</enum> - </property> - <property name="text" > - <string> [high]</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" > - <item> - <layout class="QHBoxLayout" > - <item> - <widget class="QLabel" name="lowRangeLabel" > - <property name="minimumSize" > - <size> - <width>24</width> - <height>0</height> - </size> - </property> - <property name="frameShape" > - <enum>QFrame::Box</enum> - </property> - <property name="text" > - <string>1</string> - </property> - </widget> - </item> - <item> - <widget class="QSlider" name="lowRangeSlider" > - <property name="minimum" > - <number>1</number> - </property> - <property name="maximum" > - <number>127</number> - </property> - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QLabel" name="label_5" > - <property name="text" > - <string> use in range </string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" > - <item> - <widget class="QLabel" name="highRangeLabel" > - <property name="minimumSize" > - <size> - <width>24</width> - <height>0</height> - </size> - </property> - <property name="frameShape" > - <enum>QFrame::Box</enum> - </property> - <property name="text" > - <string>127</string> - </property> - </widget> - </item> - <item> - <widget class="QSlider" name="highRangeSlider" > - <property name="minimum" > - <number>1</number> - </property> - <property name="maximum" > - <number>127</number> - </property> - <property name="value" > - <number>127</number> - </property> - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox" > - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="standardButtons" > - <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>buttonBox</sender> - <signal>accepted()</signal> - <receiver>OutputInstrumentViewBase</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel" > - <x>248</x> - <y>254</y> - </hint> - <hint type="destinationlabel" > - <x>157</x> - <y>274</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> - <receiver>OutputInstrumentViewBase</receiver> - <slot>reject()</slot> - <hints> - <hint type="sourcelabel" > - <x>316</x> - <y>260</y> - </hint> - <hint type="destinationlabel" > - <x>286</x> - <y>274</y> - </hint> - </hints> - </connection> - <connection> - <sender>highRangeSlider</sender> - <signal>valueChanged(int)</signal> - <receiver>highRangeLabel</receiver> - <slot>setNum(int)</slot> - <hints> - <hint type="sourcelabel" > - <x>215</x> - <y>107</y> - </hint> - <hint type="destinationlabel" > - <x>165</x> - <y>108</y> - </hint> - </hints> - </connection> - <connection> - <sender>lowRangeSlider</sender> - <signal>valueChanged(int)</signal> - <receiver>lowRangeLabel</receiver> - <slot>setNum(int)</slot> - <hints> - <hint type="sourcelabel" > - <x>75</x> - <y>107</y> - </hint> - <hint type="destinationlabel" > - <x>25</x> - <y>108</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/muse_qt4_evolution/midiplugins/dump/CMakeLists.txt b/muse_qt4_evolution/midiplugins/dump/CMakeLists.txt deleted file mode 100644 index c607ef1f..00000000 --- a/muse_qt4_evolution/midiplugins/dump/CMakeLists.txt +++ /dev/null @@ -1,40 +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. -#============================================================================= - -add_library ( dump SHARED - dump.cpp - ) - -target_link_libraries( dump - midiplugin awl - ${QT_LIBRARIES} - ) - -# - tell cmake to name target dump.so instead of -# libdump.so -# - use precompiled header files -# -set_target_properties ( dump - PROPERTIES PREFIX "" - COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h" - ) - -install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ dump ) - diff --git a/muse_qt4_evolution/midiplugins/dump/dump.cpp b/muse_qt4_evolution/midiplugins/dump/dump.cpp deleted file mode 100644 index e346a642..00000000 --- a/muse_qt4_evolution/midiplugins/dump/dump.cpp +++ /dev/null @@ -1,48 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filter.cpp,v 1.10 2005/11/06 17:49:34 wschweer Exp $ -// -// dump- simple midi event dump for testing purposes -// -// (C) Copyright 2006 Werner Schweer (ws@seh.de) -//========================================================= - -#include "dump.h" -#include "midi.h" - -//--------------------------------------------------------- -// process -//--------------------------------------------------------- - -void Dump::process(unsigned, unsigned, MidiEventList* il, MidiEventList* ol) - { - for (iMidiEvent i = il->begin(); i != il->end(); ++i) { - printf("Event %6d ch:%2d type:%2d 0x%02x 0x%02x\n", i->time(), i->channel(), - i->type(), i->dataA(), i->dataB()); - ol->insert(*i); - } - } - -//--------------------------------------------------------- -// inst -//--------------------------------------------------------- - -static Mempi* instantiate(const char* name, const MempiHost* h) - { - return new Dump(name, h); - } - -extern "C" { - static MEMPI descriptor = { - "Dump", - "MusE Simple Midi Event Dump", - "0.1", // version string - MEMPI_FILTER, // plugin type - MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, - instantiate - }; - - const MEMPI* mempi_descriptor() { return &descriptor; } - } - diff --git a/muse_qt4_evolution/midiplugins/dump/dump.h b/muse_qt4_evolution/midiplugins/dump/dump.h deleted file mode 100644 index 2194e30f..00000000 --- a/muse_qt4_evolution/midiplugins/dump/dump.h +++ /dev/null @@ -1,28 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filter.h,v 1.4 2005/06/12 08:18:37 wschweer Exp $ -// -// dump- simple midi event dump for testing purposes -// -// (C) Copyright 2006 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __DUMP_H__ -#define __DUMP_H__ - -#include "../libmidiplugin/mempi.h" - -//--------------------------------------------------------- -// dump - simple midi event dump -//--------------------------------------------------------- - -class Dump : public Mempi { - virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*); - - public: - Dump(const char* name, const MempiHost* h) :Mempi(name, h) {} - }; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/filter/CMakeLists.txt b/muse_qt4_evolution/midiplugins/filter/CMakeLists.txt deleted file mode 100644 index 7bdb8544..00000000 --- a/muse_qt4_evolution/midiplugins/filter/CMakeLists.txt +++ /dev/null @@ -1,49 +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 ( filter_mocs filtergui.h ctrlcombo.h ) -QT4_WRAP_UI ( filter_uis filtergui.ui ) - -add_library ( filter SHARED - filter.cpp - filtergui.cpp - filtergui.h - ctrlcombo.cpp - ctrlcombo.h - ${filter_mocs} - ${filter_uis} - ) - -target_link_libraries( filter - midiplugin awl - ${QT_LIBRARIES} - ) - -# - tell cmake to name target filter.so instead of -# libfilter.so -# - use precompiled header files -# -set_target_properties ( filter - PROPERTIES PREFIX "" - COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h" - ) - -install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ filter ) - diff --git a/muse_qt4_evolution/midiplugins/filter/ctrlcombo.cpp b/muse_qt4_evolution/midiplugins/filter/ctrlcombo.cpp deleted file mode 100644 index b4c436c6..00000000 --- a/muse_qt4_evolution/midiplugins/filter/ctrlcombo.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: ctrlcombo.cpp,v 1.2 2005/11/06 17:49:34 wschweer Exp $ -// -// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de) -//========================================================= - -#include "ctrlcombo.h" - -//--------------------------------------------------------- -// CtrlComboBox -//--------------------------------------------------------- - -CtrlComboBox::CtrlComboBox(QWidget* parent) - : QComboBox(parent) - { - const char* ctxt[] = { - "No Ctrl", "BankSelMSB", "Modulation", "BreathCtrl", - "Control 3", "Foot Ctrl", "Porta Time", "DataEntMSB", - "MainVolume", "Balance", "Control 9", "Pan", - "Expression", "Control 12", "Control 13", "Control 14", - "Control 15", "Gen.Purp.1", "Gen.Purp.2", "Gen.Purp.3", - "Gen.Purp.4", "Control 20", "Control 21", "Control 22", - "Control 23", "Control 24", "Control 25", "Control 26", - "Control 27", "Control 28", "Control 29", "Control 30", - "Control 31", "BankSelLSB", "Modul. LSB", "BrthCt.LSB", - "Control 35", "FootCt.LSB", "Port.T LSB", "DataEntLSB", - "MainVolLSB", "BalanceLSB", "Control 41", "Pan LSB", - "Expr. LSB", "Control 44", "Control 45", "Control 46", - "Control 47", "Gen.P.1LSB", "Gen.P.2LSB", "Gen.P.3LSB", - "Gen.P.4LSB", "Control 52", "Control 53", "Control 54", - "Control 55", "Control 56", "Control 57", "Control 58", - "Control 59", "Control 60", "Control 61", "Control 62", - "Control 63", "Sustain", "Porta Ped", "Sostenuto", - "Soft Pedal", "Control 68", "Hold 2", "Control 70", - "HarmonicCo", "ReleaseTime", "Attack Time", "Brightness", - "Control 75", "Control 76", "Control 77", "Control 78", - "Control 79", "Gen.Purp.5", "Gen.Purp.6", "Gen.Purp.7", - "Gen.Purp.8", "Porta Ctrl", "Control 85", "Control 86", - "Control 87", "Control 88", "Control 89", "Control 90", - "Effect1Dep", "Effect2Dep", "Effect3Dep", "Effect4Dep", - "Phaser Dep", "Data Incr", "Data Decr", "NRPN LSB", - "NRPN MSB", "RPN LSB", "RPN MSB", "Control102", - "Control103", "Control104", "Control105", "Control106", - "Control107", "Control108", "Control109", "Control110", - "Control111", "Control112", "Control113", "Control114", - "Control115", "Control116", "Control117", "Control118", - "Control119", "AllSndOff", "Reset Ctrl", "Local Ctrl", - "AllNoteOff", "OmniModOff", "OmniModeOn", "MonoModeOn", - "PolyModeOn" - }; - for (unsigned int i = 0; i < sizeof(ctxt)/sizeof(*ctxt); ++i) - addItem(QString(ctxt[i])); - } - diff --git a/muse_qt4_evolution/midiplugins/filter/ctrlcombo.h b/muse_qt4_evolution/midiplugins/filter/ctrlcombo.h deleted file mode 100644 index 53044b20..00000000 --- a/muse_qt4_evolution/midiplugins/filter/ctrlcombo.h +++ /dev/null @@ -1,24 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: ctrlcombo.h,v 1.2 2005/11/06 17:49:34 wschweer Exp $ -// -// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __CTRLGRP_H__ -#define __CTRLGRP_H__ - -//--------------------------------------------------------- -// CtrlComboBox -//--------------------------------------------------------- - -class CtrlComboBox : public QComboBox { - Q_OBJECT - public: - CtrlComboBox(QWidget* parent = 0); - }; - - -#endif - diff --git a/muse_qt4_evolution/midiplugins/filter/filter.cpp b/muse_qt4_evolution/midiplugins/filter/filter.cpp deleted file mode 100644 index ac99449e..00000000 --- a/muse_qt4_evolution/midiplugins/filter/filter.cpp +++ /dev/null @@ -1,167 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filter.cpp,v 1.10 2005/11/06 17:49:34 wschweer Exp $ -// -// filter - simple midi filter -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "filtergui.h" -#include "filter.h" -#include "midi.h" - -//--------------------------------------------------------- -// Filter -//--------------------------------------------------------- - -Filter::Filter(const char* name, const MempiHost* h) - : Mempi(name, h) - { - data.type = 0; // allow any events - for (int i = 0; i < 4; ++i) - data.ctrl[i] = -1; - gui = 0; - } - -//--------------------------------------------------------- -// Filter -//--------------------------------------------------------- - -Filter::~Filter() - { - if (gui) - delete gui; - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- - -bool Filter::init() - { - gui = new FilterGui(this, 0); - gui->setWindowTitle("MusE: "+QString(name())); - gui->show(); - return false; - } - -//--------------------------------------------------------- -// getGeometry -//--------------------------------------------------------- - -void Filter::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 Filter::setGeometry(int x, int y, int w, int h) - { - gui->resize(QSize(w, h)); - gui->move(QPoint(x, y)); - } - -//--------------------------------------------------------- -// process -//--------------------------------------------------------- - -void Filter::process(unsigned, unsigned, MidiEventList* il, MidiEventList* ol) - { - for (iMidiEvent i = il->begin(); i != il->end(); ++i) { - if (!filterEvent(*i)) - ol->insert(*i); - } - } - -//--------------------------------------------------------- -// filterEvent -// return true if event filtered -//--------------------------------------------------------- - -bool Filter::filterEvent(const MidiEvent& event) - { - switch(event.type()) { - case ME_NOTEON: - case ME_NOTEOFF: - if (data.type & MIDI_FILTER_NOTEON) - return true; - break; - case ME_POLYAFTER: - if (data.type & MIDI_FILTER_POLYP) - return true; - break; - case ME_CONTROLLER: - if (data.type & MIDI_FILTER_CTRL) - return true; - for (int i = 0; i < 4; ++i) { - if (data.ctrl[i] == event.dataA()) - return true; - } - break; - case ME_PROGRAM: - if (data.type & MIDI_FILTER_PROGRAM) - return true; - break; - case ME_AFTERTOUCH: - if (data.type & MIDI_FILTER_AT) - return true; - break; - case ME_PITCHBEND: - if (data.type & MIDI_FILTER_PITCH) - return true; - break; - case ME_SYSEX: - if (data.type & MIDI_FILTER_SYSEX) - return true; - break; - default: - break; - } - return false; - } - -void Filter::getInitData(int* n, const unsigned char** p) const - { - *n = sizeof(data); - *p = (unsigned char*)&data; - } - -void Filter::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 Filter(name, h); - } - -extern "C" { - static MEMPI descriptor = { - "Filter", - "MusE Simple Midi Filter", - "0.1", // filter version string - MEMPI_FILTER, // plugin type - MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, - instantiate - }; - - const MEMPI* mempi_descriptor() { return &descriptor; } - } - diff --git a/muse_qt4_evolution/midiplugins/filter/filter.h b/muse_qt4_evolution/midiplugins/filter/filter.h deleted file mode 100644 index c8a357b4..00000000 --- a/muse_qt4_evolution/midiplugins/filter/filter.h +++ /dev/null @@ -1,51 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filter.h,v 1.4 2005/06/12 08:18:37 wschweer Exp $ -// -// filter - simple midi filter -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __FILTER_H__ -#define __FILTER_H__ - -#include "../libmidiplugin/mempi.h" - -//--------------------------------------------------------- -// filter - simple midi filter -//--------------------------------------------------------- - -class Filter : public Mempi { - struct initData { - int type; - int ctrl[4]; - } data; - FilterGui* gui; - - bool filterEvent(const MidiEvent& event); - virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*); - - public: - Filter(const char* name, const MempiHost*); - ~Filter(); - virtual bool init(); - - int midiType() const { return data.type; } - void setMidiType(int t) { data.type = t; } - int midiCtrl(int i) const { return data.ctrl[i]; } - void setMidiCtrl(int i, int val) { data.ctrl[i] = val; } - - 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/muse_qt4_evolution/midiplugins/filter/filtergui.cpp b/muse_qt4_evolution/midiplugins/filter/filtergui.cpp deleted file mode 100644 index 306ae392..00000000 --- a/muse_qt4_evolution/midiplugins/filter/filtergui.cpp +++ /dev/null @@ -1,187 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filtergui.cpp,v 1.4 2005/11/06 17:49:34 wschweer Exp $ -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "filtergui.h" -#include "filter.h" -#include "ctrlcombo.h" - -//--------------------------------------------------------- -// MidiFilterConfig -//--------------------------------------------------------- - -FilterGui::FilterGui(Filter* f, QWidget* parent) - : QDialog(parent) - { - setupUi(this); - filter = f; - connect(rf1, SIGNAL(toggled(bool)), SLOT(rf1Toggled(bool))); - connect(rf2, SIGNAL(toggled(bool)), SLOT(rf2Toggled(bool))); - connect(rf3, SIGNAL(toggled(bool)), SLOT(rf3Toggled(bool))); - connect(rf4, SIGNAL(toggled(bool)), SLOT(rf4Toggled(bool))); - connect(rf5, SIGNAL(toggled(bool)), SLOT(rf5Toggled(bool))); - connect(rf6, SIGNAL(toggled(bool)), SLOT(rf6Toggled(bool))); - connect(rf7, SIGNAL(toggled(bool)), SLOT(rf7Toggled(bool))); - connect(cb1, SIGNAL(activated(int)), SLOT(cb1Activated(int))); - connect(cb2, SIGNAL(activated(int)), SLOT(cb2Activated(int))); - connect(cb3, SIGNAL(activated(int)), SLOT(cb3Activated(int))); - connect(cb4, SIGNAL(activated(int)), SLOT(cb4Activated(int))); - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- - -void FilterGui::init() - { - int midiType = filter->midiType(); - rf1->setChecked(midiType & MIDI_FILTER_NOTEON); - rf2->setChecked(midiType & MIDI_FILTER_POLYP); - rf3->setChecked(midiType & MIDI_FILTER_CTRL); - rf4->setChecked(midiType & MIDI_FILTER_PROGRAM); - rf5->setChecked(midiType & MIDI_FILTER_AT); - rf6->setChecked(midiType & MIDI_FILTER_PITCH); - rf7->setChecked(midiType & MIDI_FILTER_SYSEX); - cb1->setCurrentIndex(filter->midiCtrl(0) + 1); - cb2->setCurrentIndex(filter->midiCtrl(1) + 1); - cb3->setCurrentIndex(filter->midiCtrl(2) + 1); - cb4->setCurrentIndex(filter->midiCtrl(3) + 1); - } - -//--------------------------------------------------------- -// cb1Activated -//--------------------------------------------------------- - -void FilterGui::cb1Activated(int idx) - { - filter->setMidiCtrl(0, idx - 1); - } - -//--------------------------------------------------------- -// cb2Activated -//--------------------------------------------------------- - -void FilterGui::cb2Activated(int idx) - { - filter->setMidiCtrl(1, idx - 1); - } - -//--------------------------------------------------------- -// cb3Activated -//--------------------------------------------------------- - -void FilterGui::cb3Activated(int idx) - { - filter->setMidiCtrl(2, idx - 1); - } - -//--------------------------------------------------------- -// cb4Activated -//--------------------------------------------------------- - -void FilterGui::cb4Activated(int idx) - { - filter->setMidiCtrl(3, idx - 1); - } - -//--------------------------------------------------------- -// rf1Toggled -//--------------------------------------------------------- - -void FilterGui::rf1Toggled(bool) - { - int midiType = filter->midiType(); - if (rf1->isChecked()) - midiType |= MIDI_FILTER_NOTEON; - else - midiType &= ~MIDI_FILTER_NOTEON; - filter->setMidiType(midiType); - } - -//--------------------------------------------------------- -// rf2Toggled -//--------------------------------------------------------- - -void FilterGui::rf2Toggled(bool) - { - int midiType = filter->midiType(); - if (rf2->isChecked()) - midiType |= MIDI_FILTER_POLYP; - else - midiType &= ~MIDI_FILTER_POLYP; - filter->setMidiType(midiType); - } - -//--------------------------------------------------------- -// rf3Toggled -//--------------------------------------------------------- - -void FilterGui::rf3Toggled(bool) - { - int midiType = filter->midiType(); - if (rf3->isChecked()) - midiType |= MIDI_FILTER_CTRL; - else - midiType &= ~MIDI_FILTER_CTRL; - filter->setMidiType(midiType); - } - -//--------------------------------------------------------- -// rf4Toggled -//--------------------------------------------------------- - -void FilterGui::rf4Toggled(bool) - { - int midiType = filter->midiType(); - if (rf4->isChecked()) - midiType |= MIDI_FILTER_PROGRAM; - else - midiType &= ~MIDI_FILTER_PROGRAM; - filter->setMidiType(midiType); - } - -//--------------------------------------------------------- -// rf5Toggled -//--------------------------------------------------------- - -void FilterGui::rf5Toggled(bool) - { - int midiType = filter->midiType(); - if (rf5->isChecked()) - midiType |= MIDI_FILTER_AT; - else - midiType &= ~MIDI_FILTER_AT; - filter->setMidiType(midiType); - } - -//--------------------------------------------------------- -// rf6Toggled -//--------------------------------------------------------- - -void FilterGui::rf6Toggled(bool) - { - int midiType = filter->midiType(); - if (rf1->isChecked()) - midiType |= MIDI_FILTER_PITCH; - else - midiType &= ~MIDI_FILTER_PITCH; - filter->setMidiType(midiType); - } - -//--------------------------------------------------------- -// rf7Toggled -//--------------------------------------------------------- - -void FilterGui::rf7Toggled(bool) - { - int midiType = filter->midiType(); - if (rf7->isChecked()) - midiType |= MIDI_FILTER_SYSEX; - else - midiType &= ~MIDI_FILTER_SYSEX; - filter->setMidiType(midiType); - } diff --git a/muse_qt4_evolution/midiplugins/filter/filtergui.h b/muse_qt4_evolution/midiplugins/filter/filtergui.h deleted file mode 100644 index 701bfec9..00000000 --- a/muse_qt4_evolution/midiplugins/filter/filtergui.h +++ /dev/null @@ -1,57 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filtergui.h,v 1.4 2005/11/06 17:49:34 wschweer Exp $ -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __FILTERGUI_H__ -#define __FILTERGUI_H__ - -#include "ui_filtergui.h" - -class Filter; - -enum { - MIDI_FILTER_NOTEON = 1, - MIDI_FILTER_POLYP = 2, - MIDI_FILTER_CTRL = 4, - MIDI_FILTER_PROGRAM = 8, - MIDI_FILTER_AT = 16, - MIDI_FILTER_PITCH = 32, - MIDI_FILTER_SYSEX = 64 - }; - -//--------------------------------------------------------- -// FilterGui -//--------------------------------------------------------- - -class FilterGui : public QDialog, public Ui::FilterBase { - Q_OBJECT - - Filter* filter; - - signals: - void hideWindow(); - - private slots: - void rf1Toggled(bool); - void rf2Toggled(bool); - void rf3Toggled(bool); - void rf4Toggled(bool); - void rf5Toggled(bool); - void rf6Toggled(bool); - void rf7Toggled(bool); - void cb1Activated(int); - void cb2Activated(int); - void cb3Activated(int); - void cb4Activated(int); - - public: - FilterGui(Filter*, QWidget* parent=0); - void init(); - }; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/filter/filtergui.ui b/muse_qt4_evolution/midiplugins/filter/filtergui.ui deleted file mode 100644 index 8e1693f2..00000000 --- a/muse_qt4_evolution/midiplugins/filter/filtergui.ui +++ /dev/null @@ -1,269 +0,0 @@ -<ui version="4.0" > - <author></author> - <comment></comment> - <exportmacro></exportmacro> - <class>FilterBase</class> - <widget class="QDialog" name="FilterBase" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>388</width> - <height>213</height> - </rect> - </property> - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>3</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="windowTitle" > - <string>MusE: Midi Input Filter</string> - </property> - <layout class="QHBoxLayout" > - <property name="margin" > - <number>6</number> - </property> - <property name="spacing" > - <number>2</number> - </property> - <item> - <widget class="QGroupBox" name="GroupBoxx" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title" > - <string>Event Filter</string> - </property> - <layout class="QVBoxLayout" > - <property name="margin" > - <number>6</number> - </property> - <property name="spacing" > - <number>2</number> - </property> - <item> - <widget class="QCheckBox" name="rf1" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Note On</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="rf2" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Poly Pressure</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="rf3" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Controller</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="rf4" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>1</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Program Change</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="rf5" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>After Touch</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="rf6" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Pitch Bend</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="rf7" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Sysex</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="GroupBox4" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title" > - <string>Controller Filter</string> - </property> - <layout class="QVBoxLayout" > - <property name="margin" > - <number>6</number> - </property> - <property name="spacing" > - <number>2</number> - </property> - <item> - <widget class="CtrlComboBox" name="cb1" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> - <item> - <widget class="CtrlComboBox" name="cb2" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> - <item> - <widget class="CtrlComboBox" name="cb3" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> - <item> - <widget class="CtrlComboBox" name="cb4" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> - <item> - <spacer> - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" > - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - </item> - </layout> - </widget> - <layoutdefault spacing="6" margin="11" /> - <pixmapfunction></pixmapfunction> - <customwidgets> - <customwidget> - <class>CtrlComboBox</class> - <extends>QComboBox</extends> - <header>ctrlcombo.h</header> - <container>0</container> - <pixmap></pixmap> - </customwidget> - </customwidgets> - <tabstops> - <tabstop>rf1</tabstop> - <tabstop>rf2</tabstop> - <tabstop>rf3</tabstop> - <tabstop>rf4</tabstop> - <tabstop>rf5</tabstop> - <tabstop>rf6</tabstop> - <tabstop>rf7</tabstop> - </tabstops> - <resources/> - <connections/> -</ui> diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/CMakeLists.txt b/muse_qt4_evolution/midiplugins/libmidiplugin/CMakeLists.txt deleted file mode 100644 index 5988205f..00000000 --- a/muse_qt4_evolution/midiplugins/libmidiplugin/CMakeLists.txt +++ /dev/null @@ -1,26 +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. -#============================================================================= - -add_library ( midiplugin mempi.cpp ) - -set_target_properties( midiplugin - PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h" - ) - diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h b/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h deleted file mode 100644 index 8247b6e0..00000000 --- a/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h +++ /dev/null @@ -1,64 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: evdata.h,v 1.2 2005/05/11 14:18:39 wschweer Exp $ -// -// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __EVDATA_H__ -#define __EVDATA_H__ - -//--------------------------------------------------------- -// EvData -// variable len event data (sysex, meta etc.) -//--------------------------------------------------------- - -class EvData { - int* refCount; - - public: - unsigned char* data; - int dataLen; - - EvData() { - data = 0; - dataLen = 0; - refCount = new int(1); - } - EvData(const EvData& ed) { - data = ed.data; - dataLen = ed.dataLen; - refCount = ed.refCount; - (*refCount)++; - } - - EvData& operator=(const EvData& ed) { - if (data == ed.data) - return *this; - if (--(*refCount) == 0) { - delete refCount; - delete[] data; - } - data = ed.data; - dataLen = ed.dataLen; - refCount = ed.refCount; - (*refCount)++; - return *this; - } - - ~EvData() { - if (--(*refCount) == 0) { - delete[] data; - delete refCount; - } - } - void setData(const unsigned char* p, int l) { - data = new unsigned char[l]; - memcpy(data, p, l); - dataLen = l; - } - }; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.cpp b/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.cpp deleted file mode 100644 index 91171c3b..00000000 --- a/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.cpp +++ /dev/null @@ -1,81 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: mempi.cpp,v 1.4 2005/05/24 15:27:48 wschweer Exp $ -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "mempi.h" - -static const int FIFO_SIZE = 128; - -//--------------------------------------------------------- -// MidiEvent -//--------------------------------------------------------- - -MidiEvent::MidiEvent(unsigned t, int tpe, const unsigned char* data, int len) - { - _time = t; - edata.setData(data, len); - _type = tpe; - } - -//--------------------------------------------------------- -// operator < -//--------------------------------------------------------- - -bool MidiEvent::operator<(const MidiEvent& e) const - { - if (time() != e.time()) - return time() < e.time(); - - // play note off events first to prevent overlapping - // notes - - if (channel() == e.channel()) - return type() == 0x80 - || (type() == 0x90 && dataB() == 0); - - int map[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11, 12, 13, 14, 15 }; - return map[channel()] < map[e.channel()]; - } - -//--------------------------------------------------------- -// MempiP -// Mempi private data structure -//--------------------------------------------------------- - -struct MempiP { - int dummy; - }; - -//--------------------------------------------------------- -// Mempi -//--------------------------------------------------------- - -Mempi::Mempi(const char* n, const MempiHost* h) - { - _name = strdup(n); - host = h; - d = new MempiP; - } - -Mempi::~Mempi() - { - delete _name; - delete d; - } - -//--------------------------------------------------------- -// getGeometry -// dummy -//--------------------------------------------------------- - -void Mempi::getGeometry(int* x, int* y, int* w, int* h) const - { - x = 0; - y = 0; - w = 0; - h = 0; - } - diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.h b/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.h deleted file mode 100644 index a5f114b6..00000000 --- a/muse_qt4_evolution/midiplugins/libmidiplugin/mempi.h +++ /dev/null @@ -1,97 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: mempi.h,v 1.10 2005/07/16 09:31:50 wschweer Exp $ -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -// -// MusE experimental midi plugin interface -// - -#ifndef __MEMPI_H__ -#define __MEMPI_H__ - -#define MEMPI_MAJOR_VERSION 1 -#define MEMPI_MINOR_VERSION 1 - -#include <set> -#include "evdata.h" -#include "memory.h" -#include "midievent.h" - -class MempiP; - -//--------------------------------------------------------- -// MempiHost -// Host Infos -//--------------------------------------------------------- - -struct MempiHost { - virtual int division() const; // midi division - virtual int tempo(unsigned tick) const; - virtual unsigned tick2frame(unsigned tick) const; - virtual unsigned frame2tick(unsigned frame) const; - virtual void bar(int tick, int* bar, int* beat, unsigned* rest) const; - virtual unsigned bar2tick(int bar, int beat, int tick) const; - virtual ~MempiHost() {} - }; - -//--------------------------------------------------------- -// Mempi -// Instance class -// MusE experimental midi plugin interface -// Instance virtual interface class -//--------------------------------------------------------- - -class Mempi { - MempiP* d; - const char* _name; // mempi instance name - - protected: - const MempiHost* host; - - public: - // modul interface - Mempi(const char* name, const MempiHost*); - virtual ~Mempi(); - virtual bool init() { return false; } - const char* name() const { return _name; } - - // process interface - virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*) = 0; - - // session interface - virtual void getInitData(int*, const unsigned char**) const {} - virtual void setInitData(int, const unsigned char*) {} - - // GUI interface routines - virtual bool hasGui() const { return false; } - virtual bool guiVisible() const { return false; } - virtual void showGui(bool) {} - virtual void getGeometry(int* x, int* y, int* w, int* h) const; - virtual void setGeometry(int, int, int, int) {} - }; - -//--------------------------------------------------------- -// MEMPI -// Class descriptor -//--------------------------------------------------------- - -enum MempiType { MEMPI_FILTER = 0, MEMPI_GENERATOR = 1 }; - -struct MEMPI { - const char* name; - const char* description; - const char* version; - MempiType type; - int majorMempiVersion, minorMempiVersion; - Mempi* (*instantiate)(const char* name, const MempiHost*); - }; - -extern "C" { - const MEMPI* mempi_descriptor(); - } - -#endif - diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.cpp b/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.cpp deleted file mode 100644 index 972bc8a2..00000000 --- a/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.cpp +++ /dev/null @@ -1,21 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: mpevent.cpp,v 1.1 2005/05/08 17:01:30 wschweer Exp $ -// -// (C) Copyright 2002-2004 Werner Schweer (ws@seh.de) -//========================================================= - -#include "midievent.h" - -//--------------------------------------------------------- -// MEvent -//--------------------------------------------------------- - -MEvent::MEvent(unsigned t, int tpe, const unsigned char* data, int len) - { - _time = t; - edata.setData(data, len); - _type = tpe; - } - diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.h b/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.h deleted file mode 100644 index a21bec88..00000000 --- a/muse_qt4_evolution/midiplugins/libmidiplugin/midievent.h +++ /dev/null @@ -1,87 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: mpevent.h,v 1.3 2005/06/06 14:24:53 wschweer Exp $ -// -// (C) Copyright 1999-2002 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __MIDIEVENT_H__ -#define __MIDIEVENT_H__ - -#include <set> -#include "evdata.h" -#include <ext/mt_allocator.h> - -class Event; -class EvData; - -//--------------------------------------------------------- -// MidiEvent -//--------------------------------------------------------- - -class MidiEvent { - unsigned _time; - EvData edata; - unsigned char _channel, _type; - int _a, _b; - - public: - MidiEvent() {} - MidiEvent(unsigned tm, int c, int t, int a, int b) - : _time(tm), _channel(c & 0xf), _type(t), _a(a), _b(b) {} - MidiEvent(unsigned t, int type, const unsigned char* data, int len); - MidiEvent(unsigned t, int tpe, EvData d) : _time(t), edata(d), _type(tpe) {} - MidiEvent(unsigned t, int channel, const Event& e); - - ~MidiEvent() {} - - MidiEvent& operator=(const MidiEvent& ed) { - _time = ed._time; - edata = ed.edata; - _channel = ed._channel; - _type = ed._type; - _a = ed._a; - _b = ed._b; - return *this; - } - - int channel() const { return _channel; } - int type() const { return _type; } - int dataA() const { return _a; } - int dataB() const { return _b; } - unsigned time() const { return _time; } - - void setChannel(int val) { _channel = val; } - void setType(int val) { _type = val; } - void setA(int val) { _a = val; } - void setB(int val) { _b = val; } - void setTime(unsigned val) { _time = val; } - - const EvData& eventData() const { return edata; } - unsigned char* data() const { return edata.data; } - int len() const { return edata.dataLen; } - void setData(const EvData& e) { edata = e; } - void setData(const unsigned char* p, int len) { edata.setData(p, len); } - void dump() const; - bool isNote() const { return _type == 0x90; } - bool isNoteOff() const { return (_type == 0x80)||(_type == 0x90 && _b == 0); } - bool operator<(const MidiEvent&) const; - }; - -//--------------------------------------------------------- -// MidiEventList -//--------------------------------------------------------- - -// typedef std::multiset<MidiEvent, std::less<MidiEvent>, -// __gnu_cxx::__mt_alloc<MidiEvent> > MPEL; - -struct MidiEventList : public std::multiset<MidiEvent, std::less<MidiEvent> > - { - }; - -typedef MidiEventList::iterator iMidiEvent; -typedef MidiEventList::const_iterator ciMidiEvent; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/metronom/CMakeLists.txt b/muse_qt4_evolution/midiplugins/metronom/CMakeLists.txt deleted file mode 100644 index 5153e6d4..00000000 --- a/muse_qt4_evolution/midiplugins/metronom/CMakeLists.txt +++ /dev/null @@ -1,46 +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 ( metronom_mocs metronomgui.h ) -QT4_WRAP_UI ( metronom_uis metronomgui.ui ) - -add_library ( metronom SHARED - metronom.cpp - metronomgui.cpp - metronomgui.h - ${metronom_mocs} - ${metronom_uis} - ) -target_link_libraries( metronom - midiplugin - ${QT_LIBRARIES} - ) - -# - tell cmake to name target metronom.so instead of -# libmetronom.so -# - use precompiled header files -# -set_target_properties ( metronom - PROPERTIES PREFIX "" - COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h" - ) - -install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ metronom ) - diff --git a/muse_qt4_evolution/midiplugins/metronom/metronom.cpp b/muse_qt4_evolution/midiplugins/metronom/metronom.cpp deleted file mode 100644 index ece1e466..00000000 --- a/muse_qt4_evolution/midiplugins/metronom/metronom.cpp +++ /dev/null @@ -1,167 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: metronom.cpp,v 1.3 2005/11/16 17:55:59 wschweer Exp $ -// -// metronom - midi metronom -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "metronomgui.h" -#include "metronom.h" -#include "midi.h" -#include "midievent.h" - -//--------------------------------------------------------- -// Metronom -//--------------------------------------------------------- - -Metronom::Metronom(const char* name, const MempiHost* h) - : Mempi(name, h) - { - gui = 0; - } - -//--------------------------------------------------------- -// Metronom -//--------------------------------------------------------- - -Metronom::~Metronom() - { - if (gui) - delete gui; - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- - -bool Metronom::init() - { - nextTick = 0; - lastTo = 0; - data.measureNote = 63; - data.measureVelo = 127; - data.beatNote = 63; - data.beatVelo = 70; - - gui = new MetronomGui(this, 0); - gui->hide(); - gui->setWindowTitle(QString(name())); - - return false; - } - -//--------------------------------------------------------- -// getGeometry -//--------------------------------------------------------- - -void Metronom::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 Metronom::setGeometry(int x, int y, int w, int h) - { - gui->resize(QSize(w, h)); - gui->move(QPoint(x, y)); - } - -//--------------------------------------------------------- -// process -//--------------------------------------------------------- - -void Metronom::process(unsigned from, unsigned to, MidiEventList* /*il*/, MidiEventList* ol) - { - if (from == to) { - nextTick = 0; - return; - } - if (lastTo != from) { // seek? -// printf(" seek? %d-%d\n", lastTo, from); - nextTick = 0; - } - lastTo = to; - if (nextTick > to) - return; - while (nextTick < to) { - int bar, beat; - unsigned tick; - if (nextTick < from) { - host->bar(from, &bar, &beat, &tick); - if (tick) - nextTick = host->bar2tick(bar, beat+1, 0); - else - nextTick = from; - } - host->bar(nextTick, &bar, &beat, &tick); - bool isMeasure = beat == 0; - - MidiEvent ev(nextTick, 0, ME_NOTEON, data.beatNote, data.beatVelo); - if (isMeasure) { - ev.setA(data.measureNote); - ev.setB(data.measureVelo); - } - ol->insert(ev); // insert note on - ev.setB(0); - ev.setTime(nextTick + 10); - ev.setB(0); - ol->insert(ev); // insert note off - - nextTick = host->bar2tick(bar, beat+1, 0); - } - } - -//--------------------------------------------------------- -// getInitData -//--------------------------------------------------------- - -void Metronom::getInitData(int* n, const unsigned char** p) const - { - *n = sizeof(data); - *p = (unsigned char*)&data; - } - -//--------------------------------------------------------- -// setInitData -//--------------------------------------------------------- - -void Metronom::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 Metronom(name, h); - } - -extern "C" { - static MEMPI descriptor = { - "Metronom", - "MusE Simple Midi Metronom", - "0.1", // version string - MEMPI_GENERATOR, - MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, - instantiate - }; - - const MEMPI* mempi_descriptor() { return &descriptor; } - } - diff --git a/muse_qt4_evolution/midiplugins/metronom/metronom.h b/muse_qt4_evolution/midiplugins/metronom/metronom.h deleted file mode 100644 index 3d570613..00000000 --- a/muse_qt4_evolution/midiplugins/metronom/metronom.h +++ /dev/null @@ -1,53 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: metronom.h,v 1.3 2005/06/12 09:22:51 wschweer Exp $ -// -// metronom - simple midi metronom -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __METRONOM_H__ -#define __METRONOM_H__ - -#include "../libmidiplugin/mempi.h" - -//--------------------------------------------------------- -// metronom - simple midi metronom -//--------------------------------------------------------- - -class Metronom : public Mempi { - - protected: - struct InitData { - char measureNote; - char measureVelo; - char beatNote; - char beatVelo; - } data; - MetronomGui* gui; - friend class MetronomGui; - - unsigned int nextTick; - unsigned int lastTo; - - virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*); - - public: - Metronom(const char* name, const MempiHost*); - ~Metronom(); - 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/muse_qt4_evolution/midiplugins/metronom/metronomgui.cpp b/muse_qt4_evolution/midiplugins/metronom/metronomgui.cpp deleted file mode 100644 index e6705f7c..00000000 --- a/muse_qt4_evolution/midiplugins/metronom/metronomgui.cpp +++ /dev/null @@ -1,75 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: metronomgui.cpp,v 1.2 2005/10/05 17:02:03 lunar_shuttle Exp $ -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "metronomgui.h" -#include "metronom.h" - -//--------------------------------------------------------- -// MidiMetronomConfig -//--------------------------------------------------------- - -MetronomGui::MetronomGui(Metronom* f, QWidget* parent) - : QDialog(parent) - { - setupUi(this); - metronom = f; - init(); - connect(beatNote, SIGNAL(valueChanged(int)), SLOT(beatNoteChanged(int))); - connect(measureVelocity, SIGNAL(valueChanged(int)), SLOT(measureVelocityChanged(int))); - connect(measureNote, SIGNAL(valueChanged(int)), SLOT(measureNoteChanged(int))); - connect(beatVelocity, SIGNAL(valueChanged(int)), SLOT(beatVelocityChanged(int))); - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- - -void MetronomGui::init() - { - beatNote->setValue(metronom->data.beatNote); - measureNote->setValue(metronom->data.measureNote); - beatVelocity->setValue(metronom->data.beatVelo); - measureVelocity->setValue(metronom->data.measureVelo); - } - -//--------------------------------------------------------- -// beatNoteChanged -//--------------------------------------------------------- - -void MetronomGui::beatNoteChanged(int val) - { - metronom->data.beatNote = val; - } - -//--------------------------------------------------------- -// measureVelocityChanged -//--------------------------------------------------------- - -void MetronomGui::measureVelocityChanged(int val) - { - metronom->data.measureVelo = val; - } - -//--------------------------------------------------------- -// measureNoteChanged -//--------------------------------------------------------- - -void MetronomGui::measureNoteChanged(int val) - { - metronom->data.measureNote = val; - } - -//--------------------------------------------------------- -// beatVelocityChanged -//--------------------------------------------------------- - -void MetronomGui::beatVelocityChanged(int val) - { - metronom->data.beatVelo = val; - } - diff --git a/muse_qt4_evolution/midiplugins/metronom/metronomgui.h b/muse_qt4_evolution/midiplugins/metronom/metronomgui.h deleted file mode 100644 index cceea61d..00000000 --- a/muse_qt4_evolution/midiplugins/metronom/metronomgui.h +++ /dev/null @@ -1,36 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: metronomgui.h,v 1.3 2005/10/05 17:02:03 lunar_shuttle Exp $ -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __METRONOMGUI_H__ -#define __METRONOMGUI_H__ - -#include "ui_metronomgui.h" - -class Metronom; - -//--------------------------------------------------------- -// MetronomGui -//--------------------------------------------------------- - -class MetronomGui : public QDialog, public Ui::MetronomBase { - Q_OBJECT - Metronom* metronom; - - private slots: - void beatNoteChanged(int); - void measureVelocityChanged(int); - void measureNoteChanged(int); - void beatVelocityChanged(int); - - public: - MetronomGui(Metronom*, QWidget* parent=0); - void init(); - }; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/metronom/metronomgui.ui b/muse_qt4_evolution/midiplugins/metronom/metronomgui.ui deleted file mode 100644 index 188735d4..00000000 --- a/muse_qt4_evolution/midiplugins/metronom/metronomgui.ui +++ /dev/null @@ -1,150 +0,0 @@ -<ui version="4.0" > - <author></author> - <comment></comment> - <exportmacro></exportmacro> - <class>MetronomBase</class> - <widget class="QDialog" name="MetronomBase" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>429</width> - <height>164</height> - </rect> - </property> - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>3</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="windowTitle" > - <string>MusE: Midi Metronome</string> - </property> - <layout class="QVBoxLayout" > - <property name="margin" > - <number>9</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item> - <layout class="QHBoxLayout" > - <property name="margin" > - <number>0</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item> - <widget class="QLabel" name="label" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="font" > - <font> - <family>ZappedChancellor</family> - <pointsize>48</pointsize> - <weight>75</weight> - <italic>false</italic> - <bold>true</bold> - <underline>false</underline> - <strikeout>false</strikeout> - </font> - </property> - <property name="toolTip" > - <string>Metronome</string> - </property> - <property name="whatsThis" > - <string>Metronome</string> - </property> - <property name="text" > - <string>M</string> - </property> - <property name="alignment" > - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <layout class="QGridLayout" > - <property name="margin" > - <number>0</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item row="0" column="1" > - <widget class="QLabel" name="TextLabel1" > - <property name="text" > - <string>Measure Note</string> - </property> - </widget> - </item> - <item row="1" column="1" > - <widget class="QLabel" name="TextLabel2" > - <property name="text" > - <string>Measure Velocity</string> - </property> - </widget> - </item> - <item row="3" column="1" > - <widget class="QLabel" name="TextLabel4" > - <property name="text" > - <string>Beat Velocity</string> - </property> - </widget> - </item> - <item row="2" column="1" > - <widget class="QLabel" name="TextLabel3" > - <property name="text" > - <string>Beat Note</string> - </property> - </widget> - </item> - <item row="2" column="0" > - <widget class="QSpinBox" name="beatNote" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QSpinBox" name="measureVelocity" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="0" column="0" > - <widget class="QSpinBox" name="measureNote" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="3" column="0" > - <widget class="QSpinBox" name="beatVelocity" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </item> - </layout> - </widget> - <layoutdefault spacing="6" margin="11" /> - <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> - <resources/> - <connections/> -</ui> diff --git a/muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt b/muse_qt4_evolution/midiplugins/splitlayer/CMakeLists.txt deleted file mode 100644 index b6803d8b..00000000 --- a/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/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp b/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.cpp deleted file mode 100644 index 7ea4ba3e..00000000 --- a/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/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h b/muse_qt4_evolution/midiplugins/splitlayer/splitlayer.h deleted file mode 100644 index 7c213c01..00000000 --- a/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/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp b/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.cpp deleted file mode 100644 index b5d2bdb4..00000000 --- a/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/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h b/muse_qt4_evolution/midiplugins/splitlayer/splitlayergui.h deleted file mode 100644 index 4f2006ca..00000000 --- a/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 - diff --git a/muse_qt4_evolution/midiplugins/transform/CMakeLists.txt b/muse_qt4_evolution/midiplugins/transform/CMakeLists.txt deleted file mode 100644 index 1ac2652c..00000000 --- a/muse_qt4_evolution/midiplugins/transform/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 ( transform_mocs transform.h ) -QT4_WRAP_UI ( transform_uis transform.ui ) - -add_library ( transform SHARED - transform.cpp - ${transform_mocs} - ${transform_uis} - ) - -target_link_libraries( transform - midiplugin - ${QT_LIBRARIES} - ) - -# - tell cmake to name target transform.so instead of -# libtransform.so -# - use precompiled header files -# -set_target_properties ( transform - PROPERTIES PREFIX "" - COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h" - ) - -install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ transform ) - diff --git a/muse_qt4_evolution/midiplugins/transform/transform.cpp b/muse_qt4_evolution/midiplugins/transform/transform.cpp deleted file mode 100644 index 1376d2fc..00000000 --- a/muse_qt4_evolution/midiplugins/transform/transform.cpp +++ /dev/null @@ -1,904 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: transform.cpp,v 1.8 2005/11/17 18:19:30 wschweer Exp $ -// -// (C) Copyright 2001-2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "midievent.h" -#include "transform.h" - -static int eventTypeTable[] = { - 1, 6, 4, 7, 8, 10, 11 - }; -static int procVal2Map[] = { 0, 1, 2, 3, 4, 5, 6, 7, 10, 11 }; - -struct TDict { - TransformFunction id; - const QString text; - TDict(TransformFunction f, const QString& s) : id(f), text(s) {} - }; - -static const TDict oplist[] = { - TDict(Trans, QString("Transform")), - TDict(Delete, QString("Filter")) - }; - -static const char* vall[] = { - "c","c#","d","d#","e","f","f#","g","g#","a","a#","h" - }; -static const char* valu[] = { - "C","C#","D","D#","E","F","F#","G","G#","A","A#","H" - }; - -//--------------------------------------------------------- -// pitch2string -//--------------------------------------------------------- - -static QString pitch2string(int v) - { - if (v < 0 || v > 127) - return QString("----"); - int octave = (v / 12) - 2; - QString o; - o.sprintf("%d", octave); - int i = v % 12; - QString s(octave < 0 ? valu[i] : vall[i]); - return s + o; - } -//--------------------------------------------------------- -// Transform -//--------------------------------------------------------- - -Transform::Transform(const char* name, const MempiHost* h) - : Mempi(name, h) - { - } - -bool Transform::init() - { - gui = new TransformDialog(this, 0); - gui->setWindowTitle(QString(name())); - gui->show(); - - data.selEventOp = All; - data.selType = 0x90; - data.selVal1 = Ignore; - data.selVal1a = 0; - data.selVal1b = 0; - data.selVal2 = Ignore; - data.selVal2a = 0; - data.selVal2b = 0; - data.procEvent = Keep; - data.eventType = 0x90; - data.procVal1 = Keep; - data.procVal1a = 0; - data.procVal1b = 0; - data.procVal2 = Keep; - data.procVal2a = 0; - data.procVal2b = 0; - data.funcOp = Trans; - data.quantVal = host->division(); - data.selChannel = Ignore; - data.selChannela = 0; - data.selChannelb = 0; - data.procChannel = Keep; - data.procChannela = 0; - data.procChannelb = 0; - return false; - } - -//--------------------------------------------------------- -// filterValOp -//--------------------------------------------------------- - -static bool filterValOp(ValOp op, int val, int val1, int val2) - { - switch (op) { - case Ignore: - break; - case Equal: - if (val != val1) - return true; - break; - case Unequal: - if (val == val1) - return true; - break; - case Higher: - if (val <= val1) - return true; - break; - case Lower: - if (val >= val1) - return true; - break; - case Inside: - if ((val < val1) || (val >= val2)) - return true; - break; - case Outside: - if ((val >= val1) && (val < val2)) - return true; - break; - } - return false; - } - -//--------------------------------------------------------- -// apply -// apply Select filter -// return 0 - not applied -// 1 - drop event -// 2 - event changed -//--------------------------------------------------------- - -void Transform::process(unsigned, unsigned, MidiEventList* il, MidiEventList* ol) - { - for (iMidiEvent i = il->begin(); i != il->end(); ++i) { - MidiEvent event(*i); - if (filterEvent(event) == 1) - continue; - ol->insert(event); - } - } - -//--------------------------------------------------------- -// filterEvent -//--------------------------------------------------------- - -int Transform::filterEvent(MidiEvent& event) - { - switch (data.selEventOp) { - case Equal: - switch(event.type()) { - case 0x90: - case 0x80: - if (data.selType != 0x90) - return 0; - break; - default: - if (event.type() != data.selType) - return 0; - break; - } - break; - case Unequal: - switch(event.type()) { - case 0x90: - case 0x80: - if (data.selType == 0x90) - return 0; - break; - default: - if (event.type() == data.selType) - return 0; - break; - } - break; - default: - break; - } - if (filterValOp(data.selVal1, event.dataA(), data.selVal1a, data.selVal1b)) - return 0; - if (filterValOp(data.selVal2, event.dataB(), data.selVal2a, data.selVal2b)) - return 0; - if (filterValOp(data.selChannel, event.channel(), data.selChannela, data.selChannelb)) - return 0; - - if (data.funcOp == Delete) - return 1; // discard event - - // transform event - if (data.procEvent != Keep) - event.setType(data.eventType); - - //--------------------------------------------------- - // transform value A - //--------------------------------------------------- - - int val = event.dataA(); - switch (data.procVal1) { - case Keep: - break; - case Plus: - val += data.procVal1a; - break; - case Minus: - val -= data.procVal1a; - break; - case Multiply: - val = int(val * (data.procVal1a/100.0) + .5); - break; - case Divide: - val = int(val / (data.procVal1a/100.0) + .5); - break; - case Fix: - val = data.procVal1a; - break; - case Value: - val = data.procVal2a; - break; - case Invert: - val = 127 - val; - break; - case ScaleMap: - printf("scale map not implemented\n"); - break; - case Flip: - val = data.procVal1a - val; - break; - case Dynamic: // "crescendo" - printf("transform not implemented\n"); - break; - case Random: - { - int range = data.procVal1b - data.procVal1a; - if (range > 0) - val = (rand() % range) + data.procVal1a; - else if (range < 0) - val = (rand() % -range) + data.procVal1b; - else - val = data.procVal1a; - } - break; - } - if (val < 0) - val = 0; - if (val > 127) - val = 127; - event.setA(val); - - //--------------------------------------------------- - // transform value B - //--------------------------------------------------- - - val = event.dataB(); - switch (data.procVal2) { - case Plus: - val += data.procVal2a; - break; - case Minus: - val -= data.procVal2a; - break; - case Multiply: - val = int(val * (data.procVal2a/100.0) + .5); - break; - case Divide: - val = int(val / (data.procVal2a/100.0) + .5); - break; - case Fix: - val = data.procVal2a; - break; - case Value: - val = data.procVal1a; - break; - case Invert: - val = 127 - val; - break; - case Dynamic: - printf("transform not implemented\n"); - break; - case Random: - { - int range = data.procVal2b - data.procVal2a; - if (range > 0) - val = (rand() % range) + data.procVal2a; - else if (range < 0) - val = (rand() % -range) + data.procVal2b; - else - val = data.procVal2a; - } - break; - case ScaleMap: - case Keep: - case Flip: - break; - } - if (val < 0) - val = 0; - if (val > 127) - val = 127; - event.setB(val); - - //--------------------------------------------------- - // transform channel - //--------------------------------------------------- - - val = event.channel(); - switch (data.procChannel) { - case Plus: - val += data.procChannela; - break; - case Minus: - val -= data.procChannela; - break; - case Multiply: - val = int(val * (data.procChannela/100.0) + .5); - break; - case Divide: - val = int(val / (data.procChannela/100.0) + .5); - break; - case Fix: - val = data.procChannela; - break; - case Value: - val = data.procChannela; - break; - case Invert: - val = 16 - val; - break; - case Dynamic: - printf("transform not implemented\n"); - break; - case Random: - { - int range = data.procChannelb - data.procChannela; - if (range > 0) - val = (rand() % range) + data.procChannela; - else if (range < 0) - val = (rand() % -range) + data.procChannelb; - else - val = data.procChannela; - } - break; - case ScaleMap: - case Keep: - case Flip: - break; - } - if (val < 0) - val = 0; - if (val > 15) - val = 15; - event.setChannel(val); - return 2; - } - -//--------------------------------------------------------- -// getGeometry -//--------------------------------------------------------- - -void Transform::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 Transform::setGeometry(int x, int y, int w, int h) - { - gui->resize(QSize(w, h)); - gui->move(QPoint(x, y)); - } - -//--------------------------------------------------------- -// TransformDialog -// Widgets: -// selEventOp selType -// selVal1Op selVal1a selVal1b -// selVal2Op selVal2a selVal2b -// -// procEventOp procType -// procVal1Op procVal1a procVal1b -// procVal2Op procVal2a procVal2b -// funcOp funcQuantVal -// buttonNew buttonDelete -// -// selChannelOp selChannelVala selChannelValb -// procChannelOp procChannelVala procChannelValb -//--------------------------------------------------------- - -TransformDialog::TransformDialog(Transform* tf, QWidget* parent) - : QDialog(parent) - { - setupUi(this); - cmt = tf; - - for (unsigned i = 0; i < sizeof(oplist)/sizeof(*oplist); ++i) - funcOp->addItem(oplist[i].text, i); - - connect(selEventOp, SIGNAL(activated(int)), SLOT(selEventOpSel(int))); - connect(selType, SIGNAL(activated(int)), SLOT(selTypeSel(int))); - connect(selVal1Op, SIGNAL(activated(int)), SLOT(selVal1OpSel(int))); - connect(selVal2Op, SIGNAL(activated(int)), SLOT(selVal2OpSel(int))); - connect(procEventOp, SIGNAL(activated(int)), SLOT(procEventOpSel(int))); - connect(procType, SIGNAL(activated(int)), SLOT(procEventTypeSel(int))); - connect(procVal1Op, SIGNAL(activated(int)), SLOT(procVal1OpSel(int))); - connect(procVal2Op, SIGNAL(activated(int)), SLOT(procVal2OpSel(int))); - connect(funcOp, SIGNAL(activated(int)), SLOT(funcOpSel(int))); - connect(selVal1a, SIGNAL(valueChanged(int)), SLOT(selVal1aChanged(int))); - connect(selVal1b, SIGNAL(valueChanged(int)), SLOT(selVal1bChanged(int))); - connect(selVal2a, SIGNAL(valueChanged(int)), SLOT(selVal2aChanged(int))); - connect(selVal2b, SIGNAL(valueChanged(int)), SLOT(selVal2bChanged(int))); - connect(procVal1a, SIGNAL(valueChanged(int)), SLOT(procVal1aChanged(int))); - connect(procVal1b, SIGNAL(valueChanged(int)), SLOT(procVal1bChanged(int))); - connect(procVal2a, SIGNAL(valueChanged(int)), SLOT(procVal2aChanged(int))); - connect(procVal2b, SIGNAL(valueChanged(int)), SLOT(procVal2bChanged(int))); - connect(selChannelOp, SIGNAL(activated(int)), SLOT(selChannelOpSel(int))); - connect(selChannelVala, SIGNAL(valueChanged(int)), SLOT(selChannelValaChanged(int))); - connect(selChannelValb, SIGNAL(valueChanged(int)), SLOT(selChannelValbChanged(int))); - connect(procChannelOp, SIGNAL(activated(int)), SLOT(procChannelOpSel(int))); - connect(procChannelVala, SIGNAL(valueChanged(int)), SLOT(procChannelValaChanged(int))); - connect(procChannelValb, SIGNAL(valueChanged(int)), SLOT(procChannelValbChanged(int))); - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- - -void TransformDialog::init() - { - selEventOp->setCurrentIndex(cmt->data.selEventOp); - selEventOpSel(cmt->data.selEventOp); - - for (unsigned i = 0; i < sizeof(eventTypeTable)/sizeof(*eventTypeTable); ++i) { - if (eventTypeTable[i] == cmt->data.selType) { - selType->setCurrentIndex(i); - break; - } - } - - selVal1Op->setCurrentIndex(cmt->data.selVal1); - selVal1OpSel(cmt->data.selVal1); - - selVal2Op->setCurrentIndex(cmt->data.selVal2); - selVal2OpSel(cmt->data.selVal2); - - selChannelOp->setCurrentIndex(cmt->data.selChannel); - selChannelOpSel(cmt->data.selChannel); - - { - unsigned i; - for (i = 0; i < sizeof(oplist)/sizeof(*oplist); ++i) { - if (oplist[i].id == cmt->data.funcOp) { - funcOp->setCurrentIndex(i); - break; - } - } - if (i == sizeof(oplist)/sizeof(*oplist)) - printf("internal error: bad OpCode\n"); - funcOpSel(i); - } - - procEventOp->setCurrentIndex(cmt->data.procEvent); - procEventOpSel(cmt->data.procEvent); - - procVal1Op->setCurrentIndex(cmt->data.procVal1); - procVal1OpSel(cmt->data.procVal1); - - for (unsigned i = 0; i < sizeof(procVal2Map)/sizeof(*procVal2Map); ++i) { - if (procVal2Map[i] == cmt->data.procVal2) { - procVal2Op->setCurrentIndex(i); - break; - } - } - - selVal1a->setValue(cmt->data.selVal1a); - selVal1b->setValue(cmt->data.selVal1b); - selVal1aChanged(cmt->data.selVal1a); - selVal1bChanged(cmt->data.selVal1b); - - selVal2a->setValue(cmt->data.selVal2a); - selVal2b->setValue(cmt->data.selVal2b); - - selChannelVala->setValue(cmt->data.selChannela); - selChannelValb->setValue(cmt->data.selChannelb); - - procVal1a->setValue(cmt->data.procVal1a); - procVal1b->setValue(cmt->data.procVal1b); - - procVal2a->setValue(cmt->data.procVal2a); - procVal2b->setValue(cmt->data.procVal2b); - - procChannelVala->setValue(cmt->data.procChannela); - procChannelValb->setValue(cmt->data.procChannelb); - } - -//--------------------------------------------------------- -// setValOp -//--------------------------------------------------------- - -void TransformDialog::setValOp(QWidget* a, QWidget* b, ValOp op) - { - switch (op) { - case Ignore: - a->setEnabled(false); - b->setEnabled(false); - break; - case Equal: - case Unequal: - case Higher: - case Lower: - a->setEnabled(true); - b->setEnabled(false); - break; - case Inside: - case Outside: - a->setEnabled(true); - b->setEnabled(true); - break; - } - } - -//--------------------------------------------------------- -// selEventOpSel -//--------------------------------------------------------- - -void TransformDialog::selEventOpSel(int val) - { - selType->setEnabled(val != All); - cmt->data.selEventOp = ValOp(val); - selVal1aChanged(cmt->data.selVal1a); - selVal1bChanged(cmt->data.selVal1b); - } - -//--------------------------------------------------------- -// selTypeSel -//--------------------------------------------------------- - -void TransformDialog::selTypeSel(int val) - { - cmt->data.selType = eventTypeTable[val]; - selVal1aChanged(cmt->data.selVal1a); - selVal1bChanged(cmt->data.selVal1b); - } - -//--------------------------------------------------------- -// selVal1OpSel -//--------------------------------------------------------- - -void TransformDialog::selVal1OpSel(int val) - { - setValOp(selVal1a, selVal1b, ValOp(val)); - cmt->data.selVal1 = ValOp(val); - } - -//--------------------------------------------------------- -// selVal2OpSel -//--------------------------------------------------------- - -void TransformDialog::selVal2OpSel(int val) - { - setValOp(selVal2a, selVal2b, ValOp(val)); - cmt->data.selVal2 = ValOp(val); - } - -//--------------------------------------------------------- -// procEventOpSel -//--------------------------------------------------------- - -void TransformDialog::procEventOpSel(int val) - { - TransformOperator op = val == 0 ? Keep : Fix; - procType->setEnabled(op == Fix); - cmt->data.procEvent = op; - } - -//--------------------------------------------------------- -// procEventTypeSel -//--------------------------------------------------------- - -void TransformDialog::procEventTypeSel(int val) - { - cmt->data.eventType = eventTypeTable[val]; - } - -//--------------------------------------------------------- -// procVal1OpSel -//--------------------------------------------------------- - -void TransformDialog::procVal1OpSel(int val) - { - cmt->data.procVal1 = TransformOperator(val); - switch(TransformOperator(val)) { - case Keep: - case Invert: - procVal1a->setEnabled(false); - procVal1b->setEnabled(false); - break; - case Multiply: - case Divide: - procVal1a->setEnabled(true); - procVal1b->setEnabled(false); - break; - case Plus: - case Minus: - case Fix: - case Value: - case Flip: - procVal1a->setEnabled(true); - procVal1b->setEnabled(false); - break; - case Random: - case ScaleMap: - case Dynamic: - procVal1a->setEnabled(true); - procVal1b->setEnabled(true); - break; - } - } - -//--------------------------------------------------------- -// procVal2OpSel -//--------------------------------------------------------- - -void TransformDialog::procVal2OpSel(int val) - { - TransformOperator op = TransformOperator(procVal2Map[val]); - cmt->data.procVal2 = op; - - switch (op) { - case Keep: - case Invert: - procVal2a->setEnabled(false); - procVal2b->setEnabled(false); - break; - case Multiply: - case Divide: - procVal2a->setEnabled(true); - procVal2b->setEnabled(false); - break; - case Plus: - case Minus: - case Fix: - case Value: - procVal2a->setEnabled(true); - procVal2b->setEnabled(false); - break; - case Random: - case Dynamic: - procVal2a->setEnabled(true); - procVal2b->setEnabled(true); - break; - default: - break; - } - } - -//--------------------------------------------------------- -// funcOpSel -//--------------------------------------------------------- - -void TransformDialog::funcOpSel(int val) - { - TransformFunction op = oplist[val].id; - - bool isFuncOp(op == Trans); - - procEventOp->setEnabled(isFuncOp); - procType->setEnabled(isFuncOp); - procVal1Op->setEnabled(isFuncOp); - procVal1a->setEnabled(isFuncOp); - procVal1b->setEnabled(isFuncOp); - procVal2Op->setEnabled(isFuncOp); - procVal2a->setEnabled(isFuncOp); - procVal2b->setEnabled(isFuncOp); - procChannelOp->setEnabled(isFuncOp); - procChannelVala->setEnabled(isFuncOp); - procChannelValb->setEnabled(isFuncOp); - if (isFuncOp) { - procEventOpSel(cmt->data.procEvent); - procVal1OpSel(cmt->data.procVal1); - procVal2OpSel(cmt->data.procVal2); - procChannelOpSel(cmt->data.procChannel); - } - cmt->data.funcOp = op; - } - -//--------------------------------------------------------- -// selVal1aChanged -//--------------------------------------------------------- - -void TransformDialog::selVal1aChanged(int val) - { - cmt->data.selVal1a = val; - if ((cmt->data.selEventOp != All) - && (cmt->data.selType == 0x90)) { - selVal1a->setSuffix(" - " + pitch2string(val)); - } - else - selVal1a->setSuffix(QString("")); - } - -//--------------------------------------------------------- -// selVal1bChanged -//--------------------------------------------------------- - -void TransformDialog::selVal1bChanged(int val) - { - cmt->data.selVal1b = val; - if ((cmt->data.selEventOp != All) - && (cmt->data.selType == 0x90)) { - selVal1b->setSuffix(" - " + pitch2string(val)); - } - else - selVal1b->setSuffix(QString("")); - } - -//--------------------------------------------------------- -// selVal2aChanged -//--------------------------------------------------------- - -void TransformDialog::selVal2aChanged(int val) - { - cmt->data.selVal2a = val; - } - -//--------------------------------------------------------- -// selVal2bChanged -//--------------------------------------------------------- - -void TransformDialog::selVal2bChanged(int val) - { - cmt->data.selVal2b = val; - } - -//--------------------------------------------------------- -// procVal1aChanged -//--------------------------------------------------------- - -void TransformDialog::procVal1aChanged(int val) - { - cmt->data.procVal1a = val; - } - -//--------------------------------------------------------- -// procVal1bChanged -//--------------------------------------------------------- - -void TransformDialog::procVal1bChanged(int val) - { - cmt->data.procVal1b = val; - } - -//--------------------------------------------------------- -// procVal2aChanged -//--------------------------------------------------------- - -void TransformDialog::procVal2aChanged(int val) - { - cmt->data.procVal2a = val; - } - -//--------------------------------------------------------- -// procVal2bChanged -//--------------------------------------------------------- - -void TransformDialog::procVal2bChanged(int val) - { - cmt->data.procVal2b = val; - } - -//--------------------------------------------------------- -// selChannelOpSel -//--------------------------------------------------------- - -void TransformDialog::selChannelOpSel(int val) - { - setValOp(selChannelVala, selChannelValb, ValOp(val)); - cmt->data.selChannel = ValOp(val); - } - -//--------------------------------------------------------- -// selChannelValaChanged -//--------------------------------------------------------- - -void TransformDialog::selChannelValaChanged(int val) - { - cmt->data.selChannela = val; - } - -//--------------------------------------------------------- -// selChannelValbChanged -//--------------------------------------------------------- - -void TransformDialog::selChannelValbChanged(int val) - { - cmt->data.selChannelb = val; - } - -//--------------------------------------------------------- -// procChannelOpSel -//--------------------------------------------------------- - -void TransformDialog::procChannelOpSel(int val) - { - cmt->data.procChannel = TransformOperator(val); - switch(TransformOperator(val)) { - case Keep: - case Invert: - procChannelVala->setEnabled(false); - procChannelValb->setEnabled(false); - break; - case Multiply: - case Divide: - procChannelVala->setEnabled(true); - procChannelValb->setEnabled(false); - break; - case Plus: - case Minus: - case Fix: - case Value: - case Flip: - procChannelVala->setEnabled(true); - procChannelValb->setEnabled(false); - break; - case Random: - case ScaleMap: - case Dynamic: - procChannelVala->setEnabled(true); - procChannelValb->setEnabled(true); - break; - } - } - -//--------------------------------------------------------- -// procChannelValaChanged -//--------------------------------------------------------- - -void TransformDialog::procChannelValaChanged(int val) - { - cmt->data.procChannela = val; - } - -//--------------------------------------------------------- -// procChannelValbChanged -//--------------------------------------------------------- - -void TransformDialog::procChannelValbChanged(int val) - { - cmt->data.procChannelb = val; - } - -//--------------------------------------------------------- -// getInitData -//--------------------------------------------------------- - -void Transform::getInitData(int* n, const unsigned char** p) const - { - *n = sizeof(data); - *p = (unsigned char*)&data; - } - -//--------------------------------------------------------- -// setInitData -//--------------------------------------------------------- - -void Transform::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 Transform(name, h); - } - -extern "C" { - static MEMPI descriptor = { - "Transformator", - "MusE Midi Event Transformator", - "0.1", // version string - MEMPI_FILTER, - MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, - instantiate - }; - - const MEMPI* mempi_descriptor() { return &descriptor; } - } - diff --git a/muse_qt4_evolution/midiplugins/transform/transform.h b/muse_qt4_evolution/midiplugins/transform/transform.h deleted file mode 100644 index 6f68698d..00000000 --- a/muse_qt4_evolution/midiplugins/transform/transform.h +++ /dev/null @@ -1,126 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: transform.h,v 1.5 2005/10/05 17:02:03 lunar_shuttle Exp $ -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __TRANSFORM_H__ -#define __TRANSFORM_H__ - -#include "../libmidiplugin/mempi.h" -#include "ui_transform.h" - -class Transform; - -namespace AL { - class Xml; - }; -using AL::Xml; - -enum ValOp { - All=0, Ignore=0, Equal=1, Unequal=2, Higher=3, Lower=4, - Inside=5, Outside=6 - }; - -enum TransformFunction { - Select, Quantize, Delete, Trans, Insert, Copy, Extract - }; - -enum TransformOperator { - Keep, Plus, Minus, Multiply, Divide, Fix, Value, Invert, - ScaleMap, Flip, Dynamic, Random - }; - -//--------------------------------------------------------- -// TransformDialog -//--------------------------------------------------------- - -class TransformDialog : public QDialog, public Ui::TransformDialogBase { - Q_OBJECT - Transform* cmt; - - void setValOp(QWidget* a, QWidget* b, ValOp op); - - signals: - void hideWindow(); - - private slots: - void selEventOpSel(int); - void selTypeSel(int); - void selVal1OpSel(int); - void selVal2OpSel(int); - void procEventOpSel(int); - void procEventTypeSel(int); - void procVal1OpSel(int); - void procVal2OpSel(int); - void funcOpSel(int); - void selVal1aChanged(int); - void selVal1bChanged(int); - void selVal2aChanged(int); - void selVal2bChanged(int); - void procVal1aChanged(int); - void procVal1bChanged(int); - void procVal2aChanged(int); - void procVal2bChanged(int); - void selChannelOpSel(int); - void selChannelValaChanged(int); - void selChannelValbChanged(int); - void procChannelOpSel(int); - void procChannelValaChanged(int); - void procChannelValbChanged(int); - - public: - TransformDialog(Transform*, QWidget* parent); - void init(); - }; - -//--------------------------------------------------------- -// Transform -//--------------------------------------------------------- - -class Transform : public Mempi { - int filterEvent(MidiEvent& event); - - public: - struct initData { - ValOp selEventOp; - int selType; - - ValOp selVal1; - int selVal1a, selVal1b; - ValOp selVal2; - int selVal2a, selVal2b; - ValOp selChannel; - int selChannela, selChannelb; - - TransformOperator procEvent; - int eventType; - TransformOperator procVal1; - int procVal1a, procVal1b; - TransformOperator procVal2; - int procVal2a, procVal2b; - TransformOperator procChannel; - int procChannela, procChannelb; - - TransformFunction funcOp; - int quantVal; - } data; - - TransformDialog* gui; - virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*); - - Transform(const char* name, const MempiHost*); - 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/muse_qt4_evolution/midiplugins/transform/transform.ui b/muse_qt4_evolution/midiplugins/transform/transform.ui deleted file mode 100644 index c23cf343..00000000 --- a/muse_qt4_evolution/midiplugins/transform/transform.ui +++ /dev/null @@ -1,616 +0,0 @@ -<ui version="4.0" > - <author></author> - <comment></comment> - <exportmacro></exportmacro> - <class>TransformDialogBase</class> - <widget class="QDialog" name="TransformDialogBase" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>630</width> - <height>418</height> - </rect> - </property> - <property name="windowTitle" > - <string>MusE: Midi Input Transformator</string> - </property> - <property name="sizeGripEnabled" > - <bool>true</bool> - </property> - <layout class="QVBoxLayout" > - <property name="margin" > - <number>11</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item> - <widget class="QGroupBox" name="GroupBox3" > - <property name="title" > - <string>Filter</string> - </property> - <layout class="QGridLayout" > - <property name="margin" > - <number>11</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item row="1" column="0" > - <widget class="QComboBox" name="selEventOp" > - <item> - <property name="text" > - <string>All</string> - </property> - </item> - <item> - <property name="text" > - <string>Equal</string> - </property> - </item> - <item> - <property name="text" > - <string>Unequal</string> - </property> - </item> - </widget> - </item> - <item row="2" column="0" > - <widget class="QComboBox" name="selType" > - <item> - <property name="text" > - <string>Note</string> - </property> - </item> - <item> - <property name="text" > - <string>Poly Pressure</string> - </property> - </item> - <item> - <property name="text" > - <string>Control Change</string> - </property> - </item> - <item> - <property name="text" > - <string>Aftertouch</string> - </property> - </item> - <item> - <property name="text" > - <string>Pitch Bend</string> - </property> - </item> - <item> - <property name="text" > - <string>NRPN</string> - </property> - </item> - <item> - <property name="text" > - <string>RPN</string> - </property> - </item> - </widget> - </item> - <item row="0" column="2" > - <widget class="QLabel" name="TextLabel3" > - <property name="text" > - <string>Value 2</string> - </property> - </widget> - </item> - <item row="0" column="1" > - <widget class="QLabel" name="TextLabel2" > - <property name="text" > - <string>Value 1</string> - </property> - </widget> - </item> - <item row="0" column="0" > - <widget class="QLabel" name="TextLabel1" > - <property name="text" > - <string>Event Type</string> - </property> - </widget> - </item> - <item row="1" column="1" > - <widget class="QComboBox" name="selVal1Op" > - <item> - <property name="text" > - <string>Ignore</string> - </property> - </item> - <item> - <property name="text" > - <string>Equal</string> - </property> - </item> - <item> - <property name="text" > - <string>Unequal</string> - </property> - </item> - <item> - <property name="text" > - <string>Higher</string> - </property> - </item> - <item> - <property name="text" > - <string>Lower</string> - </property> - </item> - <item> - <property name="text" > - <string>Inside</string> - </property> - </item> - <item> - <property name="text" > - <string>Outside</string> - </property> - </item> - </widget> - </item> - <item row="3" column="1" > - <widget class="QSpinBox" name="selVal1b" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="3" column="2" > - <widget class="QSpinBox" name="selVal2b" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="2" column="1" > - <widget class="QSpinBox" name="selVal1a" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="1" column="2" > - <widget class="QComboBox" name="selVal2Op" > - <item> - <property name="text" > - <string>Ignore</string> - </property> - </item> - <item> - <property name="text" > - <string>Equal</string> - </property> - </item> - <item> - <property name="text" > - <string>Unequal</string> - </property> - </item> - <item> - <property name="text" > - <string>Higher</string> - </property> - </item> - <item> - <property name="text" > - <string>Lower</string> - </property> - </item> - <item> - <property name="text" > - <string>Inside</string> - </property> - </item> - <item> - <property name="text" > - <string>Outside</string> - </property> - </item> - </widget> - </item> - <item row="1" column="3" > - <widget class="QComboBox" name="selChannelOp" > - <item> - <property name="text" > - <string>Ignore</string> - </property> - </item> - <item> - <property name="text" > - <string>Equal</string> - </property> - </item> - <item> - <property name="text" > - <string>Unequal</string> - </property> - </item> - <item> - <property name="text" > - <string>Higher</string> - </property> - </item> - <item> - <property name="text" > - <string>Lower</string> - </property> - </item> - <item> - <property name="text" > - <string>Inside</string> - </property> - </item> - <item> - <property name="text" > - <string>Outside</string> - </property> - </item> - </widget> - </item> - <item row="0" column="3" > - <widget class="QLabel" name="TextLabel2_2" > - <property name="text" > - <string>Channel</string> - </property> - </widget> - </item> - <item row="2" column="2" > - <widget class="QSpinBox" name="selVal2a" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="2" column="3" > - <widget class="QSpinBox" name="selChannelVala" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="3" column="3" > - <widget class="QSpinBox" name="selChannelValb" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="GroupBox5" > - <property name="title" > - <string>Processing</string> - </property> - <layout class="QGridLayout" > - <property name="margin" > - <number>11</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item row="0" column="0" > - <widget class="QLabel" name="TextLabel5" > - <property name="text" > - <string>Event Type</string> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QComboBox" name="procEventOp" > - <item> - <property name="text" > - <string>Keep</string> - </property> - </item> - <item> - <property name="text" > - <string>Fix</string> - </property> - </item> - </widget> - </item> - <item row="2" column="0" > - <widget class="QComboBox" name="procType" > - <item> - <property name="text" > - <string>Note</string> - </property> - </item> - <item> - <property name="text" > - <string>Poly Pressure</string> - </property> - </item> - <item> - <property name="text" > - <string>Control Change</string> - </property> - </item> - <item> - <property name="text" > - <string>Aftertouch</string> - </property> - </item> - <item> - <property name="text" > - <string>Pitch Bend</string> - </property> - </item> - <item> - <property name="text" > - <string>NRPN</string> - </property> - </item> - <item> - <property name="text" > - <string>RPN</string> - </property> - </item> - </widget> - </item> - <item row="1" column="1" > - <widget class="QComboBox" name="procVal1Op" > - <item> - <property name="text" > - <string>Keep</string> - </property> - </item> - <item> - <property name="text" > - <string>Plus</string> - </property> - </item> - <item> - <property name="text" > - <string>Minus</string> - </property> - </item> - <item> - <property name="text" > - <string>Multiply</string> - </property> - </item> - <item> - <property name="text" > - <string>Divide</string> - </property> - </item> - <item> - <property name="text" > - <string>Fix</string> - </property> - </item> - <item> - <property name="text" > - <string>Value 2</string> - </property> - </item> - <item> - <property name="text" > - <string>Invert</string> - </property> - </item> - <item> - <property name="text" > - <string>ScaleMap</string> - </property> - </item> - <item> - <property name="text" > - <string>Flip</string> - </property> - </item> - <item> - <property name="text" > - <string>Dyn</string> - </property> - </item> - <item> - <property name="text" > - <string>Random</string> - </property> - </item> - </widget> - </item> - <item row="0" column="1" > - <widget class="QLabel" name="TextLabel6" > - <property name="text" > - <string>Value 1</string> - </property> - </widget> - </item> - <item row="0" column="2" > - <widget class="QLabel" name="TextLabel7" > - <property name="text" > - <string>Value 2</string> - </property> - </widget> - </item> - <item row="3" column="1" > - <widget class="QSpinBox" name="procVal1b" > - <property name="maximum" > - <number>9999</number> - </property> - </widget> - </item> - <item row="3" column="2" > - <widget class="QSpinBox" name="procVal2b" > - <property name="maximum" > - <number>9999</number> - </property> - </widget> - </item> - <item row="3" column="3" > - <widget class="QSpinBox" name="procChannelValb" > - <property name="maximum" > - <number>127</number> - </property> - </widget> - </item> - <item row="1" column="2" > - <widget class="QComboBox" name="procVal2Op" > - <item> - <property name="text" > - <string>Keep</string> - </property> - </item> - <item> - <property name="text" > - <string>Plus</string> - </property> - </item> - <item> - <property name="text" > - <string>Minus</string> - </property> - </item> - <item> - <property name="text" > - <string>Multiply</string> - </property> - </item> - <item> - <property name="text" > - <string>Divide</string> - </property> - </item> - <item> - <property name="text" > - <string>Fix</string> - </property> - </item> - <item> - <property name="text" > - <string>Value 1</string> - </property> - </item> - <item> - <property name="text" > - <string>Invert</string> - </property> - </item> - <item> - <property name="text" > - <string>Dyn</string> - </property> - </item> - <item> - <property name="text" > - <string>Random</string> - </property> - </item> - </widget> - </item> - <item row="1" column="3" > - <widget class="QComboBox" name="procChannelOp" > - <item> - <property name="text" > - <string>Keep</string> - </property> - </item> - <item> - <property name="text" > - <string>Plus</string> - </property> - </item> - <item> - <property name="text" > - <string>Minus</string> - </property> - </item> - <item> - <property name="text" > - <string>Multiply</string> - </property> - </item> - <item> - <property name="text" > - <string>Divide</string> - </property> - </item> - <item> - <property name="text" > - <string>Fix</string> - </property> - </item> - <item> - <property name="text" > - <string>Value 1</string> - </property> - </item> - <item> - <property name="text" > - <string>Invert</string> - </property> - </item> - <item> - <property name="text" > - <string>Dyn</string> - </property> - </item> - <item> - <property name="text" > - <string>Random</string> - </property> - </item> - </widget> - </item> - <item row="0" column="3" > - <widget class="QLabel" name="TextLabel2_2_2" > - <property name="text" > - <string>Channel</string> - </property> - </widget> - </item> - <item row="3" column="0" > - <widget class="QComboBox" name="funcOp" /> - </item> - <item row="2" column="1" > - <widget class="QSpinBox" name="procVal1a" /> - </item> - <item row="2" column="2" > - <widget class="QSpinBox" name="procVal2a" /> - </item> - <item row="2" column="3" > - <widget class="QSpinBox" name="procChannelVala" /> - </item> - </layout> - </widget> - </item> - </layout> - </widget> - <layoutdefault spacing="6" margin="11" /> - <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> - <tabstops> - <tabstop>selEventOp</tabstop> - <tabstop>selType</tabstop> - <tabstop>selVal1Op</tabstop> - <tabstop>selVal1a</tabstop> - <tabstop>selVal1b</tabstop> - <tabstop>selVal2Op</tabstop> - <tabstop>selVal2a</tabstop> - <tabstop>selVal2b</tabstop> - <tabstop>selChannelOp</tabstop> - <tabstop>selChannelVala</tabstop> - <tabstop>selChannelValb</tabstop> - <tabstop>procEventOp</tabstop> - <tabstop>procType</tabstop> - <tabstop>procVal1Op</tabstop> - <tabstop>procVal1b</tabstop> - <tabstop>procVal2Op</tabstop> - <tabstop>procVal2b</tabstop> - <tabstop>procChannelOp</tabstop> - <tabstop>procChannelValb</tabstop> - </tabstops> - <resources/> - <connections/> -</ui> diff --git a/muse_qt4_evolution/midiplugins/trigg/CMakeLists.txt b/muse_qt4_evolution/midiplugins/trigg/CMakeLists.txt deleted file mode 100644 index 397ccf81..00000000 --- a/muse_qt4_evolution/midiplugins/trigg/CMakeLists.txt +++ /dev/null @@ -1,47 +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 ( trigg_mocs trigggui.h ) -QT4_WRAP_UI ( trigg_uis trigggui.ui ) - -add_library ( trigg SHARED - trigg.cpp - trigggui.cpp - trigggui.h - ${trigg_mocs} - ${trigg_uis} - ) - -target_link_libraries( trigg - midiplugin awl - ${QT_LIBRARIES} - ) - -# - tell cmake to name target name.so instead of -# libname.so -# - use precompiled header files -# -set_target_properties ( trigg - PROPERTIES PREFIX "" - COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h" - ) - -install_targets ( /${CMAKE_INSTALL_LIBDIR}/${MusE_INSTALL_NAME}/midiplugins/ trigg ) - diff --git a/muse_qt4_evolution/midiplugins/trigg/trigg.cpp b/muse_qt4_evolution/midiplugins/trigg/trigg.cpp deleted file mode 100644 index fb3703cb..00000000 --- a/muse_qt4_evolution/midiplugins/trigg/trigg.cpp +++ /dev/null @@ -1,131 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filter.cpp,v 1.10 2005/11/06 17:49:34 wschweer Exp $ -// -// filter - simple midi filter -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "trigggui.h" -#include "trigg.h" -#include "midi.h" -#include "midievent.h" - -//--------------------------------------------------------- -// Trigg -//--------------------------------------------------------- - -Trigg::Trigg(const char* name, const MempiHost* h) - : Mempi(name, h) - { - data.note=30; // allow any events - data.velocity=127; - gui = 0; - } - -//--------------------------------------------------------- -// Trigg -//--------------------------------------------------------- - -Trigg::~Trigg() - { - if (gui) - delete gui; - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- - -bool Trigg::init() - { - gui = new TriggGui(this, 0); - gui->setWindowTitle("MusE: "+QString(name())); - gui->show(); - return false; - } - -//--------------------------------------------------------- -// getGeometry -//--------------------------------------------------------- - -void Trigg::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 Trigg::setGeometry(int x, int y, int w, int h) - { - gui->resize(QSize(w, h)); - gui->move(QPoint(x, y)); - } - -//--------------------------------------------------------- -// process -//--------------------------------------------------------- - -void Trigg::process(unsigned , unsigned , MidiEventList* il, MidiEventList* ol) - { - - for (iMidiEvent i = il->begin(); i != il->end(); ++i) { - MidiEvent temp=*i; - if (temp.isNote() || temp.isNoteOff()) - { - // for each event modify note and velocity - printf("a=%d b=%d isNote=%d isNoteOff=%d\n",temp.dataA(),temp.dataB(),temp.isNote(),temp.isNoteOff()); - temp.setA(data.note); - if (!temp.isNoteOff()) - temp.setB(data.velocity); - printf("AFTER a=%d b=%d\n",temp.dataA(),temp.dataB()); - } - ol->insert(temp); - } - } - -void Trigg::getInitData(int* n, const unsigned char** p) const - { - *n = sizeof(data); - *p = (unsigned char*)&data; - printf("::getInitData note=%d vel=%d\n",data.note,data.velocity); - } - -void Trigg::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 Trigg(name, h); - } - -extern "C" { - static MEMPI descriptor = { - "Trigg", - "Any note triggers a specified note with specified velocity", - "1.0", // filter version string - MEMPI_FILTER, // plugin type - MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, - instantiate - }; - - const MEMPI* mempi_descriptor() { return &descriptor; } - } - diff --git a/muse_qt4_evolution/midiplugins/trigg/trigg.h b/muse_qt4_evolution/midiplugins/trigg/trigg.h deleted file mode 100644 index c29a06a0..00000000 --- a/muse_qt4_evolution/midiplugins/trigg/trigg.h +++ /dev/null @@ -1,49 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filter.h,v 1.4 2005/06/12 08:18:37 wschweer Exp $ -// -// filter - simple midi filter -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __TRIGG_H__ -#define __TRIGG_H__ - -#include "../libmidiplugin/mempi.h" - -//--------------------------------------------------------- -// filter - simple midi filter -//--------------------------------------------------------- -class Trigg : public Mempi { - struct initData { - int note; - int velocity; - } data; - friend class TriggGui; - - TriggGui* gui; - - virtual void process(unsigned, unsigned, MidiEventList*, MidiEventList*); - - public: - Trigg(const char* name, const MempiHost*); - ~Trigg(); - virtual bool init(); - - void setNote(int t) { data.note = t; } - void setVelocity(int t) { data.velocity = t; } - - 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/muse_qt4_evolution/midiplugins/trigg/trigggui.cpp b/muse_qt4_evolution/midiplugins/trigg/trigggui.cpp deleted file mode 100644 index 0fd3c4c6..00000000 --- a/muse_qt4_evolution/midiplugins/trigg/trigggui.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filtergui.cpp,v 1.4 2005/11/06 17:49:34 wschweer Exp $ -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#include "trigggui.h" -#include "trigg.h" - -//--------------------------------------------------------- -// MidiTriggConfig -//--------------------------------------------------------- - -TriggGui::TriggGui(Trigg* f, QWidget* parent) - : QDialog(parent) - { - setupUi(this); - filter = f; - - connect(noteEntry, SIGNAL(valueChanged(int)), SLOT(setNote(int))); - connect(velocityEntry, SIGNAL(valueChanged(int)), SLOT(setVelocity(int))); - } - -//--------------------------------------------------------- -// init -//--------------------------------------------------------- -void TriggGui::init() - { - Trigg::initData *data; - int n; - filter->getInitData(&n,(const unsigned char **)&data); - printf("::init note=%d vel=%d\n",data->note,data->velocity); - noteEntry->setValue(data->note); - velocityEntry->setValue(data->velocity); - } - -//--------------------------------------------------------- -// setNote -//--------------------------------------------------------- -void TriggGui::setNote(int value) - { - printf("TriggGui::setNote %d\n",value); - filter->setNote(value); - } - -//--------------------------------------------------------- -// setVelocity -//--------------------------------------------------------- -void TriggGui::setVelocity(int value) - { - printf("TriggGui::setVelocity %d\n",value); - filter->setVelocity(value); - } - diff --git a/muse_qt4_evolution/midiplugins/trigg/trigggui.h b/muse_qt4_evolution/midiplugins/trigg/trigggui.h deleted file mode 100644 index f4c597fa..00000000 --- a/muse_qt4_evolution/midiplugins/trigg/trigggui.h +++ /dev/null @@ -1,48 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: filtergui.h,v 1.4 2005/11/06 17:49:34 wschweer Exp $ -// -// (C) Copyright 2005 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __FILTERGUI_H__ -#define __FILTERGUI_H__ - -#include "ui_trigggui.h" - -class Trigg; - -enum { - MIDI_FILTER_NOTEON = 1, - MIDI_FILTER_POLYP = 2, - MIDI_FILTER_CTRL = 4, - MIDI_FILTER_PROGRAM = 8, - MIDI_FILTER_AT = 16, - MIDI_FILTER_PITCH = 32, - MIDI_FILTER_SYSEX = 64 - }; - -//--------------------------------------------------------- -// TriggGui -//--------------------------------------------------------- - -class TriggGui : public QDialog, public Ui::TriggBase { - Q_OBJECT - - Trigg* filter; - - signals: - void hideWindow(); - - private slots: - void setNote(int ); - void setVelocity(int ); - - public: - TriggGui(Trigg*, QWidget* parent=0); - void init(); - }; - -#endif - diff --git a/muse_qt4_evolution/midiplugins/trigg/trigggui.ui b/muse_qt4_evolution/midiplugins/trigg/trigggui.ui deleted file mode 100644 index 5c096e24..00000000 --- a/muse_qt4_evolution/midiplugins/trigg/trigggui.ui +++ /dev/null @@ -1,109 +0,0 @@ -<ui version="4.0" > - <author></author> - <comment></comment> - <exportmacro></exportmacro> - <class>TriggBase</class> - <widget class="QDialog" name="TriggBase" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>233</width> - <height>125</height> - </rect> - </property> - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>3</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="windowTitle" > - <string>MusE: Midi Input Trigg</string> - </property> - <layout class="QGridLayout" > - <property name="margin" > - <number>9</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item row="0" column="0" > - <widget class="QGroupBox" name="GroupBoxx" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title" > - <string>Trigg</string> - </property> - <layout class="QGridLayout" > - <property name="margin" > - <number>9</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item row="0" column="0" > - <layout class="QGridLayout" > - <property name="margin" > - <number>0</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item row="1" column="1" > - <widget class="QLabel" name="label_2" > - <property name="text" > - <string>Velocity</string> - </property> - </widget> - </item> - <item row="0" column="0" > - <widget class="QSpinBox" name="noteEntry" > - <property name="maximum" > - <number>127</number> - </property> - <property name="value" > - <number>30</number> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QSpinBox" name="velocityEntry" > - <property name="maximum" > - <number>127</number> - </property> - <property name="minimum" > - <number>0</number> - </property> - <property name="value" > - <number>127</number> - </property> - </widget> - </item> - <item row="0" column="1" > - <widget class="QLabel" name="label" > - <property name="text" > - <string>Note</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </widget> - <layoutdefault spacing="6" margin="11" /> - <pixmapfunction></pixmapfunction> - <resources/> - <connections/> -</ui> |