module Sound.MIDI.Controller (
T, Value, fromInt, toInt,
bankSelect, modulation, breathControl, footControl, portamentoTime,
dataEntry, volume, balance, panorama, expression,
effectControl1, effectControl2,
generalPurpose1, generalPurpose2, generalPurpose3, generalPurpose4,
vectorX, vectorY,
soundController1, soundController2, soundController3,
soundController4, soundController5, soundController6,
soundController7, soundController8, soundController9,
soundController10, portamentoControl,
effect1Depth, effect2Depth, effect3Depth, effect4Depth, effect5Depth,
bankSelectMSB, modulationMSB, breathControlMSB, footControlMSB,
portamentoTimeMSB, dataEntryMSB, volumeMSB, balanceMSB,
panoramaMSB, expressionMSB,
effectControl1MSB, effectControl2MSB,
generalPurpose1MSB, generalPurpose2MSB,
generalPurpose3MSB, generalPurpose4MSB,
bankSelectLSB, modulationLSB, breathControlLSB, footControlLSB,
portamentoTimeLSB, dataEntryLSB, volumeLSB, balanceLSB,
panoramaLSB, expressionLSB,
effectControl1LSB, effectControl2LSB,
generalPurpose1LSB, generalPurpose2LSB,
generalPurpose3LSB, generalPurpose4LSB,
soundVariation, timbre, harmonicIntensity,
releaseTime, attackTime, brightness, decayTime,
vibratoRate, vibratoDepth, vibratoDelay,
reverbSendLevel, chorusSendLevel, legato,
sustain, portamento, sustenuto, softPedal, hold2,
generalPurpose5, generalPurpose6, generalPurpose7, generalPurpose8,
externalEffectDepth, tremoloDepth, chorusDepth, celesteDepth, phaserDepth,
dataIncrement, dataDecrement,
nonRegisteredParameterLSB, nonRegisteredParameterMSB,
registeredParameterLSB, registeredParameterMSB,
) where
import qualified Sound.MIDI.ControllerPrivate as CtrlP
import Sound.MIDI.Utility (checkRange, )
type T = CtrlP.Controller
fromInt :: Int -> T
fromInt = checkRange "Controller" CtrlP.Controller
toInt :: T -> Int
toInt = CtrlP.fromController
type Value = Int
bankSelect, modulation, breathControl, footControl, portamentoTime,
dataEntry, volume, balance, panorama, expression,
effectControl1, effectControl2,
generalPurpose1, generalPurpose2, generalPurpose3, generalPurpose4 :: T
bankSelect = bankSelectMSB
modulation = modulationMSB
breathControl = breathControlMSB
footControl = footControlMSB
portamentoTime = portamentoTimeMSB
dataEntry = dataEntryMSB
volume = volumeMSB
balance = balanceMSB
panorama = panoramaMSB
expression = expressionMSB
effectControl1 = effectControl1MSB
effectControl2 = effectControl2MSB
generalPurpose1 = generalPurpose1MSB
generalPurpose2 = generalPurpose2MSB
generalPurpose3 = generalPurpose3MSB
generalPurpose4 = generalPurpose4MSB
vectorX, vectorY,
soundVariation, timbre, harmonicIntensity,
releaseTime, attackTime, brightness, decayTime,
vibratoRate, vibratoDepth, vibratoDelay,
reverbSendLevel, chorusSendLevel,
externalEffectDepth, tremoloDepth, chorusDepth, celesteDepth, phaserDepth :: T
vectorX = generalPurpose1
vectorY = generalPurpose2
soundVariation = soundController1
timbre = soundController2
harmonicIntensity = soundController2
releaseTime = soundController3
attackTime = soundController4
brightness = soundController5
decayTime = soundController6
vibratoRate = soundController7
vibratoDepth = soundController8
vibratoDelay = soundController9
reverbSendLevel = effect1Depth
chorusSendLevel = effect3Depth
externalEffectDepth = effect1Depth
tremoloDepth = effect2Depth
chorusDepth = effect3Depth
celesteDepth = effect4Depth
phaserDepth = effect5Depth
bankSelectMSB, modulationMSB, breathControlMSB, footControlMSB,
portamentoTimeMSB, dataEntryMSB,
volumeMSB, balanceMSB, panoramaMSB, expressionMSB,
effectControl1MSB, effectControl2MSB,
generalPurpose1MSB, generalPurpose2MSB,
generalPurpose3MSB, generalPurpose4MSB :: T
bankSelectLSB, modulationLSB, breathControlLSB, footControlLSB,
portamentoTimeLSB, dataEntryLSB,
volumeLSB, balanceLSB, panoramaLSB, expressionLSB,
effectControl1LSB, effectControl2LSB,
generalPurpose1LSB, generalPurpose2LSB,
generalPurpose3LSB, generalPurpose4LSB :: T
sustain, portamento, sustenuto, softPedal, legato, hold2,
soundController1, soundController2, soundController3,
soundController4, soundController5, soundController6,
soundController7, soundController8, soundController9,
soundController10,
generalPurpose5, generalPurpose6, generalPurpose7, generalPurpose8,
portamentoControl,
effect1Depth, effect2Depth, effect3Depth, effect4Depth, effect5Depth :: T
dataIncrement, dataDecrement,
nonRegisteredParameterLSB, nonRegisteredParameterMSB,
registeredParameterLSB, registeredParameterMSB :: T
bankSelectMSB = toEnum 0x00
modulationMSB = toEnum 0x01
breathControlMSB = toEnum 0x02
footControlMSB = toEnum 0x04
portamentoTimeMSB = toEnum 0x05
dataEntryMSB = toEnum 0x06
volumeMSB = toEnum 0x07
balanceMSB = toEnum 0x08
panoramaMSB = toEnum 0x0A
expressionMSB = toEnum 0x0B
effectControl1MSB = toEnum 0x0C
effectControl2MSB = toEnum 0x0D
generalPurpose1MSB = toEnum 0x10
generalPurpose2MSB = toEnum 0x11
generalPurpose3MSB = toEnum 0x12
generalPurpose4MSB = toEnum 0x13
bankSelectLSB = toEnum 0x20
modulationLSB = toEnum 0x21
breathControlLSB = toEnum 0x22
footControlLSB = toEnum 0x24
portamentoTimeLSB = toEnum 0x25
dataEntryLSB = toEnum 0x26
volumeLSB = toEnum 0x27
balanceLSB = toEnum 0x28
panoramaLSB = toEnum 0x2A
expressionLSB = toEnum 0x2B
effectControl1LSB = toEnum 0x2C
effectControl2LSB = toEnum 0x2D
generalPurpose1LSB = toEnum 0x30
generalPurpose2LSB = toEnum 0x31
generalPurpose3LSB = toEnum 0x32
generalPurpose4LSB = toEnum 0x33
sustain = toEnum 0x40
portamento = toEnum 0x41
sustenuto = toEnum 0x42
softPedal = toEnum 0x43
legato = toEnum 0x44
hold2 = toEnum 0x45
soundController1 = toEnum 0x46
soundController2 = toEnum 0x47
soundController3 = toEnum 0x48
soundController4 = toEnum 0x49
soundController5 = toEnum 0x4A
soundController6 = toEnum 0x4B
soundController7 = toEnum 0x4C
soundController8 = toEnum 0x4D
soundController9 = toEnum 0x4E
soundController10 = toEnum 0x4F
generalPurpose5 = toEnum 0x50
generalPurpose6 = toEnum 0x51
generalPurpose7 = toEnum 0x52
generalPurpose8 = toEnum 0x53
portamentoControl = toEnum 0x54
effect1Depth = toEnum 0x5B
effect2Depth = toEnum 0x5C
effect3Depth = toEnum 0x5D
effect4Depth = toEnum 0x5E
effect5Depth = toEnum 0x5F
dataIncrement = toEnum 0x60
dataDecrement = toEnum 0x61
nonRegisteredParameterLSB = toEnum 0x62
nonRegisteredParameterMSB = toEnum 0x63
registeredParameterLSB = toEnum 0x64
registeredParameterMSB = toEnum 0x65