Search in sources :

Example 1 with ITrack

use of de.mossgrabers.framework.daw.data.ITrack in project DrivenByMoss by git-moss.

the class APCminiControllerSetup method updateIndication.

private void updateIndication(final Integer mode) {
    final ITrackBank tb = this.model.getTrackBank();
    final IChannelBank tbe = this.model.getEffectTrackBank();
    final APCminiControlSurface surface = this.getSurface();
    final ViewManager viewManager = surface.getViewManager();
    final boolean isShiftView = viewManager.isActiveView(Views.VIEW_SHIFT);
    final boolean isSession = viewManager.isActiveView(Views.VIEW_SESSION) || isShiftView;
    final boolean isEffect = this.model.isEffectTrackBankActive();
    final boolean isPan = Modes.MODE_PAN.equals(mode);
    final boolean isDevice = Modes.MODE_DEVICE.equals(mode);
    tb.setIndication(!isEffect && isSession);
    tbe.setIndication(isEffect && isSession);
    final ICursorDevice cursorDevice = this.model.getCursorDevice();
    for (int i = 0; i < 8; i++) {
        final ITrack track = tb.getTrack(i);
        track.setVolumeIndication(!isEffect);
        track.setPanIndication(!isEffect && isPan);
        for (int j = 0; j < 8; j++) track.getSend(j).setIndication(!isEffect && (Modes.MODE_SEND1.equals(mode) && j == 0 || Modes.MODE_SEND2.equals(mode) && j == 1 || Modes.MODE_SEND3.equals(mode) && j == 2 || Modes.MODE_SEND4.equals(mode) && j == 3 || Modes.MODE_SEND5.equals(mode) && j == 4 || Modes.MODE_SEND6.equals(mode) && j == 5 || Modes.MODE_SEND7.equals(mode) && j == 6 || Modes.MODE_SEND8.equals(mode) && j == 7));
        final ITrack fxTrack = tbe.getTrack(i);
        fxTrack.setVolumeIndication(isEffect);
        fxTrack.setPanIndication(isEffect && isPan);
        cursorDevice.indicateParameter(i, isDevice || isShiftView);
    }
}
Also used : APCminiControlSurface(de.mossgrabers.apcmini.controller.APCminiControlSurface) ITrack(de.mossgrabers.framework.daw.data.ITrack) ITrackBank(de.mossgrabers.framework.daw.ITrackBank) IChannelBank(de.mossgrabers.framework.daw.IChannelBank) ViewManager(de.mossgrabers.framework.view.ViewManager) ICursorDevice(de.mossgrabers.framework.daw.ICursorDevice)

Example 2 with ITrack

use of de.mossgrabers.framework.daw.data.ITrack in project DrivenByMoss by git-moss.

the class TrackEditing method onTrackKnob.

/**
 * A knob is moved for changing a track parameter.
 *
 * @param index The index of the knob
 * @param value The knobs value
 */
public void onTrackKnob(final int index, final int value) {
    if (value == 64)
        return;
    final IChannelBank tb = this.model.getCurrentTrackBank();
    final ITrack selectedTrack = tb.getSelectedTrack();
    if (selectedTrack == null)
        return;
    switch(index) {
        case 0:
            selectedTrack.changeVolume(value);
            break;
        case 1:
            selectedTrack.changePan(value);
            break;
        case 2:
            selectedTrack.setMute(value > 64);
            break;
        case 3:
            selectedTrack.setSolo(value > 64);
            break;
        case 4:
            selectedTrack.changeCrossfadeModeAsNumber(value);
            break;
        case 5:
            this.model.getTransport().changeTempo(value >= 65);
            break;
        case 6:
            this.model.getTransport().changePosition(value >= 65, this.surface.isShiftPressed());
            break;
        case 7:
            this.model.getMasterTrack().changeVolume(value);
            break;
        // Send 1 - 4
        case 8:
        case 9:
        case 10:
        case 11:
            if (tb instanceof ITrackBank)
                selectedTrack.getSend(index - 8).changeValue(value);
            break;
    }
}
Also used : ITrack(de.mossgrabers.framework.daw.data.ITrack) ITrackBank(de.mossgrabers.framework.daw.ITrackBank) IChannelBank(de.mossgrabers.framework.daw.IChannelBank)

Example 3 with ITrack

use of de.mossgrabers.framework.daw.data.ITrack in project DrivenByMoss by git-moss.

the class TrackView method drawGrid.

/**
 * {@inheritDoc}
 */
