Reset should be fixed now (keylights)

git-svn-id: https://svn.code.sf.net/p/pianobooster/code/trunk@152 ba081f5d-443b-49a7-ac4b-446c3f91f371
This commit is contained in:
louisjb 2011-01-27 23:43:36 +00:00
parent 8c68efebe4
commit ee4ff4662c
2 changed files with 17 additions and 6 deletions

View File

@ -126,10 +126,15 @@ void CConductor::channelSoundOff(int channel)
CMidiEvent midi; CMidiEvent midi;
midi.controlChangeEvent(0, channel, MIDI_ALL_NOTES_OFF, 0); midi.controlChangeEvent(0, channel, MIDI_ALL_NOTES_OFF, 0);
playTrackEvent(midi); playMidiEvent(midi);
// remove the sustain pedal as well // remove the sustain pedal as well
midi.controlChangeEvent(0, channel, MIDI_SUSTAIN, 0); midi.controlChangeEvent(0, channel, MIDI_SUSTAIN, 0);
playTrackEvent(midi); playMidiEvent(midi);
}
void CConductor::trackSoundOff(int trackNumber)
{
channelSoundOff( track2Channel( trackNumber ));
} }
void CConductor::allSoundOff() void CConductor::allSoundOff()
@ -153,7 +158,7 @@ void CConductor::resetAllChannels()
for ( channel = 0; channel < MAX_MIDI_CHANNELS; channel++) for ( channel = 0; channel < MAX_MIDI_CHANNELS; channel++)
{ {
midi.controlChangeEvent(0, channel, MIDI_RESET_ALL_CONTROLLERS, 0); midi.controlChangeEvent(0, channel, MIDI_RESET_ALL_CONTROLLERS, 0);
playTrackEvent(midi); playMidiEvent(midi);
} }
} }
@ -164,7 +169,7 @@ void CConductor::muteChannel(int channel, bool state)
m_muteChannels[ channel] = state; m_muteChannels[ channel] = state;
if (state == true) if (state == true)
channelSoundOff(channel); // fixme this is called too often trackSoundOff(channel); // fixme this is called too often
} }
void CConductor::mutePart(int part, bool state) void CConductor::mutePart(int part, bool state)
@ -184,7 +189,7 @@ void CConductor::mutePart(int part, bool state)
} }
if (state == true) if (state == true)
channelSoundOff(channel); trackSoundOff(channel);
} }
/* calculate the new solo_volume */ /* calculate the new solo_volume */
@ -417,10 +422,11 @@ void CConductor::playMusic(bool start)
} }
// This will allow us to map midi tracks onto midi channels // This will allow us to map midi tracks onto midi channels
// tacks will eventually allow for more than the 16 midi channels (eg with two mid devices)
void CConductor::playTrackEvent(CMidiEvent event) void CConductor::playTrackEvent(CMidiEvent event)
{ {
int track = event.channel(); int track = event.channel();
int chan = m_track2ChannelLookUp[track]; int chan = track2Channel(track);
if (chan == -1) if (chan == -1)
return; return;
event.setChannel(chan); event.setChannel(chan);

View File

@ -229,6 +229,9 @@ protected:
bool seekingBarNumber() { return m_bar.seekingBarNumber();} bool seekingBarNumber() { return m_bar.seekingBarNumber();}
int track2Channel(int track) {return m_track2ChannelLookUp[track];}
@ -239,6 +242,8 @@ private:
void outputPianoVolume(); void outputPianoVolume();
void channelSoundOff(int channel); void channelSoundOff(int channel);
void trackSoundOff(int trackNumber);
void findSplitPoint(); void findSplitPoint();
void fetchNextChord(); void fetchNextChord();
void playTransposeEvent(CMidiEvent event); void playTransposeEvent(CMidiEvent event);