Ejemplo n.º 1
0
    def uiDraw(self):
        # draw midi mode toggle
        color = None
        if self.parentPage.midiTrackMode:
            color = 9
        else:
            color = 5
        outMsg = mido.Message('control_change',
                              channel=midi.autochannel,
                              control=98,
                              value=color)
        midi.standaloneOutPort().send(outMsg)

        # draw selected track
        selectedTrack = None
        hightlightColor = None
        if self.parentPage.midiTrackMode:
            selectedTrack = settings[self.pageSettingsKey]['selectedMidiTrack']
            hightlightColor = 9
        else:
            selectedTrack = settings[
                self.pageSettingsKey]['selectedAudioTrack']
            hightlightColor = 5
        for i in range(len(self.trackButtons)):
            color = hightlightColor if i == selectedTrack else 0
            outMsg = mido.Message('control_change',
                                  channel=midi.autochannel,
                                  control=self.trackButtons[i],
                                  value=color)
            midi.standaloneOutPort().send(outMsg)
Ejemplo n.º 2
0
 def uiDraw(self):
     for track in range(len(self.trackButtons)):
         color = None
         if self.muted[track]:
             color = 0
         else:
             color = 5
         outMsg = mido.Message('control_change', channel=midi.autochannel, control=self.trackButtons[track], value=color)
         midi.standaloneOutPort().send(outMsg)
Ejemplo n.º 3
0
    def uiDraw(self):
        # draw settings shift
        color = None
        if self.parentPage.midiChannelSettingsMode:
            color = 3
        else:
            color = 4
        outMsg = mido.Message('control_change',
                              channel=midi.autochannel,
                              control=97,
                              value=color)
        midi.standaloneOutPort().send(outMsg)

        if self.parentPage.midiChannelSettingsMode:
            # draw channel clear button
            color = 45
            outMsg = mido.Message('control_change',
                                  channel=midi.autochannel,
                                  control=96,
                                  value=color)
            midi.standaloneOutPort().send(outMsg)
            # draw channel for selected track
            selectedTrack = None
            channel = None
            hightlightColor = None
            if self.parentPage.midiTrackMode:
                selectedTrack = settings[
                    self.pageSettingsKey]['selectedMidiTrack']
                channel = settings['trackChannels']['midiTrackChannel'][
                    selectedTrack]
                hightlightColor = 9
            else:
                selectedTrack = settings[
                    self.pageSettingsKey]['selectedAudioTrack']
                channel = settings['trackChannels']['audioTrackChannel'][
                    selectedTrack]
                hightlightColor = 5
            for i in range(len(self.midiChannelButtons)):
                color = None
                if i == channel:
                    color = hightlightColor
                else:
                    color = 0
                outMsg = mido.Message('control_change',
                                      channel=midi.autochannel,
                                      control=self.midiChannelButtons[i],
                                      value=color)
                midi.standaloneOutPort().send(outMsg)
        else:
            # clear
            for button in self.midiChannelButtons + [96]:
                color = 0
                outMsg = mido.Message('control_change',
                                      channel=midi.autochannel,
                                      control=button,
                                      value=color)
                midi.standaloneOutPort().send(outMsg)
Ejemplo n.º 4
0
        def onCC(self, port, msg):
            levelControl = 46
            volumeControl = 25
            trackMute = 49

            if port == midi.standaloneInPort():
                if msg.control >= 21 and msg.control <= 28:
                    track = msg.control - 21
                    channel = settings['trackChannels']['audioTrackChannel'][track]
                    if channel is None:
                        return
                    outMsg = mido.Message('control_change', channel=channel, control=levelControl, value=msg.value)
                    #outMsg = mido.Message('control_change', channel=channel, control=volumeControl, value=msg.value)
                    midi.midiOutPort().send(outMsg)
                elif msg.control in self.page.trackButtons:
                    if msg.value == 127:
                        track = msg.control - 1
                        channel = settings['trackChannels']['audioTrackChannel'][track]
                        self.page.muted[track] = not self.page.muted[track]
                        value = None
                        if self.page.muted[track]:
                            value = 127
                        else:
                            value = 0
                        outMsg = mido.Message('control_change', channel=channel, control=trackMute, value=value)
                        midi.midiOutPort().send(outMsg)
                    self.page.uiDraw()
            elif port == midi.midiInPort():
                if msg.control == levelControl:
                    channel = msg.channel
                    value = msg.value
                    # send midi cc to standalone port to light up fader value
                    outMsg = mido.Message('control_change', channel=midi.autochannel, control=channel+21, value=value)
                    midi.standaloneOutPort().send(outMsg)
                elif msg.control == trackMute:
                    channel = msg.channel
                    muted = (msg.value != 0)
                    track = settings['trackChannels']['audioTrackChannel'].index(channel)
                    self.page.muted[track] = muted
                    self.page.uiDraw()
Ejemplo n.º 5
0
def gotoSavedSelectedPage():
    # launchpad sysex 'header'
    headerMsg = mido.Message('sysex', data=(0, 32, 41, 2, 16))

    page = settings.settings['selectedPage']
    if page == 'live':
        outMsg = headerMsg.copy()
        outMsg.data += (33, 0)
        midi.liveOutPort().send(outMsg)
    else:
        outMsg = headerMsg.copy()
        outMsg.data += (33, 1)
        midi.liveOutPort().send(outMsg)
        outMsg = headerMsg.copy()
        if page == 'note':
            outMsg.data += (44, 0)
        elif page == 'drum':
            outMsg.data += (44, 1)
        elif page == 'fader':
            outMsg.data += (44, 2)
        elif page == 'programmer':
            outMsg.data += (44, 3)
        midi.standaloneOutPort().send(outMsg)