@Override
public void drawGrid() {
    final IChannelBank tb = this.model.getCurrentTrackBank();
    final PadGrid padGrid = this.surface.getPadGrid();
    for (int i = 0; i < 8; i++) padGrid.light(44 + i, tb.getTrack(i).isSelected() ? BeatstepColors.BEATSTEP_BUTTON_STATE_BLUE : BeatstepColors.BEATSTEP_BUTTON_STATE_OFF);
    final ITrack sel = tb.getSelectedTrack();
    padGrid.light(36, sel != null && sel.isActivated() ? BeatstepColors.BEATSTEP_BUTTON_STATE_RED : BeatstepColors.BEATSTEP_BUTTON_STATE_OFF);
    padGrid.light(37, BeatstepColors.BEATSTEP_BUTTON_STATE_BLUE);
    padGrid.light(38, BeatstepColors.BEATSTEP_BUTTON_STATE_BLUE);
    padGrid.light(39, BeatstepColors.BEATSTEP_BUTTON_STATE_RED);
    padGrid.light(40, BeatstepColors.BEATSTEP_BUTTON_STATE_RED);
    padGrid.light(41, BeatstepColors.BEATSTEP_BUTTON_STATE_OFF);
    padGrid.light(42, BeatstepColors.BEATSTEP_BUTTON_STATE_BLUE);
    padGrid.light(43, BeatstepColors.BEATSTEP_BUTTON_STATE_BLUE);
}
Also used : PadGrid(de.mossgrabers.framework.controller.grid.PadGrid) ITrack(de.mossgrabers.framework.daw.data.ITrack) IChannelBank(de.mossgrabers.framework.daw.IChannelBank)

Example 4 with ITrack

use of de.mossgrabers.framework.daw.data.ITrack in project DrivenByMoss by git-moss.

the class TrackView method scrollTracksRight.

private void scrollTracksRight() {
    final IChannelBank tb = this.model.getCurrentTrackBank();
    if (!tb.canScrollTracksDown())
        return;
    final ITrack sel = tb.getSelectedTrack();
    final int index = sel == null ? 0 : sel.getIndex() + 1;
    tb.scrollTracksPageDown();
    final int newSel = index == 8 || sel == null ? 0 : sel.getIndex();
    this.surface.scheduleTask(() -> this.selectTrack(newSel), 100);
}
Also used : ITrack(de.mossgrabers.framework.daw.data.ITrack) IChannelBank(de.mossgrabers.framework.daw.IChannelBank)

Example 5 with ITrack

use of de.mossgrabers.framework.daw.data.ITrack in project DrivenByMoss by git-moss.

the class TrackView method onKnob.

/**
 * {@inheritDoc}
 */
@Override
public void onKnob(final int index, final int value) {
    if (index < 12) {
        this.extensions.onTrackKnob(index, value);
        return;
    }
    final IChannelBank tb = this.model.getCurrentTrackBank();
    final ITrack selectedTrack = tb.getSelectedTrack();
    if (selectedTrack == null)
        return;
    switch(index) {
        // Send 5 - 6
        case 12:
        case 13:
            if (tb instanceof ITrackBank)
                selectedTrack.getSend(index - 8).changeValue(value);
            break;
        case 14:
            // Not used
            break;
        // Crossfader
        case 15:
            this.model.getTransport().changeCrossfade(value);
            break;
    }
}
Also used : ITrack(de.mossgrabers.framework.daw.data.ITrack) ITrackBank(de.mossgrabers.framework.daw.ITrackBank) IChannelBank(de.mossgrabers.framework.daw.IChannelBank)

Aggregations

ITrack (de.mossgrabers.framework.daw.data.ITrack)312 IChannelBank (de.mossgrabers.framework.daw.IChannelBank)92 ITrackBank (de.mossgrabers.framework.daw.data.bank.ITrackBank)84 ISend (de.mossgrabers.framework.daw.data.ISend)40 ISendBank (de.mossgrabers.framework.daw.data.bank.ISendBank)25 ICursorDevice (de.mossgrabers.framework.daw.ICursorDevice)19 ISlot (de.mossgrabers.framework.daw.data.ISlot)19 Display (de.mossgrabers.framework.controller.display.Display)18 ITrackBank (de.mossgrabers.framework.daw.ITrackBank)18 ModeManager (de.mossgrabers.framework.mode.ModeManager)18 ITextDisplay (de.mossgrabers.framework.controller.display.ITextDisplay)16 ViewManager (de.mossgrabers.framework.view.ViewManager)16 IMasterTrack (de.mossgrabers.framework.daw.data.IMasterTrack)15 ModeManager (de.mossgrabers.framework.featuregroup.ModeManager)15 PushConfiguration (de.mossgrabers.push.PushConfiguration)14 ViewManager (de.mossgrabers.framework.featuregroup.ViewManager)12 IPadGrid (de.mossgrabers.framework.controller.grid.IPadGrid)11 PushDisplay (de.mossgrabers.push.controller.PushDisplay)11 ITransport (de.mossgrabers.framework.daw.ITransport)9 IParameter (de.mossgrabers.framework.daw.data.IParameter)9