diff options
| author | Florian Jung <flo@windfisch.org> | 2011-10-13 17:10:30 +0000 | 
|---|---|---|
| committer | Florian Jung <flo@windfisch.org> | 2011-10-13 17:10:30 +0000 | 
| commit | 5c191a7c5b525cfc833ed4d3be171101058e9779 (patch) | |
| tree | 481d8a2830b582e80737ff9d4ba07a4802ee0489 /muse2 | |
| parent | 1c547a97cf011a07fa7269df343820470856dd36 (diff) | |
removed or fixed many FINDMICH markers. NEEDS TESTING!
Diffstat (limited to 'muse2')
| -rw-r--r-- | muse2/muse/ctrl/ctrlpanel.cpp | 19 | ||||
| -rw-r--r-- | muse2/muse/liste/editevent.cpp | 8 | ||||
| -rw-r--r-- | muse2/muse/midi.cpp | 29 | ||||
| -rw-r--r-- | muse2/muse/midiedit/scoreedit.cpp | 2 | ||||
| -rw-r--r-- | muse2/muse/part.cpp | 8 | ||||
| -rw-r--r-- | muse2/muse/song.cpp | 22 | ||||
| -rw-r--r-- | muse2/muse/songfile.cpp | 2 | ||||
| -rw-r--r-- | muse2/muse/track.cpp | 10 | ||||
| -rw-r--r-- | muse2/muse/track.h | 1 | ||||
| -rw-r--r-- | muse2/muse/widgets/mtrackinfo.cpp | 18 | 
10 files changed, 78 insertions, 41 deletions
| diff --git a/muse2/muse/ctrl/ctrlpanel.cpp b/muse2/muse/ctrl/ctrlpanel.cpp index 88787c47..5e07e5f3 100644 --- a/muse2/muse/ctrl/ctrlpanel.cpp +++ b/muse2/muse/ctrl/ctrlpanel.cpp @@ -171,7 +171,7 @@ void CtrlPanel::heartBeat()        int outport;        int chan;        int cdi = editor->curDrumInstrument(); -      if(_track->type() == MusECore::Track::DRUM && ((_ctrl->num() & 0xff) == 0xff) && cdi != -1) //FINDMICHJETZT was ist das? und ähnliche dinger +      if(_track->type() == MusECore::Track::DRUM && ((_ctrl->num() & 0xff) == 0xff) && cdi != -1)        {          outport = MusEGlobal::drumMap[cdi].port;          chan = MusEGlobal::drumMap[cdi].channel; @@ -539,6 +539,21 @@ void CtrlPanel::setHeight(int h)        }  #if 0 +/* WARNING: INVALID CODE!                                           *\ + * the code which has been disabled by the above #if 0 is partly    * + * OBSOLETE! it lacks support for new-style drum tracks, especially * + * the drum-controller-handling for these!                          * + *                                                                  * + * when you ever enable that code again, first check the changes    * + * flo93 did somewhere between revision 1188 and 1188+something     * + * (let's say, 1195; it's NOT the revision in which this comment    * + * has been introduced) in experimental to the currently enabled    * + * code below. then apply similar changes to the currently disabled * +\* code here!                                                       */ +#error "INVALID CODE. please check the comment in ctrlpanel.cpp which starts with 'WARNING: INVALID CODE'" +just to be sure: dear compiler, please refuse to compile. +dear user: read the comment above! +  struct CI {              QString s;              bool used; @@ -562,7 +577,7 @@ void CtrlPanel::ctrlPopup()        int channel      = track->outChannel();        MusECore::MidiPort* port   = &MusEGlobal::midiPorts[track->outPort()];        int curDrumInstrument = editor->curDrumInstrument(); -      bool isDrum      = track->type() == MusECore::Track::DRUM; //FINDMICHJETZT ist das wichtig? +      bool isDrum      = track->type() == MusECore::Track::DRUM;        QMenu* pop = new QMenu;        //pop->clear(); diff --git a/muse2/muse/liste/editevent.cpp b/muse2/muse/liste/editevent.cpp index ce53069d..32a328a8 100644 --- a/muse2/muse/liste/editevent.cpp +++ b/muse2/muse/liste/editevent.cpp @@ -614,12 +614,12 @@ EditCtrlDialog::EditCtrlDialog(int tick, const MusECore::Event& event,              }        ///pop = new QMenu(this); -      //pop->setCheckable(false);//not necessary in Qt4 +      //pop->setCheckable(false); //not necessary in Qt4        MusECore::MidiTrack* track   = part->track();        int portn          = track->outPort();        MusECore::MidiPort* port     = &MusEGlobal::midiPorts[portn]; -      bool isDrum        = track->type() == MusECore::Track::DRUM; //FINDMICHJETZT was soll das? +      bool isDrum        = track->isDrumTrack();        MusECore::MidiCtrlValListList* cll = port->controller();        ctrlList->clear(); @@ -835,7 +835,7 @@ void EditCtrlDialog::updatePatch()        int port              = track->outPort();        int channel           = track->outChannel();        MusECore::MidiInstrument* instr = MusEGlobal::midiPorts[port].instrument(); -      patchName->setText(instr->getPatchName(channel, val, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM));  //FINDMICHJETZT was soll das? +      patchName->setText(instr->getPatchName(channel, val, MusEGlobal::song->mtype(), track->isDrumTrack()));        int hb = ((val >> 16) & 0xff) + 1;        if (hb == 0x100) @@ -874,7 +874,7 @@ void EditCtrlDialog::instrPopup()        ///instr->populatePatchPopup(pop, channel, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM);        //QMenu* pup = new QMenu(this);        MusEGui::PopupMenu* pup = new MusEGui::PopupMenu(this); -      populatePatchPopup(instr, pup, channel, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM);  //FINDMICHJETZT was soll das? +      populatePatchPopup(instr, pup, channel, MusEGlobal::song->mtype(), track->isDrumTrack());        ///if(pop->actions().count() == 0)        ///  return; diff --git a/muse2/muse/midi.cpp b/muse2/muse/midi.cpp index 28269b20..d5ed119d 100644 --- a/muse2/muse/midi.cpp +++ b/muse2/muse/midi.cpp @@ -372,7 +372,7 @@ void buildMidiEventList(EventList* del, const MPEventList* el, MidiTrack* track,                                      int ctl = ev.dataA();                                      e.setA(ctl); -                                    if(track->type() == Track::DRUM)  //FINDMICHJETZT drum controller? +                                    if(track->type() == Track::DRUM)                                      {                                        // Is it a drum controller event, according to the track port's instrument?                                        MidiController *mc = MusEGlobal::midiPorts[track->outPort()].drumController(ctl); @@ -808,7 +808,7 @@ void Audio::collectEvents(MusECore::MidiTrack* track, unsigned int cts, unsigned                          case Controller:                                { -                                if (track->type() == Track::DRUM)   //FINDMICHJETZT was ist das? drumcontroller -_- +                                if (track->type() == Track::DRUM)                                  {                                    int ctl   = ev.dataA();                                    // Is it a drum controller event, according to the track port's instrument? @@ -1026,10 +1026,9 @@ void Audio::processMidi()                                              event.setB(velo);                                        }                                  } -                                else -                                if(event.type() == MusECore::ME_CONTROLLER) +                                else if(event.type() == MusECore::ME_CONTROLLER)                                  { -                                  if(track->type() == Track::DRUM)  //FINDMICHJETZT was ist das? +                                  if(track->type() == Track::DRUM)                                    {                                      ctl = event.dataA();                                      // Regardless of what port the event came from, is it a drum controller event  @@ -1049,6 +1048,24 @@ void Audio::processMidi()                                        event.setChannel(channel);                                      }                                      } +                                  else if (track->type() == Track::NEW_DRUM) //FINDMICHJETZT TEST +                                  { +                                    ctl = event.dataA(); +                                    if (tport->drumController(ctl)) // is it a drum controller? +                                    { +                                      int pitch = ctl & 0x7f;            // pitch is now the incoming pitch +                                      pitch = track->map_drum_in(pitch); // pitch is now the mapped (recorded) pitch +                                      event.setA(ctl & ~0xff  |  pitch); // map the drum ctrl's value accordingly + +                                      if (MusEGlobal::config.newDrumRecordCondition & MusECore::DONT_REC_HIDDEN && +                                          track->drummap_hidden()[pitch] ) +                                        continue; // skip that event, proceed with the next + +                                      if (MusEGlobal::config.newDrumRecordCondition & MusECore::DONT_REC_MUTED && +                                          track->drummap()[pitch].mute ) +                                        continue; // skip that event, proceed with the next +                                    } +                                  }                                  }                                  // MusE uses a fixed clocks per quarternote of 24.  @@ -1092,7 +1109,7 @@ void Audio::processMidi()                                        //  to the track port so buildMidiEventList will accept it. Even though                                         //  the port may have no device "<none>".                                        // -                                      if (track->type() == Track::DRUM)  //FINDMICHJETZT was ist das? +                                      if (track->type() == Track::DRUM)  //FINDMICHJETZT no changes. TEST                                        {                                          // Is it a drum controller event?                                          if(mc) diff --git a/muse2/muse/midiedit/scoreedit.cpp b/muse2/muse/midiedit/scoreedit.cpp index 6957e9c1..9fd0b3ed 100644 --- a/muse2/muse/midiedit/scoreedit.cpp +++ b/muse2/muse/midiedit/scoreedit.cpp @@ -4595,6 +4595,8 @@ void ScoreCanvas::add_new_parts(const std::map< MusECore::Part*, std::set<MusECo   *   * CURRENT TODO   *   o drum controllers + *       update ctrlcanvas/panel + *       test!   *   o my record flag handling   *   o option for disabling old-style / new-style drum tracks?   *  diff --git a/muse2/muse/part.cpp b/muse2/muse/part.cpp index 3601ff57..6407dadc 100644 --- a/muse2/muse/part.cpp +++ b/muse2/muse/part.cpp @@ -403,7 +403,7 @@ void addPortCtrlEvents(Event& event, Part* part, bool doClones)              MidiPort* mp = &MusEGlobal::midiPorts[port];              // Is it a drum controller event, according to the track port's instrument? -            if(mt->type() == Track::DRUM) //FINDMICHJETZT was ist das? +            if(mt->type() == Track::DRUM)              {                MidiController* mc = mp->drumController(cntrl);                if(mc) @@ -471,7 +471,7 @@ void addPortCtrlEvents(Part* part, bool doClones)              MidiPort* mp = &MusEGlobal::midiPorts[port];              // Is it a drum controller event, according to the track port's instrument? -            if(mt->type() == Track::DRUM) //FINDMICHJETZT was ist das? +            if(mt->type() == Track::DRUM)              {                MidiController* mc = mp->drumController(cntrl);                if(mc) @@ -530,7 +530,7 @@ void removePortCtrlEvents(Event& event, Part* part, bool doClones)              MidiPort* mp = &MusEGlobal::midiPorts[port];              // Is it a drum controller event, according to the track port's instrument? -            if(mt->type() == Track::DRUM) //FINDMICHJETZT was ist das? +            if(mt->type() == Track::DRUM)              {                MidiController* mc = mp->drumController(cntrl);                if(mc) @@ -599,7 +599,7 @@ void removePortCtrlEvents(Part* part, bool doClones)              MidiPort* mp = &MusEGlobal::midiPorts[port];              // Is it a drum controller event, according to the track port's instrument? -            if(mt->type() == Track::DRUM) //FINDMICHJETZT was ist das? +            if(mt->type() == Track::DRUM)              {                MidiController* mc = mp->drumController(cntrl);                if(mc) diff --git a/muse2/muse/song.cpp b/muse2/muse/song.cpp index 98ad007a..b48f134b 100644 --- a/muse2/muse/song.cpp +++ b/muse2/muse/song.cpp @@ -446,7 +446,7 @@ bool Song::addEvent(Event& event, Part* part)              MidiPort* mp = &MusEGlobal::midiPorts[track->outPort()];              // Is it a drum controller event, according to the track port's instrument? -            if(track->type() == Track::DRUM) //FINDMICHJETZT was ist das? +            if(track->type() == Track::DRUM)              {                MidiController* mc = mp->drumController(cntrl);                if(mc) @@ -519,7 +519,7 @@ void Song::changeEvent(Event& oldEvent, Event& newEvent, Part* part)              int cntrl = oldEvent.dataA();              MidiPort* mp = &MusEGlobal::midiPorts[track->outPort()];              // Is it a drum controller event, according to the track port's instrument? -            if(track->type() == Track::DRUM) //FINDMICHJETZT was ist das? +            if(track->type() == Track::DRUM)              {                MidiController* mc = mp->drumController(cntrl);                if(mc) @@ -546,7 +546,7 @@ void Song::changeEvent(Event& oldEvent, Event& newEvent, Part* part)              int val   = newEvent.dataB();              MidiPort* mp = &MusEGlobal::midiPorts[track->outPort()];              // Is it a drum controller event, according to the track port's instrument? -            if(track->type() == Track::DRUM) //FINDMICHJETZT was ist das? +            if(track->type() == Track::DRUM)              {                MidiController* mc = mp->drumController(cntrl);                if(mc) @@ -580,7 +580,7 @@ void Song::deleteEvent(Event& event, Part* part)              MidiPort* mp = &MusEGlobal::midiPorts[track->outPort()];              // Is it a drum controller event, according to the track port's instrument? -            if(track->type() == Track::DRUM) //FINDMICHJETZT was ist das? +            if(track->type() == Track::DRUM)              {                MidiController* mc = mp->drumController(cntrl);                if(mc) @@ -621,7 +621,7 @@ void Song::remapPortDrumCtrlEvents(int mapidx, int newnote, int newchan, int new    for(ciMidiTrack it = _midis.begin(); it != _midis.end(); ++it)     {      MidiTrack* mt = *it; -    if(mt->type() != Track::DRUM) //FINDMICHJETZT was ist das? drumcontroller? +    if(mt->type() != Track::DRUM)        continue;      MidiPort* trackmp = &MusEGlobal::midiPorts[mt->outPort()]; @@ -630,7 +630,7 @@ void Song::remapPortDrumCtrlEvents(int mapidx, int newnote, int newchan, int new      {        MidiPart* part = (MidiPart*)(ip->second);        const EventList* el = part->cevents(); -      unsigned len = part->lenTick(); +      // unsigned len = part->lenTick(); // Commented out by flo, see below        for(ciEvent ie = el->begin(); ie != el->end(); ++ie)        {          const Event& ev = ie->second; @@ -693,7 +693,7 @@ void Song::changeAllPortDrumCtrlEvents(bool add, bool drumonly)    for(ciMidiTrack it = _midis.begin(); it != _midis.end(); ++it)     {      MidiTrack* mt = *it; -    if(mt->type() != Track::DRUM) //FINDMICHJETZT was ist das? drumcontroller +    if(mt->type() != Track::DRUM)        continue;      trackmp = &MusEGlobal::midiPorts[mt->outPort()]; @@ -703,13 +703,15 @@ void Song::changeAllPortDrumCtrlEvents(bool add, bool drumonly)      {        MidiPart* part = (MidiPart*)(ip->second);        const EventList* el = part->cevents(); -      unsigned len = part->lenTick(); +      // unsigned len = part->lenTick(); // Commented out by flo, see below        for(ciEvent ie = el->begin(); ie != el->end(); ++ie)        {          const Event& ev = ie->second;          // Added by T356. Do not handle events which are past the end of the part. -        if(ev.tick() >= len) -          break; +        // Commented out by flo: yes, DO handle them! these are "hidden events" +        //                       which may be revealed later again! +        // if(ev.tick() >= len) +        //   break;          if(ev.type() != Controller)            continue; diff --git a/muse2/muse/songfile.cpp b/muse2/muse/songfile.cpp index 3096312e..b5c3382d 100644 --- a/muse2/muse/songfile.cpp +++ b/muse2/muse/songfile.cpp @@ -725,7 +725,7 @@ void Part::read(Xml& xml, int, bool toTrack)    // int newPartOffset                                              newPartOffset=this->tick();                                            int ctl = e.dataA(); -                                          if(mt->type() == Track::DRUM) //FINDMICHJETZT commented out: was ist das? +                                          if(mt->type() == Track::DRUM)                                            {                                              // Is it a drum controller event, according to the track port's instrument?                                              MidiController* mc = mp->drumController(ctl); diff --git a/muse2/muse/track.cpp b/muse2/muse/track.cpp index 31504309..4140732d 100644 --- a/muse2/muse/track.cpp +++ b/muse2/muse/track.cpp @@ -78,7 +78,7 @@ void addPortCtrlEvents(MidiTrack* t)          MidiPort* mp = &MusEGlobal::midiPorts[t->outPort()];          // Is it a drum controller event, according to the track port's instrument? -        if(t->type() == Track::DRUM)  //FINDMICHJETZT was soll das? drumcontroller -_- +        if(t->type() == Track::DRUM)          {            MidiController* mc = mp->drumController(cntrl);            if(mc) @@ -126,7 +126,7 @@ void removePortCtrlEvents(MidiTrack* t)          MidiPort* mp = &MusEGlobal::midiPorts[t->outPort()];          // Is it a drum controller event, according to the track port's instrument? -        if(t->type() == Track::DRUM)  //FINDMICHJETZT was soll das? drumcontroller... +        if(t->type() == Track::DRUM)          {            MidiController* mc = mp->drumController(cntrl);            if(mc) @@ -504,7 +504,7 @@ void MidiTrack::init_drummap(bool write_ordering)  void MidiTrack::update_drum_in_map()  {    for (int i=0;i<127;i++) -    drum_in_map[_drummap[i].enote]=i; +    drum_in_map[(int)_drummap[i].enote]=i;  }  //--------------------------------------------------------- @@ -667,7 +667,7 @@ void MidiTrack::addPortCtrlEvents()          MidiPort* mp = &MusEGlobal::midiPorts[_outPort];          // Is it a drum controller event, according to the track port's instrument? -        if(type() == DRUM)  //FINDMICHJETZT commented out. was soll das? +        if(type() == DRUM)          {            MidiController* mc = mp->drumController(cntrl);            if(mc) @@ -708,7 +708,7 @@ void MidiTrack::removePortCtrlEvents()          MidiPort* mp = &MusEGlobal::midiPorts[_outPort];          // Is it a drum controller event, according to the track port's instrument? -        if(type() == DRUM)  //FINDMICHJETZT commented out: was soll das? +        if(type() == DRUM)          {            MidiController* mc = mp->drumController(cntrl);            if(mc) diff --git a/muse2/muse/track.h b/muse2/muse/track.h index 1826f081..bbda67e4 100644 --- a/muse2/muse/track.h +++ b/muse2/muse/track.h @@ -202,6 +202,7 @@ class Track {        int channels() const                { return _channels; }        virtual void setChannels(int n);        bool isMidiTrack() const       { return type() == MIDI || type() == DRUM || type() == NEW_DRUM; } +      bool isDrumTrack() const       { return type() == DRUM || type() == NEW_DRUM; }        virtual bool canRecord() const { return false; }        virtual AutomationType automationType() const    = 0;        virtual void setAutomationType(AutomationType t) = 0; diff --git a/muse2/muse/widgets/mtrackinfo.cpp b/muse2/muse/widgets/mtrackinfo.cpp index 33462d0c..d0c0e070 100644 --- a/muse2/muse/widgets/mtrackinfo.cpp +++ b/muse2/muse/widgets/mtrackinfo.cpp @@ -345,7 +345,7 @@ void MidiTrackInfo::heartBeat()          else          {            MusECore::MidiInstrument* instr = mp->instrument(); -          QString name = instr->getPatchName(outChannel, nprogram, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM); //FINDMICHJETZT was soll das? +          QString name = instr->getPatchName(outChannel, nprogram, MusEGlobal::song->mtype(), track->isDrumTrack());            if(name.isEmpty())            {              const QString n("???"); @@ -391,7 +391,7 @@ void MidiTrackInfo::heartBeat()                //else                 //{                      MusECore::MidiInstrument* instr = mp->instrument(); -                    QString name = instr->getPatchName(outChannel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM);  //FINDMICHJETZT was soll das? +                    QString name = instr->getPatchName(outChannel, program, MusEGlobal::song->mtype(), track->isDrumTrack());                      if(iPatch->text() != name)                        iPatch->setText(name); @@ -762,7 +762,7 @@ void MidiTrackInfo::iProgHBankChanged()        MusEGlobal::audio->msgPlayMidiEvent(&ev);        MusECore::MidiInstrument* instr = mp->instrument(); -      iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM));  //FINDMICHJETZT was soll das? +      iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->isDrumTrack()));  //      updateTrackInfo();        } @@ -840,7 +840,7 @@ void MidiTrackInfo::iProgLBankChanged()        MusEGlobal::audio->msgPlayMidiEvent(&ev);        MusECore::MidiInstrument* instr = mp->instrument(); -      iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM)); //FINDMICHJETZT was soll das? +      iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->isDrumTrack()));  //      updateTrackInfo();        } @@ -918,7 +918,7 @@ void MidiTrackInfo::iProgramChanged()          MusEGlobal::audio->msgPlayMidiEvent(&ev);          MusECore::MidiInstrument* instr = mp->instrument(); -        iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM)); //FINDMICHJETZT was soll das? +        iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->isDrumTrack()));        }  //      updateTrackInfo(); @@ -1086,8 +1086,8 @@ void MidiTrackInfo::instrPopup()        //QMenu* pup = new QMenu;        PopupMenu* pup = new PopupMenu(true); -      //instr->populatePatchPopup(pop, channel, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM); -      populatePatchPopup(instr, pup, channel, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM); //FINDMICHJETZT was soll das? +      //instr->populatePatchPopup(pop, channel, MusEGlobal::song->mtype(), track->isDrumTrack()); +      populatePatchPopup(instr, pup, channel, MusEGlobal::song->mtype(), track->isDrumTrack());        //if(pop->actions().count() == 0)        //  return; @@ -1411,7 +1411,7 @@ void MidiTrackInfo::updateTrackInfo(int flags)            else            {              MusECore::MidiInstrument* instr = mp->instrument(); -            iPatch->setText(instr->getPatchName(outChannel, nprogram, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM)); //FINDMICHJETZT was soll das? +            iPatch->setText(instr->getPatchName(outChannel, nprogram, MusEGlobal::song->mtype(), track->isDrumTrack()));            }                   }          else @@ -1427,7 +1427,7 @@ void MidiTrackInfo::updateTrackInfo(int flags)                //else                 //{                      MusECore::MidiInstrument* instr = mp->instrument(); -                    iPatch->setText(instr->getPatchName(outChannel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM)); //FINDMICHJETZT was soll das? +                    iPatch->setText(instr->getPatchName(outChannel, program, MusEGlobal::song->mtype(), track->isDrumTrack()));                      int hb = ((program >> 16) & 0xff) + 1;                      if (hb == 0x100) | 
