| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Harmonic.Interface.Tidal.Devices.RC10R
Description
The pedal's own switches own everything one-off or stateful: recording, undo/redo, phrase memories, clearing. This module covers the timed, repeated and structural side: starting and stopping the recorded tracks, breaks, the preset rhythm's start, stop, fills and A/B groove, the rhythm kit, and levels that follow the form.
Every function is a control change on MIDI channel 10, CC 70-84. The rig's X3 interface consumes that lane before the MPC sees it and re-sends it on the RC-10R's own wire (X3 Out C): CC 70-83 on the RC-10R's control channel (1), CC 84 as a program change on its note channel (2). The pedal's MIDI menu carries the matching assignments:
CC RC-10R function CC RC-10R function 70 TRK1 START 78 RHY STOP 71 TRK1 STOP 79 RHY FILLIN 72 TRK2 START 80 RHY DIVISION 73 TRK2 STOP 81 LOOP LEVEL 74 LOOP STOP 82 RHY LEVEL 75 ALL BREAK 83 TOTAL LEVEL 76 RHY BREAK 84 rhythm kit (program change, value = kit 1-16) 77 RHY START RX CONTROL CH 1 · RX NOTE CH 2 · SYNC CLOCK MIDI (Tidal's clock, re-clocked by the X3)
Presses take a gate, like the drum names: rcFill "[0 0 0 0 0 0 0 1]/32",
mark 33 k [silence, rcBreak "1"], once $ rcStop "1".
The pedal's drum kit is played through the MPC on a second lane, ch 10
CC 33-48: CC 33 + pad, value = velocity. The X3 consumes it and sends each
hit as note 19-34 (pad + 19, clear of every other ch 10 note) out of its USB
port 2 (Drums) to an MPC MIDI track (pads Chromatic C-2 transposed +19), which
records or plays it and sends it on through port 3
(Looper); the X3 translates those notes to the kit's own and plays them on
the note channel. A dkit block is written with the shared drum names
(Harmonic.Interface.Tidal.Devices.JV1010, notes 0-15) and finished by
x3rc10.
Synopsis
- rcTrk1 :: Pattern Bool -> ControlPattern
- rcTrk1Stop :: Pattern Bool -> ControlPattern
- rcTrk2 :: Pattern Bool -> ControlPattern
- rcTrk2Stop :: Pattern Bool -> ControlPattern
- rcStop :: Pattern Bool -> ControlPattern
- rcBreak :: Pattern Bool -> ControlPattern
- rcRhythmBreak :: Pattern Bool -> ControlPattern
- rcRhythm :: Pattern Bool -> ControlPattern
- rcRhythmStop :: Pattern Bool -> ControlPattern
- rcFill :: Pattern Bool -> ControlPattern
- rcPattern :: Pattern Bool -> ControlPattern
- rcKit :: Pattern Double -> ControlPattern
- rcLoopLevel :: Pattern Double -> ControlPattern
- rcRhythmLevel :: Pattern Double -> ControlPattern
- rcLevel :: Pattern Double -> ControlPattern
- rcGate :: (Double, Double) -> IK -> Int -> ControlPattern
- x3rc10 :: ControlPattern -> ControlPattern
Loop tracks
rcTrk1 :: Pattern Bool -> ControlPattern Source #
Start or stop a recorded track. With LOOP TRACK MODE set to PARALLEL the two tracks are independent, so they can be arranged like instruments.
rcTrk1Stop :: Pattern Bool -> ControlPattern Source #
Start or stop a recorded track. With LOOP TRACK MODE set to PARALLEL the two tracks are independent, so they can be arranged like instruments.
rcTrk2 :: Pattern Bool -> ControlPattern Source #
Start or stop a recorded track. With LOOP TRACK MODE set to PARALLEL the two tracks are independent, so they can be arranged like instruments.
rcTrk2Stop :: Pattern Bool -> ControlPattern Source #
Start or stop a recorded track. With LOOP TRACK MODE set to PARALLEL the two tracks are independent, so they can be arranged like instruments.
rcStop :: Pattern Bool -> ControlPattern Source #
Stop the looper (both tracks), observing the pedal's STOP MODE.
Breaks
rcBreak :: Pattern Bool -> ControlPattern Source #
ALL BREAK: rhythm and loops cut out for the rest of the bar and return on the next downbeat.
rcRhythmBreak :: Pattern Bool -> ControlPattern Source #
RHY BREAK: the same, drums only; the loops keep playing.
Preset rhythm
rcRhythmStop :: Pattern Bool -> ControlPattern Source #
rcKit :: Pattern Double -> ControlPattern Source #
Select the rhythm kit, 1-16, in Roland's order: Studio, Live, Light,
Heavy, Rock, Metal, Jazz, Brushes, Cajon, Drum&Bs, R&B, Dance, Techno,
Dance Beats, Hiphop, 808+909. One message per event:
mark 1 k [silence, rcKit 8].
Levels
rcLoopLevel :: Pattern Double -> ControlPattern Source #
Playback levels, 0-1. Any signal — a constant, an lfo, or the form's own
kDynamic (fst k) — sampled sixteen times per bar.
rcRhythmLevel :: Pattern Double -> ControlPattern Source #
Playback levels, 0-1. Any signal — a constant, an lfo, or the form's own
kDynamic (fst k) — sampled sixteen times per bar.
rcLevel :: Pattern Double -> ControlPattern Source #
Playback levels, 0-1. Any signal — a constant, an lfo, or the form's own
kDynamic (fst k) — sampled sixteen times per bar.
Loops entering with the form
rcGate :: (Double, Double) -> IK -> Int -> ControlPattern Source #
A recorded track that enters and leaves with the form, like a section at
its kinetics threshold: TRKtrk START on the first bar the form's kinetics is
inside (lo, hi), TRKtrk STOP on the first bar it is outside. Sampled at
each downbeat; only the crossings send anything, so no state is kept.
Drum kit
x3rc10 :: ControlPattern -> ControlPattern Source #
The dkit block's finaliser: every drum-pad event (notes 0-15) becomes a
CC on the drum lane, CC 33 + pad with its final velocity (amp x 127) as the
value. It comes last because a block applies |* vel d after the names. An
event without amp takes SuperDirt's default, 0.4, as it would on the MPC
kits. Any other note, and a velocity that rounds to 0, is dropped.