diff options
| -rw-r--r-- | muse/ChangeLog | 4 | ||||
| -rw-r--r-- | muse/muse/arranger/arranger.cpp | 11 | ||||
| -rw-r--r-- | muse/muse/arranger/arranger.h | 2 | ||||
| -rw-r--r-- | muse/muse/arranger/pcanvas.cpp | 135 | ||||
| -rw-r--r-- | muse/muse/arranger/pcanvas.h | 5 | ||||
| -rw-r--r-- | muse/muse/arranger/tlist.cpp | 30 | ||||
| -rw-r--r-- | muse/muse/arranger/tlist.h | 2 | ||||
| -rw-r--r-- | muse/muse/arranger/trackautomationview.cpp | 51 | ||||
| -rw-r--r-- | muse/muse/arranger/trackautomationview.h | 19 | ||||
| -rw-r--r-- | muse/muse/audiotrack.cpp | 8 | ||||
| -rw-r--r-- | muse/muse/conf.cpp | 6 | ||||
| -rw-r--r-- | muse/muse/ctrl.cpp | 26 | ||||
| -rw-r--r-- | muse/muse/ctrl.h | 5 | ||||
| -rw-r--r-- | muse/muse/seqmsg.cpp | 9 | ||||
| -rw-r--r-- | muse/muse/wave.cpp | 34 | ||||
| -rw-r--r-- | muse/muse/wave.h | 2 | ||||
| -rw-r--r-- | muse/muse/waveedit/waveview.cpp | 2 | ||||
| -rw-r--r-- | muse/muse_svn.config | 1 | ||||
| -rw-r--r-- | muse/muse_svn.creator | 1 | ||||
| -rw-r--r-- | muse/muse_svn.files | 663 | ||||
| -rw-r--r-- | muse/muse_svn.includes | 29 | 
21 files changed, 997 insertions, 48 deletions
| 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<TrackAutomationView*> 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 <qpainter.h> +#include <qbitmap.h> +#include <qimage.h> +#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 <qwidget.h> + +#include "track.h" + +class TrackAutomationView : public QWidget +{ +    Track *_t; +    void paintEvent(QPaintEvent *e); +    std::map<int,int> 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<int, CtrlVal, std::less<int> > {     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 | 
