From a20708aa3691ba4bcb2e8ebcfe14bc0ad99df4da Mon Sep 17 00:00:00 2001 From: Robert Jonsson Date: Tue, 6 Jul 2010 22:27:09 +0000 Subject: see changelog --- muse/ChangeLog | 4 + muse/muse/arranger/arranger.cpp | 11 + muse/muse/arranger/arranger.h | 2 + muse/muse/arranger/pcanvas.cpp | 135 +++++- muse/muse/arranger/pcanvas.h | 5 + muse/muse/arranger/tlist.cpp | 30 +- muse/muse/arranger/tlist.h | 2 +- muse/muse/arranger/trackautomationview.cpp | 51 +++ muse/muse/arranger/trackautomationview.h | 19 + muse/muse/audiotrack.cpp | 8 +- muse/muse/conf.cpp | 6 +- muse/muse/ctrl.cpp | 26 +- muse/muse/ctrl.h | 5 +- muse/muse/seqmsg.cpp | 9 + muse/muse/wave.cpp | 34 +- muse/muse/wave.h | 2 + muse/muse/waveedit/waveview.cpp | 2 +- muse/muse_svn.config | 1 + muse/muse_svn.creator | 1 + muse/muse_svn.files | 663 +++++++++++++++++++++++++++++ muse/muse_svn.includes | 29 ++ 21 files changed, 997 insertions(+), 48 deletions(-) create mode 100644 muse/muse/arranger/trackautomationview.cpp create mode 100644 muse/muse/arranger/trackautomationview.h create mode 100644 muse/muse_svn.config create mode 100644 muse/muse_svn.creator create mode 100644 muse/muse_svn.files create mode 100644 muse/muse_svn.includes diff --git a/muse/ChangeLog b/muse/ChangeLog index eafb17d4..6f72163a 100644 --- a/muse/ChangeLog +++ b/muse/ChangeLog @@ -1,6 +1,10 @@ 06.07.2010 * Added: Button in transport to enable/disable jack transport. (rj) * Fixed: Dropdown Snap and Type in arranger toolbar no longer steal focus, annoyed the helloutame (rj) + * Fixed: Making edits to larger chunks in wave files no longer cause a crash, heap is used for allocation (rj) + * Improved: Part selection when navigating with keyboard, previously there was sometimes a need to use the mouse + to get a part selected, now one should be arbitrarily selected (rj) + * Added: some automation (very)wip stuff, not enabled, just to get it off my harddrive (rj) 22.06.2010 * Fixed: Crashes loading a song while another is loaded. Or worse, it loads but saving corrupts the file! (T356) - Song::clear(): Clear all midi port devices. Delete Jack midi devices, and remove all ALSA midi device routes. diff --git a/muse/muse/arranger/arranger.cpp b/muse/muse/arranger/arranger.cpp index ba26a167..a0c322d4 100644 --- a/muse/muse/arranger/arranger.cpp +++ b/muse/muse/arranger/arranger.cpp @@ -123,6 +123,7 @@ Arranger::Arranger(QMainWindow* parent, const char* name) raster->insertItem(tr(rastval[i]), i); raster->setCurrentItem(1); connect(raster, SIGNAL(activated(int)), SLOT(_setRaster(int))); + raster->setFocusPolicy(QWidget::NoFocus); // Song len label = new QLabel(tr("Len"), toolbar, "Len"); @@ -147,6 +148,7 @@ Arranger::Arranger(QMainWindow* parent, const char* name) connect(typeBox, SIGNAL(activated(int)), SLOT(modeChange(int))); QToolTip::add(typeBox, tr("midi song type")); QWhatsThis::add(typeBox, tr("midi song type")); + typeBox->setFocusPolicy(QWidget::NoFocus); label = new QLabel(tr("Pitch"), toolbar, "Pitch"); label->setAlignment(AlignRight|AlignVCenter); @@ -235,12 +237,16 @@ Arranger::Arranger(QMainWindow* parent, const char* name) header->addLabel(tr("Port"), 60); header->addLabel(tr("Ch"), 30); header->addLabel(tr("T"), fm1.width('T')+fw); + //header->addLabel(tr("Automation"),30); header->setResizeEnabled(false, COL_RECORD); header->setResizeEnabled(false, COL_MUTE); header->setResizeEnabled(false, COL_SOLO); header->setResizeEnabled(false, COL_CLASS); header->setResizeEnabled(false, COL_OCHANNEL); header->setResizeEnabled(false, COL_TIMELOCK); + //header->setResizeEnabled(true, COL_AUTOMATION); + header->setResizeEnabled(true, COL_NAME); + header->setResizeEnabled(true, COL_OPORT); header->setTracking(true); @@ -945,3 +951,8 @@ void Arranger::wheelEvent(QWheelEvent* ev) { emit redirectWheelEvent(ev); } + +void Arranger::controllerChanged(Track *t) +{ + canvas->controllerChanged(t); +} diff --git a/muse/muse/arranger/arranger.h b/muse/muse/arranger/arranger.h index 5621a7ca..7a9fae00 100644 --- a/muse/muse/arranger/arranger.h +++ b/muse/muse/arranger/arranger.h @@ -17,6 +17,7 @@ #include "midieditor.h" #include "pcanvas.h" #include "mtrackinfobase.h" +#include "trackautomationview.h" class QMainWindow; class QToolButton; @@ -193,6 +194,7 @@ class Arranger : public QWidget { void setTool(int); void updateTrackInfo(int flags); void configChanged(); + void controllerChanged(Track *t); public: enum { CMD_CUT_PART, CMD_COPY_PART, CMD_PASTE_PART, CMD_PASTE_CLONE_PART, CMD_PASTE_PART_TO_TRACK, CMD_PASTE_CLONE_PART_TO_TRACK }; diff --git a/muse/muse/arranger/pcanvas.cpp b/muse/muse/arranger/pcanvas.cpp index 2c02adac..f64c1966 100644 --- a/muse/muse/arranger/pcanvas.cpp +++ b/muse/muse/arranger/pcanvas.cpp @@ -561,7 +561,7 @@ void PartCanvas::updateSelection() for (iCItem i = items.begin(); i != items.end(); ++i) { NPart* part = (NPart*)(i->second); part->part()->setSelected(i->second->isSelected()); - } + } emit selectionChanged(); redraw(); } @@ -1098,10 +1098,17 @@ void PartCanvas::keyPress(QKeyEvent* event) // // Shortcuts that require selected parts from here // - if (!curItem) { //TODO: Fix a curItem from selected parts if song is loaded and has selected parts. - event->ignore(); - return; - } + if (!curItem) { + for (iCItem i = items.begin(); i != items.end(); ++i) { + NPart* part = (NPart*)(i->second); + if (part->isSelected()) { + curItem=part; + break; + } + } + if (!curItem) + curItem = (NPart*)items.begin()->second; // just grab the first part + } CItem* newItem = 0; bool singleSelection = isSingleSelection(); @@ -1186,6 +1193,7 @@ void PartCanvas::keyPress(QKeyEvent* event) newItem = i->second; } } + // Select nearest part on track above else if (key == shortcuts[SHRT_SEL_ABOVE].key || key == shortcuts[SHRT_SEL_ABOVE_ADD].key) { if (key == shortcuts[SHRT_SEL_ABOVE_ADD].key) @@ -1196,9 +1204,10 @@ void PartCanvas::keyPress(QKeyEvent* event) track = y2Track(track->y() - 1); //If we're at topmost, leave - if (!track) + if (!track) { + printf("no track above!\n"); return; - + } int middle = curItem->x() + curItem->part()->lenTick()/2; CItem *aboveL = 0, *aboveR = 0; //Upper limit: song end, lower limit: song start @@ -1355,6 +1364,7 @@ void PartCanvas::drawItem(QPainter& p, const CItem* item, const QRect& rect) int from = rect.x(); int to = from + rect.width(); + //printf("from %d to %d\n", from,to); Part* part = ((NPart*)item)->part(); int pTick = part->tick(); from -= pTick; @@ -1368,6 +1378,8 @@ void PartCanvas::drawItem(QPainter& p, const CItem* item, const QRect& rect) //QRect r = item->bbox().intersect(rect); int i = part->colorIndex(); + //printf("part start tick %d part start pixel %d\n", part->tick(), r.x()); + // Added by Tim. p3.3.6 //printf("PartCanvas::drawItem %s evRefs:%d pTick:%d pLen:%d bb.x:%d bb.w:%d rect.x:%d rect.w:%d r.x:%d r.w:%d\n", part->name().latin1(), part->events()->arefCount(), pTick, part->lenTick(), item->bbox().x(), item->bbox().width(), rect.x(), rect.width(), r.x(), r.width()); @@ -2538,7 +2550,7 @@ void PartCanvas::viewDropEvent(QDropEvent* event) //--------------------------------------------------------- void PartCanvas::drawCanvas(QPainter& p, const QRect& rect) - { +{ int x = rect.x(); int y = rect.y(); int w = rect.width(); @@ -2614,19 +2626,116 @@ void PartCanvas::drawCanvas(QPainter& p, const QRect& rect) QRect r = rect & QRect(x, yy, w, track->height()); drawAudioTrack(p, r, (AudioTrack*)track); p.setPen(baseColor); - } + } + if (!track->isMidiTrack()) { // draw automation + QRect r = rect & QRect(x, yy, w, track->height()); + drawAutomation(p, r, (AudioTrack*)track); + p.setPen(baseColor); + + } yy += track->height(); } - } +} //--------------------------------------------------------- // drawAudioTrack //--------------------------------------------------------- -void PartCanvas::drawAudioTrack(QPainter& p, const QRect& r, AudioTrack*) - { +void PartCanvas::drawAudioTrack(QPainter& p, const QRect& r, AudioTrack *t) +{ p.setPen(QPen(black, 2, SolidLine)); p.setBrush(gray); p.drawRect(r); - } +} + +//--------------------------------------------------------- +// drawAutomation +//--------------------------------------------------------- +void PartCanvas::drawAutomation(QPainter& p, const QRect& r, AudioTrack *t) +{ +// printf("drawAudioTrack %d x %d y %d w %d h %d\n",t, r.x(), r.y(), r.width(), r.height()); + //int v2=r.x()+r.width(); + //printf("v2=%d mapx=%d rmapx=%d mapxdev=%d rmapxdev=%d\n",v2, mapx(v2),rmapx(v2),mapxDev(v2),rmapxDev(v2)); + return; + + p.setPen(QPen(black, 2, SolidLine)); + int height=r.bottom()-r.top()-4; // limit height + + CtrlListList* cll = t->controller(); + QColor cols[10]; + cols[0]=white; + cols[1]=red; + cols[2]=yellow; + cols[3]=black; + cols[4]=blue; + int colIndex=0; + bool firstRun=true; + for(CtrlListList::iterator icll =cll->begin();icll!=cll->end();++icll) + { + //iCtrlList *icl = icll->second; + CtrlList *cl = icll->second; + double prevVal; + iCtrl ic=cl->begin(); + p.setPen(QPen(cols[colIndex++],1,SolidLine)); + + if (ic!=cl->end()) { // if there are no automation values we don't draw at all + CtrlVal cvFirst = ic->second; + ic++; + int prevPos=cvFirst.frame; + prevVal = cvFirst.val; + if (cl->id() == AC_VOLUME ) { // use db scale for volume + prevVal = (20.0*log10(cvFirst.val)+60) / 70.0; // represent volume between 0 and 1 + if (prevVal < 0) prevVal = 0.0; + } + else { + // we need to set curVal between 0 and 1 + double min, max; + cl->range(&min,&max); + prevVal = (prevVal- min)/(max-min); + } + for (; ic !=cl->end(); ++ic) + { + CtrlVal cv = ic->second; + double nextVal = cv.val; // was curVal + if (cl->id() == AC_VOLUME ) { // use db scale for volume + nextVal = (20.0*log10(cv.val)+60) / 70.0; // represent volume between 0 and 1 + if (nextVal < 0) nextVal = 0.0; + } + else { + // we need to set curVal between 0 and 1 + double min, max; + cl->range(&min,&max); + nextVal = (nextVal- min)/(max-min); + } + //printf("volume automation event %d %f %f %d\n",cv.frame,cv.val, tempomap.frame2tick(cv.frame)); + //p.drawLine(r.x(),(r.bottom()-2)-lastVal*height,r.x()+r.width(),(r.bottom()-2)-curVal*height); // debuggingtest + int leftX=tempomap.frame2tick(prevPos); + if (firstRun && leftX>r.x()) { + printf("first run\n"); + leftX=r.x(); + } + + printf("inner draw\n"); + p.drawLine(leftX,(r.bottom()-2)-prevVal*height,tempomap.frame2tick(cv.frame),(r.bottom()-2)-prevVal*height); + firstRun=false; + //printf("draw line: %d %f %d %f\n",tempomap.frame2tick(lastPos),r.bottom()-lastVal*height,tempomap.frame2tick(cv.frame),r.bottom()-curVal*height); + prevPos=cv.frame; + prevVal=nextVal; + } + printf("outer draw %f\n", cvFirst.val); + p.drawLine(tempomap.frame2tick(prevPos),(r.bottom()-2)-prevVal*height,tempomap.frame2tick(prevPos)+r.width(),(r.bottom()-2)-prevVal*height); + //printf("draw last line: %d %f %d %f\n",tempomap.frame2tick(lastPos),r.bottom()-lastVal*height,150000,r.bottom()-lastVal*height); + } +// if (height >100) { +// p.drawText(tempomap.frame2tick(0)+1000,40,"FOOO"); +// printf("drawText %s\n", cl->name().latin1()); +// } + } +} + + +void PartCanvas::controllerChanged(Track *t) +{ + redraw(); +} diff --git a/muse/muse/arranger/pcanvas.h b/muse/muse/arranger/pcanvas.h index 8e21e1d0..72d4563f 100644 --- a/muse/muse/arranger/pcanvas.h +++ b/muse/muse/arranger/pcanvas.h @@ -10,6 +10,7 @@ #include "song.h" #include "canvas.h" +#include "trackautomationview.h" #define beats 4 //--------------------------------------------------------- @@ -46,6 +47,7 @@ class PartCanvas : public Canvas { int curColorIndex; bool editMode; + std::vector automationViews; Q_OBJECT virtual void keyPress(QKeyEvent*); virtual void mousePress(QMouseEvent*); @@ -90,6 +92,8 @@ class PartCanvas : public Canvas { void drawWavePart(QPainter&, const QRect&, WavePart*, const QRect&); Track* y2Track(int) const; void drawAudioTrack(QPainter& p, const QRect& r, AudioTrack* track); + void drawAutomation(QPainter& p, const QRect& r, AudioTrack* track); + protected: virtual void drawCanvas(QPainter&, const QRect&); @@ -117,6 +121,7 @@ class PartCanvas : public Canvas { PartCanvas(int* raster, QWidget* parent, int, int); void partsChanged(); void cmd(int); + void controllerChanged(Track *t); public slots: void redirKeypress(QKeyEvent* e) { keyPress(e); } }; diff --git a/muse/muse/arranger/tlist.cpp b/muse/muse/arranger/tlist.cpp index a0379e1b..e76232fa 100644 --- a/muse/muse/arranger/tlist.cpp +++ b/muse/muse/arranger/tlist.cpp @@ -71,7 +71,7 @@ void THeaderTip::maybeTip(const QPoint &pos) //case COL_OPORT: p = QHeader::tr("Output Port"); break; case COL_OPORT: p = QHeader::tr("Midi output port or synth midi port"); break; case COL_TIMELOCK: p = QHeader::tr("Time Lock"); break; - case COL_AUTOMATION: p = QHeader::tr("Automation parameter selection"); break; +// case COL_AUTOMATION: p = QHeader::tr("Automation parameter selection"); break; default: return; } tip(r, p); @@ -351,19 +351,19 @@ void TList::paint(const QRect& r) p.drawText(r, Qt::AlignVCenter|Qt::AlignLeft, s); } break; - case COL_AUTOMATION: - { - QString s="-"; - - if (!track->isMidiTrack()) { - int count = ((AudioTrack*)track)->controller()->size(); - s.sprintf("%d", count); - } - - - p.drawText(r, Qt::AlignVCenter|Qt::AlignLeft, s); - } - break; +// case COL_AUTOMATION: +// { +// QString s="-"; +// +// if (!track->isMidiTrack()) { +// int count = ((AudioTrack*)track)->controller()->size(); +// s.sprintf("%d", count); +// } +// +// +// p.drawText(r, Qt::AlignVCenter|Qt::AlignLeft, s); +// } +// break; default: break; } @@ -1237,7 +1237,7 @@ void TList::wheelEvent(QWheelEvent* ev) case COL_NONE: case COL_CLASS: case COL_NAME: - case COL_AUTOMATION: + //case COL_AUTOMATION: break; case COL_MUTE: // p3.3.29 diff --git a/muse/muse/arranger/tlist.h b/muse/muse/arranger/tlist.h index d6ae810a..ec3ba1af 100644 --- a/muse/muse/arranger/tlist.h +++ b/muse/muse/arranger/tlist.h @@ -30,9 +30,9 @@ enum TrackColumn { COL_OPORT, COL_OCHANNEL, COL_TIMELOCK, - COL_AUTOMATION, COL_NONE = -1 }; +// COL_AUTOMATION, -- not enabled //---------------------------------------------------------- // THeaderTip diff --git a/muse/muse/arranger/trackautomationview.cpp b/muse/muse/arranger/trackautomationview.cpp new file mode 100644 index 00000000..8447ad9a --- /dev/null +++ b/muse/muse/arranger/trackautomationview.cpp @@ -0,0 +1,51 @@ +#include "trackautomationview.h" +#include "math.h" +#include +#include +#include +#include "track.h" + +TrackAutomationView::TrackAutomationView(QWidget *parent, Track *t) : QWidget(parent) +{ + printf("created trackautomationview\n"); + _t = t; + //show(); +} + +void TrackAutomationView::paintEvent(QPaintEvent* e) +{ + QPainter p(this); + const QRect &r = e->rect(); + + // temporary solution, audio track drawing moved here. + // best would be to get transparency to work correctly + p.setPen(QPen(black, 2, SolidLine)); + p.setBrush(gray); + p.drawRect(r); + + int height=r.bottom()-r.top(); + if( _t->type()>1) { // audio type + double volume = ((AudioTrack*)_t)->volume(); + double dbvolume = (20.0*log10(volume)+60) /70.0; // represent volume between 0 and 1 + if (dbvolume < 0) dbvolume =0.0; + printf("height=%d volume=%f dbvolume=%f\n", height, volume, dbvolume); + p.setPen(QPen(yellow,1,SolidLine)); + p.drawLine(r.left(),r.bottom()-dbvolume*height,r.right(),r.bottom()-dbvolume*height); + + } + + + + printf("paintEvent\n"); +} + +void TrackAutomationView::collectAutomationData() +{ + // here we should collect all automation data that is currently selected for viewing and + // prepare an event list that is easy to draw in paintEvent + // the main reason being that the event list in it's entirety likely contains too much data to + // be processed in the paintEvent. Better to preprocess. + +// CtrlListList cll =((AudioTrack*)_t)->controller(); +// cll.count() +} diff --git a/muse/muse/arranger/trackautomationview.h b/muse/muse/arranger/trackautomationview.h new file mode 100644 index 00000000..597d8c6e --- /dev/null +++ b/muse/muse/arranger/trackautomationview.h @@ -0,0 +1,19 @@ +#ifndef TRACKAUTOMATIONVIEW_H +#define TRACKAUTOMATIONVIEW_H + +#include + +#include "track.h" + +class TrackAutomationView : public QWidget +{ + Track *_t; + void paintEvent(QPaintEvent *e); + std::map automationList; +public: + TrackAutomationView(QWidget *parent, Track *t); + Track *track() { return _t; } + void collectAutomationData(); +}; + +#endif // TRACKAUTOMATIONVIEW_H diff --git a/muse/muse/audiotrack.cpp b/muse/muse/audiotrack.cpp index ffc37ab8..189e39d1 100644 --- a/muse/muse/audiotrack.cpp +++ b/muse/muse/audiotrack.cpp @@ -74,12 +74,12 @@ AudioTrack::AudioTrack(TrackType t) _efxPipe = new Pipeline(); _recFile = 0; _channels = 0; - _automationType = AUTO_READ; + _automationType = AUTO_OFF; //setChannels(1); setChannels(2); - addController(new CtrlList(AC_VOLUME)); - addController(new CtrlList(AC_PAN)); - addController(new CtrlList(AC_MUTE)); + addController(new CtrlList(AC_VOLUME,"Volume",0.0,1.0)); + addController(new CtrlList(AC_PAN, "Pan", -1.0, 1.0)); + addController(new CtrlList(AC_MUTE,"Mute",0.0,1.0)); // Changed by Tim. p3.3.15 //outBuffers = new float*[MAX_CHANNELS]; diff --git a/muse/muse/conf.cpp b/muse/muse/conf.cpp index daf74126..983c58f7 100644 --- a/muse/muse/conf.cpp +++ b/muse/muse/conf.cpp @@ -685,7 +685,9 @@ void readConfiguration(Xml& xml, bool readOnlySequencer) else if (tag == "extSync") extSyncFlag.setValue(xml.parseInt()); else if (tag == "useJackTransport") - useJackTransport = xml.parseInt(); + { + useJackTransport.setValue(xml.parseInt()); + } else if (tag == "jackTransportMaster") { jackTransportMaster = xml.parseInt(); @@ -1238,7 +1240,7 @@ void MusE::writeConfiguration(int level, Xml& xml) const mtcOffset.h(), mtcOffset.m(), mtcOffset.s(), mtcOffset.f(), mtcOffset.sf()); xml.uintTag(level, "sendClockDelay", syncSendFirstClockDelay); - xml.intTag(level, "useJackTransport", useJackTransport); + xml.intTag(level, "useJackTransport", useJackTransport.value()); xml.intTag(level, "jackTransportMaster", jackTransportMaster); extSyncFlag.save(level, xml); diff --git a/muse/muse/ctrl.cpp b/muse/muse/ctrl.cpp index 3a00bed5..fa7e5bd7 100644 --- a/muse/muse/ctrl.cpp +++ b/muse/muse/ctrl.cpp @@ -27,7 +27,19 @@ CtrlList::CtrlList(int id) _curVal = 0.0; _mode = INTERPOLATE; } - +//--------------------------------------------------------- +// CtrlList +//--------------------------------------------------------- +CtrlList::CtrlList(int id, QString name, double min, double max) +{ + _id = id; + _default = 0.0; + _curVal = 0.0; + _mode = INTERPOLATE; + _name = name; + _min = min; + _max = max; +} //--------------------------------------------------------- // CtrlList //--------------------------------------------------------- @@ -92,6 +104,18 @@ double CtrlList::value(int frame) return _curVal; } + +//--------------------------------------------------------- +// setCurVal +//--------------------------------------------------------- +void CtrlList::setCurVal(double val) +{ + _curVal = val; + if (size() < 2) { + add(0,val); + } +} + //--------------------------------------------------------- // add //--------------------------------------------------------- diff --git a/muse/muse/ctrl.h b/muse/muse/ctrl.h index 69f48c63..99767b55 100644 --- a/muse/muse/ctrl.h +++ b/muse/muse/ctrl.h @@ -91,13 +91,14 @@ class CtrlList : public std::map > { public: CtrlList(); CtrlList(int id); - + CtrlList(int id, QString name, double min, double max); + Mode mode() const { return _mode; } void setMode(Mode m) { _mode = m; } double getDefault() const { return _default; } void setDefault(double val) { _default = val; } double curVal() const { return _curVal; } - void setCurVal(double val) { _curVal = val; } + void setCurVal(double val); // { _curVal = val; } int id() const { return _id; } QString name() const { return _name; } void setName(const QString& s) { _name = s; } diff --git a/muse/muse/seqmsg.cpp b/muse/muse/seqmsg.cpp index c9c3b3a5..58944552 100644 --- a/muse/muse/seqmsg.cpp +++ b/muse/muse/seqmsg.cpp @@ -21,6 +21,7 @@ #include "alsamidi.h" #include "audio.h" #include "arranger.h" +#include "plugin.h" #include "driver/jackmidi.h" //--------------------------------------------------------- @@ -251,6 +252,7 @@ void Audio::msgSetVolume(AudioTrack* src, double val) msg.snode = src; msg.dval = val; sendMsg(&msg); + //muse->arranger->controllerChanged(src); } //--------------------------------------------------------- @@ -264,6 +266,7 @@ void Audio::msgSetPan(AudioTrack* node, double val) msg.snode = node; msg.dval = val; sendMsg(&msg); + //muse->arranger->controllerChanged(node); } //--------------------------------------------------------- @@ -424,6 +427,7 @@ void Audio::msgSetPluginCtrlVal(AudioTrack* track, int param, double val) //msg.plugin = plugin; msg.snode = track; sendMsg(&msg); + //muse->arranger->controllerChanged(track); } //--------------------------------------------------------- @@ -439,6 +443,7 @@ void Audio::msgSwapControllerIDX(AudioTrack* node, int idx1, int idx2) msg.a = idx1; msg.b = idx2; sendMsg(&msg); + //muse->arranger->controllerChanged(node); } //--------------------------------------------------------- @@ -453,6 +458,7 @@ void Audio::msgClearControllerEvents(AudioTrack* node, int acid) msg.snode = node; msg.ival = acid; sendMsg(&msg); + //muse->arranger->controllerChanged(node); } //--------------------------------------------------------- @@ -496,6 +502,7 @@ void Audio::msgEraseACEvent(AudioTrack* node, int acid, int frame) msg.ival = acid; msg.a = frame; sendMsg(&msg); + //muse->arranger->controllerChanged(node); } //--------------------------------------------------------- @@ -512,6 +519,7 @@ void Audio::msgEraseRangeACEvents(AudioTrack* node, int acid, int frame1, int fr msg.a = frame1; msg.b = frame2; sendMsg(&msg); + //muse->arranger->controllerChanged(node); } //--------------------------------------------------------- @@ -528,6 +536,7 @@ void Audio::msgAddACEvent(AudioTrack* node, int acid, int frame, double val) msg.a = frame; msg.dval = val; sendMsg(&msg); + //muse->arranger->controllerChanged(node); } //--------------------------------------------------------- diff --git a/muse/muse/wave.cpp b/muse/muse/wave.cpp index fab1a9cd..52c65b8d 100644 --- a/muse/muse/wave.cpp +++ b/muse/muse/wave.cpp @@ -443,16 +443,31 @@ void SndFile::setFormat(int fmt, int ch, int rate) } //--------------------------------------------------------- -// read +// readWithHeap +// not as realtime friendly but can retrieve bigger data //--------------------------------------------------------- +size_t SndFile::readWithHeap(int srcChannels, float** dst, size_t n, bool overwrite) + { + float *buffer = new float[n * sfinfo.channels]; + int rn = readInternal(srcChannels,dst,n,overwrite, buffer); + delete buffer; + return rn; + } +//--------------------------------------------------------- +// read +//--------------------------------------------------------- size_t SndFile::read(int srcChannels, float** dst, size_t n, bool overwrite) { - // Changed by Tim. p3.3.17 - //float *buffer = new float[n * sfinfo.channels]; float buffer[n * sfinfo.channels]; + int rn = readInternal(srcChannels,dst,n,overwrite, buffer); + return rn; + } + +size_t SndFile::readInternal(int srcChannels, float** dst, size_t n, bool overwrite, float *buffer) +{ size_t rn = sf_readf_float(sf, buffer, n); - + float* src = buffer; int dstChannels = sfinfo.channels; if (srcChannels == dstChannels) { @@ -472,7 +487,7 @@ size_t SndFile::read(int srcChannels, float** dst, size_t n, bool overwrite) if(overwrite) for (size_t i = 0; i < rn; ++i) *(dst[0] + i) = src[i + i] + src[i + i + 1]; - else + else for (size_t i = 0; i < rn; ++i) *(dst[0] + i) += src[i + i] + src[i + i + 1]; } @@ -484,7 +499,7 @@ size_t SndFile::read(int srcChannels, float** dst, size_t n, bool overwrite) *(dst[0]+i) = data; *(dst[1]+i) = data; } - else + else for (size_t i = 0; i < rn; ++i) { float data = *src++; *(dst[0]+i) += data; @@ -495,10 +510,11 @@ size_t SndFile::read(int srcChannels, float** dst, size_t n, bool overwrite) printf("SndFile:read channel mismatch %d -> %d\n", srcChannels, dstChannels); } - - //delete buffer; + return rn; - } + +} + //--------------------------------------------------------- // write diff --git a/muse/muse/wave.h b/muse/muse/wave.h index 5a7997fe..4094b753 100644 --- a/muse/muse/wave.h +++ b/muse/muse/wave.h @@ -56,6 +56,7 @@ class SndFile { bool openFlag; bool writeFlag; + size_t readInternal(int srcChannels, float** dst, size_t n, bool overwrite, float *buffer); protected: int refCount; @@ -92,6 +93,7 @@ class SndFile { void setFormat(int fmt, int ch, int rate); size_t read(int channel, float**, size_t, bool overwrite = true); + size_t readWithHeap(int channel, float**, size_t, bool overwrite = true); size_t readDirect(float* buf, size_t n) { return sf_readf_float(sf, buf, n); } size_t write(int channel, float**, size_t); diff --git a/muse/muse/waveedit/waveview.cpp b/muse/muse/waveedit/waveview.cpp index 91e052d4..3dd76837 100644 --- a/muse/muse/waveedit/waveview.cpp +++ b/muse/muse/waveedit/waveview.cpp @@ -865,7 +865,7 @@ void WaveView::editExternal(unsigned file_format, unsigned file_samplerate, unsi else { // Re-read file again exttmpFile.seek(0, 0); - size_t sz = exttmpFile.read(file_channels, tmpdata, tmpdatalen); + size_t sz = exttmpFile.readWithHeap(file_channels, tmpdata, tmpdatalen); if (sz != tmpdatalen) { // File must have been shrunken - not good. Alert user. QMessageBox::critical(this, tr("MusE - file size changed"), diff --git a/muse/muse_svn.config b/muse/muse_svn.config new file mode 100644 index 00000000..8cec188b --- /dev/null +++ b/muse/muse_svn.config @@ -0,0 +1 @@ +// ADD PREDEFINED MACROS HERE! diff --git a/muse/muse_svn.creator b/muse/muse_svn.creator new file mode 100644 index 00000000..e94cbbd3 --- /dev/null +++ b/muse/muse_svn.creator @@ -0,0 +1 @@ +[General] diff --git a/muse/muse_svn.files b/muse/muse_svn.files new file mode 100644 index 00000000..f343d48b --- /dev/null +++ b/muse/muse_svn.files @@ -0,0 +1,663 @@ +al/al.cpp +al/al.h +al/dsp.cpp +al/dsp.h +al/dspSSE.cpp +al/dspXMM.cpp +all-pic.h +all.h +atest/atest.cpp +atest/atest.h +atest/atest.pro +atest/qtc-gdbmacros/gdbmacros.cpp +atest/qtc-gdbmacros/gdbmacros.pro +config.h +debian/muse/usr/share/doc/muse/html/toc_.txt +debian/muse/usr/share/muse/locale/muse_de.ts +debian/muse/usr/share/muse/locale/muse_es.ts +debian/muse/usr/share/muse/locale/muse_fr.ts +debian/muse/usr/share/muse/locale/muse_pl.ts +debian/muse/usr/share/muse/locale/muse_ru.ts +debian/muse/usr/share/muse/locale/muse_sv_SE.ts +debian/muse/usr/share/muse/plugins/1050.ui +debian/muse/usr/share/muse/plugins/2142.ui +grepmidi/grepmidi.cpp +muse/app.cpp +muse/app.h +muse/appearance.cpp +muse/appearance.h +muse/arranger/alayout.cpp +muse/arranger/alayout.h +muse/arranger/arranger.cpp +muse/arranger/arranger.h +muse/arranger/moc_alayout.cpp +muse/arranger/moc_arranger.cpp +muse/arranger/moc_pcanvas.cpp +muse/arranger/moc_tlist.cpp +muse/arranger/pcanvas.cpp +muse/arranger/pcanvas.h +muse/arranger/tlist.cpp +muse/arranger/tlist.h +muse/arranger/trackinfo.cpp +muse/audio.cpp +muse/audio.h +muse/audioconvert.cpp +muse/audioconvert.h +muse/audioprefetch.cpp +muse/audioprefetch.h +muse/audiotrack.cpp +muse/cliplist/cliplist.cpp +muse/cliplist/cliplist.h +muse/cliplist/moc_cliplist.cpp +muse/cobject.cpp +muse/cobject.h +muse/conf.cpp +muse/conf.h +muse/confmport.cpp +muse/confmport.h +muse/ctrl/ctrlcanvas.cpp +muse/ctrl/ctrlcanvas.h +muse/ctrl/ctrledit.cpp +muse/ctrl/ctrledit.h +muse/ctrl/ctrlpanel.cpp +muse/ctrl/ctrlpanel.h +muse/ctrl/moc_ctrlcanvas.cpp +muse/ctrl/moc_ctrledit.cpp +muse/ctrl/moc_ctrlpanel.cpp +muse/ctrl.cpp +muse/ctrl.h +muse/debug.h +muse/default_click.h +muse/device.h +muse/driver/alsamidi.cpp +muse/driver/alsamidi.h +muse/driver/alsatimer.cpp +muse/driver/alsatimer.h +muse/driver/audiodev.h +muse/driver/dummyaudio.cpp +muse/driver/jack.cpp +muse/driver/jackaudio.h +muse/driver/rtctimer.cpp +muse/driver/rtctimer.h +muse/driver/timerdev.h +muse/dssihost.cpp +muse/dssihost.h +muse/evdata.h +muse/event.cpp +muse/event.h +muse/eventbase.h +muse/eventlist.cpp +muse/exportmidi.cpp +muse/fastlog.h +muse/gconfig.cpp +muse/gconfig.h +muse/givertcap.c +muse/globaldefs.h +muse/globals.cpp +muse/globals.h +muse/help.cpp +muse/helper.cpp +muse/helper.h +muse/icons.cpp +muse/icons.h +muse/importmidi.cpp +muse/instruments/ccontrolbase.h +muse/instruments/ccontrolbase.ui +muse/instruments/editinstrument.cpp +muse/instruments/editinstrument.h +muse/instruments/editinstrumentbase.h +muse/instruments/editinstrumentbase.ui +muse/instruments/midictrledit.cpp +muse/instruments/midictrledit.h +muse/instruments/minstrument.cpp +muse/instruments/minstrument.h +muse/instruments/moc_editinstrument.cpp +muse/key.cpp +muse/key.h +muse/ladspa.h +muse/liste/editctrlbase.h +muse/liste/editctrlbase.ui +muse/liste/editevent.cpp +muse/liste/editevent.h +muse/liste/listedit.cpp +muse/liste/listedit.h +muse/liste/moc_editevent.cpp +muse/liste/moc_listedit.cpp +muse/marker/marker.cpp +muse/marker/marker.h +muse/marker/markerview.cpp +muse/marker/markerview.h +muse/marker/moc_markerview.cpp +muse/master/lmaster.cpp +muse/master/lmaster.h +muse/master/master.cpp +muse/master/master.h +muse/master/masteredit.cpp +muse/master/masteredit.h +muse/master/moc_lmaster.cpp +muse/master/moc_master.cpp +muse/master/moc_masteredit.cpp +muse/master/moc_tscale.cpp +muse/master/tscale.cpp +muse/master/tscale.h +muse/memory.cpp +muse/memory.h +muse/midi.cpp +muse/midi.h +muse/midictrl.cpp +muse/midictrl.h +muse/mididev.cpp +muse/mididev.h +muse/midiedit/cmd.h +muse/midiedit/dcanvas.cpp +muse/midiedit/dcanvas.h +muse/midiedit/dlist.cpp +muse/midiedit/dlist.h +muse/midiedit/drumedit.cpp +muse/midiedit/drumedit.h +muse/midiedit/drummap.cpp +muse/midiedit/drummap.h +muse/midiedit/ecanvas.cpp +muse/midiedit/ecanvas.h +muse/midiedit/moc_dcanvas.cpp +muse/midiedit/moc_dlist.cpp +muse/midiedit/moc_drumedit.cpp +muse/midiedit/moc_ecanvas.cpp +muse/midiedit/moc_piano.cpp +muse/midiedit/moc_pianoroll.cpp +muse/midiedit/moc_prcanvas.cpp +muse/midiedit/moc_quantconfig.cpp +muse/midiedit/piano.cpp +muse/midiedit/piano.h +muse/midiedit/pianoroll.cpp +muse/midiedit/pianoroll.h +muse/midiedit/prcanvas.cpp +muse/midiedit/prcanvas.h +muse/midiedit/quantconfig.cpp +muse/midiedit/quantconfig.h +muse/midieditor.cpp +muse/midieditor.h +muse/midievent.cpp +muse/midievent.h +muse/midifile.cpp +muse/midifile.h +muse/midiport.cpp +muse/midiport.h +muse/midiseq.cpp +muse/midiseq.h +muse/miditransform.cpp +muse/miditransform.h +muse/mixer/amixer.cpp +muse/mixer/amixer.h +muse/mixer/astrip.cpp +muse/mixer/astrip.h +muse/mixer/auxknob.cpp +muse/mixer/auxknob.h +muse/mixer/meter.cpp +muse/mixer/meter.h +muse/mixer/midiportroutebase.h +muse/mixer/midiportroutebase.ui +muse/mixer/moc_amixer.cpp +muse/mixer/moc_astrip.cpp +muse/mixer/moc_auxknob.cpp +muse/mixer/moc_meter.cpp +muse/mixer/moc_mstrip.cpp +muse/mixer/moc_panknob.cpp +muse/mixer/moc_rack.cpp +muse/mixer/moc_routedialog.cpp +muse/mixer/moc_strip.cpp +muse/mixer/mstrip.cpp +muse/mixer/mstrip.h +muse/mixer/panknob.cpp +muse/mixer/panknob.h +muse/mixer/rack.cpp +muse/mixer/rack.h +muse/mixer/routedialog.cpp +muse/mixer/routedialog.h +muse/mixer/routedialogbase.h +muse/mixer/routedialogbase.ui +muse/mixer/strip.cpp +muse/mixer/strip.h +muse/moc_app.cpp +muse/moc_appearance.cpp +muse/moc_cobject.cpp +muse/moc_conf.cpp +muse/moc_confmport.cpp +muse/moc_midieditor.cpp +muse/moc_miditransform.cpp +muse/moc_plugin.cpp +muse/moc_song.cpp +muse/moc_transport.cpp +muse/moc_transpose.cpp +muse/moc_value.cpp +muse/mpevent.cpp +muse/mpevent.h +muse/mplugins/midifilter.h +muse/mplugins/midifilter.ui +muse/mplugins/midifilterimpl.cpp +muse/mplugins/midifilterimpl.h +muse/mplugins/midiitransform.cpp +muse/mplugins/midiitransform.h +muse/mplugins/mitplugin.cpp +muse/mplugins/mitplugin.h +muse/mplugins/mittranspose.cpp +muse/mplugins/mittranspose.h +muse/mplugins/moc_midifilterimpl.cpp +muse/mplugins/moc_midiitransform.cpp +muse/mplugins/moc_mittranspose.cpp +muse/mplugins/moc_mrconfig.cpp +muse/mplugins/moc_rhythm.cpp +muse/mplugins/mrconfig.cpp +muse/mplugins/mrconfig.h +muse/mplugins/mrconfigbase.h +muse/mplugins/mrconfigbase.ui +muse/mplugins/random.cpp +muse/mplugins/random.h +muse/mplugins/rhythm.cpp +muse/mplugins/rhythm.h +muse/mplugins/rhythmbase.h +muse/mplugins/rhythmbase.ui +muse/mtc.cpp +muse/mtc.h +muse/muse.pro +muse/node.cpp +muse/node.h +muse/part.cpp +muse/part.h +muse/patchbay/patchbay.cpp +muse/patchbay/patchbay.h +muse/patchbay/patchbaybase.ui +muse/plugin.cpp +muse/plugin.h +muse/pos.cpp +muse/pos.h +muse/remote/pyapi.cpp +muse/remote/pyapi.h +muse/route.cpp +muse/route.h +muse/seqmsg.cpp +muse/shortcuts.cpp +muse/shortcuts.h +muse/sig.cpp +muse/sig.h +muse/song.cpp +muse/song.h +muse/songfile.cpp +muse/sync.cpp +muse/sync.h +muse/synth.cpp +muse/synth.h +muse/tempo.cpp +muse/tempo.h +muse/thread.cpp +muse/thread.h +muse/ticksynth.cpp +muse/ticksynth.h +muse/track.cpp +muse/track.h +muse/transport.cpp +muse/transport.h +muse/transpose.cpp +muse/transpose.h +muse/undo.cpp +muse/undo.h +muse/value.cpp +muse/value.h +muse/vst.cpp +muse/vst.h +muse/wave.cpp +muse/wave.h +muse/waveedit/editgain.cpp +muse/waveedit/editgain.h +muse/waveedit/editgainbase.h +muse/waveedit/editgainbase.ui +muse/waveedit/moc_editgain.cpp +muse/waveedit/moc_waveedit.cpp +muse/waveedit/moc_waveview.cpp +muse/waveedit/waveedit.cpp +muse/waveedit/waveedit.h +muse/waveedit/waveview.cpp +muse/waveedit/waveview.h +muse/waveevent.cpp +muse/waveevent.h +muse/wavetrack.cpp +muse/widgets/aboutbox.h +muse/widgets/aboutbox.ui +muse/widgets/action.h +muse/widgets/appearancebase.h +muse/widgets/appearancebase.ui +muse/widgets/bigtime.cpp +muse/widgets/bigtime.h +muse/widgets/canvas.cpp +muse/widgets/canvas.h +muse/widgets/checkbox.cpp +muse/widgets/checkbox.h +muse/widgets/citem.cpp +muse/widgets/citem.h +muse/widgets/cliplisteditorbase.h +muse/widgets/cliplisteditorbase.ui +muse/widgets/combobox.cpp +muse/widgets/combobox.h +muse/widgets/comboQuant.cpp +muse/widgets/comboQuant.h +muse/widgets/comment.cpp +muse/widgets/comment.h +muse/widgets/commentbase.h +muse/widgets/commentbase.ui +muse/widgets/configmidifilebase.h +muse/widgets/configmidifilebase.ui +muse/widgets/ctrlcombo.cpp +muse/widgets/ctrlcombo.h +muse/widgets/dentry.cpp +muse/widgets/dentry.h +muse/widgets/didyouknow.h +muse/widgets/didyouknow.ui +muse/widgets/dimap.cpp +muse/widgets/dimap.h +muse/widgets/doublelabel.cpp +muse/widgets/doublelabel.h +muse/widgets/drange.cpp +muse/widgets/drange.h +muse/widgets/editctrl7dialogbase.h +muse/widgets/editctrl7dialogbase.ui +muse/widgets/editmetadialogbase.h +muse/widgets/editmetadialogbase.ui +muse/widgets/editnotedialogbase.h +muse/widgets/editnotedialogbase.ui +muse/widgets/editsysexdialogbase.h +muse/widgets/editsysexdialogbase.ui +muse/widgets/fdialogbuttons.h +muse/widgets/fdialogbuttons.ui +muse/widgets/filedialog.cpp +muse/widgets/filedialog.h +muse/widgets/fontsel.cpp +muse/widgets/fontsel.h +muse/widgets/gatetime.cpp +muse/widgets/gatetime.h +muse/widgets/gatetimebase.h +muse/widgets/gatetimebase.ui +muse/widgets/genset.cpp +muse/widgets/genset.h +muse/widgets/gensetbase.h +muse/widgets/gensetbase.ui +muse/widgets/header.cpp +muse/widgets/header.h +muse/widgets/hitscale.cpp +muse/widgets/hitscale.h +muse/widgets/intlabel.cpp +muse/widgets/intlabel.h +muse/widgets/itransformbase.h +muse/widgets/itransformbase.ui +muse/widgets/knob.cpp +muse/widgets/knob.h +muse/widgets/lcombo.cpp +muse/widgets/lcombo.h +muse/widgets/listitem.h +muse/widgets/menutitleitem.h +muse/widgets/metronome.cpp +muse/widgets/metronome.h +muse/widgets/metronomebase.h +muse/widgets/metronomebase.ui +muse/widgets/midisync.h +muse/widgets/midisync.ui +muse/widgets/midisyncimpl.cpp +muse/widgets/midisyncimpl.h +muse/widgets/mittransposebase.h +muse/widgets/mittransposebase.ui +muse/widgets/mixdowndialog.cpp +muse/widgets/mixdowndialog.h +muse/widgets/mixdowndialogbase.h +muse/widgets/mixdowndialogbase.ui +muse/widgets/mlabel.cpp +muse/widgets/mlabel.h +muse/widgets/mmath.cpp +muse/widgets/mmath.h +muse/widgets/moc_aboutbox.cpp +muse/widgets/moc_action.cpp +muse/widgets/moc_bigtime.cpp +muse/widgets/moc_canvas.cpp +muse/widgets/moc_checkbox.cpp +muse/widgets/moc_combobox.cpp +muse/widgets/moc_comboQuant.cpp +muse/widgets/moc_comment.cpp +muse/widgets/moc_ctrlcombo.cpp +muse/widgets/moc_dentry.cpp +muse/widgets/moc_didyouknow.cpp +muse/widgets/moc_doublelabel.cpp +muse/widgets/moc_filedialog.cpp +muse/widgets/moc_fontsel.cpp +muse/widgets/moc_gatetime.cpp +muse/widgets/moc_genset.cpp +muse/widgets/moc_header.cpp +muse/widgets/moc_hitscale.cpp +muse/widgets/moc_intlabel.cpp +muse/widgets/moc_knob.cpp +muse/widgets/moc_lcombo.cpp +muse/widgets/moc_metronome.cpp +muse/widgets/moc_midisyncimpl.cpp +muse/widgets/moc_mixdowndialog.cpp +muse/widgets/moc_mlabel.cpp +muse/widgets/moc_mtscale.cpp +muse/widgets/moc_nentry.cpp +muse/widgets/moc_noteinfo.cpp +muse/widgets/moc_pitchedit.cpp +muse/widgets/moc_pitchlabel.cpp +muse/widgets/moc_posedit.cpp +muse/widgets/moc_poslabel.cpp +muse/widgets/moc_scrollscale.cpp +muse/widgets/moc_shortcutcapturedialog.cpp +muse/widgets/moc_shortcutconfig.cpp +muse/widgets/moc_sigedit.cpp +muse/widgets/moc_siglabel.cpp +muse/widgets/moc_sigscale.cpp +muse/widgets/moc_slider.cpp +muse/widgets/moc_sliderbase.cpp +muse/widgets/moc_songinfo.cpp +muse/widgets/moc_spinbox.cpp +muse/widgets/moc_spinboxFP.cpp +muse/widgets/moc_splitter.cpp +muse/widgets/moc_swidget.cpp +muse/widgets/moc_tb1.cpp +muse/widgets/moc_tempolabel.cpp +muse/widgets/moc_tools.cpp +muse/widgets/moc_ttoolbar.cpp +muse/widgets/moc_ttoolbutton.cpp +muse/widgets/moc_velocity.cpp +muse/widgets/moc_view.cpp +muse/widgets/moc_vscale.cpp +muse/widgets/mtrackinfobase.h +muse/widgets/mtrackinfobase.ui +muse/widgets/mtscale.cpp +muse/widgets/mtscale.h +muse/widgets/musewidgetsplug.cpp +muse/widgets/nentry.cpp +muse/widgets/nentry.h +muse/widgets/noteinfo.cpp +muse/widgets/noteinfo.h +muse/widgets/pitchedit.cpp +muse/widgets/pitchedit.h +muse/widgets/pitchlabel.cpp +muse/widgets/pitchlabel.h +muse/widgets/posedit.cpp +muse/widgets/posedit.h +muse/widgets/poslabel.cpp +muse/widgets/poslabel.h +muse/widgets/scldiv.cpp +muse/widgets/scldiv.h +muse/widgets/scldraw.cpp +muse/widgets/scldraw.h +muse/widgets/sclif.cpp +muse/widgets/sclif.h +muse/widgets/scrollscale.cpp +muse/widgets/scrollscale.h +muse/widgets/section.h +muse/widgets/shortcutcapturedialog.cpp +muse/widgets/shortcutcapturedialog.h +muse/widgets/shortcutcapturedialogbase.h +muse/widgets/shortcutcapturedialogbase.ui +muse/widgets/shortcutconfig.cpp +muse/widgets/shortcutconfig.h +muse/widgets/shortcutconfigbase.h +muse/widgets/shortcutconfigbase.ui +muse/widgets/sigedit.cpp +muse/widgets/sigedit.h +muse/widgets/siglabel.cpp +muse/widgets/siglabel.h +muse/widgets/sigscale.cpp +muse/widgets/sigscale.h +muse/widgets/slider.cpp +muse/widgets/slider.h +muse/widgets/sliderbase.cpp +muse/widgets/sliderbase.h +muse/widgets/songinfo.h +muse/widgets/songinfo.ui +muse/widgets/spinbox.cpp +muse/widgets/spinbox.h +muse/widgets/spinboxFP.cpp +muse/widgets/spinboxFP.h +muse/widgets/splitter.cpp +muse/widgets/splitter.h +muse/widgets/swidget.cpp +muse/widgets/swidget.h +muse/widgets/synthconfigbase.h +muse/widgets/synthconfigbase.ui +muse/widgets/synthwizardbase.h +muse/widgets/tb1.cpp +muse/widgets/tb1.h +muse/widgets/tempolabel.cpp +muse/widgets/tempolabel.h +muse/widgets/tools.cpp +muse/widgets/tools.h +muse/widgets/transformbase.h +muse/widgets/transformbase.ui +muse/widgets/transposebase.h +muse/widgets/transposebase.ui +muse/widgets/ttoolbar.cpp +muse/widgets/ttoolbar.h +muse/widgets/ttoolbutton.cpp +muse/widgets/ttoolbutton.h +muse/widgets/utils.cpp +muse/widgets/utils.h +muse/widgets/velocity.cpp +muse/widgets/velocity.h +muse/widgets/velocitybase.h +muse/widgets/velocitybase.ui +muse/widgets/view.cpp +muse/widgets/view.h +muse/widgets/vscale.cpp +muse/widgets/vscale.h +muse/widgets/wtrackinfobase.h +muse/widgets/wtrackinfobase.ui +muse/widgets/wtscale.cpp +muse/widgets/wtscale.h +muse/xml.cpp +muse/xml.h +plugins/doublechorus/doublechorus.cpp +plugins/doublechorus/doublechorusmodel.cpp +plugins/doublechorus/doublechorusmodel.h +plugins/doublechorus/simplechorusmodel.cpp +plugins/doublechorus/simplechorusmodel.h +plugins/freeverb/allpass.h +plugins/freeverb/comb.h +plugins/freeverb/denormals.h +plugins/freeverb/freeverb.cpp +plugins/freeverb/readme.txt +plugins/freeverb/revmodel.cpp +plugins/freeverb/revmodel.h +plugins/freeverb/tuning.h +plugins/pandelay/ladspapandelay.cpp +plugins/pandelay/ladspapandelay.h +plugins/pandelay/pandelay.cpp +plugins/pandelay/pandelaymodel.cpp +plugins/pandelay/pandelaymodel.h +share/html/toc_.txt +share/locale/muse_de.ts +share/locale/muse_es.ts +share/locale/muse_fr.ts +share/locale/muse_pl.ts +share/locale/muse_ru.ts +share/locale/muse_sv_SE.ts +share/plugins/1050.ui +share/plugins/2142.ui +share/scripts/README.txt +synti/deicsonze/deicsonze.cpp +synti/deicsonze/deicsonze.h +synti/deicsonze/deicsonzegui.cpp +synti/deicsonze/deicsonzegui.h +synti/deicsonze/deicsonzeguibase.h +synti/deicsonze/deicsonzeguibase.ui +synti/deicsonze/moc_deicsonzegui.cpp +synti/deicsonze/newpreset.h +synti/deicsonze/newpreset.ui +synti/deicsonze2/CMakeLists.txt +synti/deicsonze2/deicsonze.cpp +synti/deicsonze2/deicsonze.h +synti/deicsonze2/deicsonzefilter.cpp +synti/deicsonze2/deicsonzefilter.h +synti/deicsonze2/deicsonzegui.cpp +synti/deicsonze2/deicsonzegui.h +synti/deicsonze2/deicsonzegui.ui +synti/deicsonze2/deicsonzeguibase.h +synti/deicsonze2/deicsonzeplugin.cpp +synti/deicsonze2/deicsonzeplugin.h +synti/deicsonze2/deicsonzepreset.cpp +synti/deicsonze2/deicsonzepreset.h +synti/fluid/fluid.cpp +synti/fluid/fluid.h +synti/fluid/fluidgui.cpp +synti/fluid/fluidgui.h +synti/fluid/fluidguibase.h +synti/fluid/fluidguibase.ui +synti/fluid/moc_fluidgui.cpp +synti/fluidsynth/fluidsynthgui.cpp +synti/fluidsynth/fluidsynthgui.h +synti/fluidsynth/fluidsynthguibase.h +synti/fluidsynth/fluidsynthguibase.ui +synti/fluidsynth/fluidsynti.cpp +synti/fluidsynth/fluidsynti.h +synti/fluidsynth/moc_fluidsynthgui.cpp +synti/fluidsynth/README.txt +synti/libsynti/evdata.h +synti/libsynti/gui.cpp +synti/libsynti/gui.h +synti/libsynti/mess.cpp +synti/libsynti/mess.h +synti/libsynti/mono.cpp +synti/libsynti/mono.h +synti/libsynti/mpevent.cpp +synti/libsynti/mpevent.h +synti/libsynti/poly.cpp +synti/libsynti/poly.h +synti/organ/fdialogbuttons.h +synti/organ/fdialogbuttons.ui +synti/organ/moc_organgui.cpp +synti/organ/organ.cpp +synti/organ/organ.h +synti/organ/organgui.cpp +synti/organ/organgui.h +synti/organ/organguibase.h +synti/organ/organguibase.ui +synti/s1/s1.cpp +synti/simpledrums/common.h +synti/simpledrums/moc_simpledrumsgui.cpp +synti/simpledrums/moc_ssplugingui.cpp +synti/simpledrums/ReleaseNotes.txt +synti/simpledrums/simpledrums.cpp +synti/simpledrums/simpledrums.h +synti/simpledrums/simpledrumsgui.cpp +synti/simpledrums/simpledrumsgui.h +synti/simpledrums/simpledrumsguibase.h +synti/simpledrums/simpledrumsguibase.ui +synti/simpledrums/ssplugin.cpp +synti/simpledrums/ssplugin.h +synti/simpledrums/sspluginchooserbase.h +synti/simpledrums/sspluginchooserbase.ui +synti/simpledrums/ssplugingui.cpp +synti/simpledrums/ssplugingui.h +synti/vam/moc_vamgui.cpp +synti/vam/vam.cpp +synti/vam/vam.h +synti/vam/vamgui.cpp +synti/vam/vamgui.h +synti/vam/vamguibase.h +synti/vam/vamguibase.ui \ No newline at end of file diff --git a/muse/muse_svn.includes b/muse/muse_svn.includes new file mode 100644 index 00000000..d4d624b1 --- /dev/null +++ b/muse/muse_svn.includes @@ -0,0 +1,29 @@ +al +atest +muse/arranger +muse/cliplist +muse/ctrl +muse/driver +muse/instruments +muse/liste +muse/marker +muse/master +muse/midiedit +muse/mixer +muse/mplugins +muse/patchbay +muse/remote +muse/waveedit +muse/widgets +muse +plugins/doublechorus +plugins/freeverb +plugins/pandelay +synti/deicsonze +synti/deicsonze2 +synti/fluid +synti/fluidsynth +synti/libsynti +synti/organ +synti/simpledrums +synti/vam \ No newline at end of file -- cgit v1.2.3