MIDI_control_changes.f90 Source File


Files dependent on this one

sourcefile~~midi_control_changes.f90~~AfferentGraph sourcefile~midi_control_changes.f90 MIDI_control_changes.f90 sourcefile~blues.f90 blues.f90 sourcefile~blues.f90->sourcefile~midi_control_changes.f90 sourcefile~canon.f90 canon.f90 sourcefile~canon.f90->sourcefile~midi_control_changes.f90 sourcefile~circle_of_fifths.f90 circle_of_fifths.f90 sourcefile~circle_of_fifths.f90->sourcefile~midi_control_changes.f90 sourcefile~la_folia.f90 la_folia.f90 sourcefile~la_folia.f90->sourcefile~midi_control_changes.f90 sourcefile~motifs.f90 motifs.f90 sourcefile~motifs.f90->sourcefile~midi_control_changes.f90

Source Code

! ForMIDI: a small Fortran MIDI sequencer for composing music, exploring
!          algorithmic music and music theory
! License GPL-3.0-or-later
! Vincent Magnin
! Last modifications: 2024-06-14

!> MIDI 1.0 Control Change Messages and Registered Parameter Numbers (RPNs)
module MIDI_control_changes
    implicit none

    public

    integer, parameter :: Bank_Select = 0
    integer, parameter :: Modulation_Wheel_or_Lever = 1
    integer, parameter :: Breath_Controller = 2
    ! Undefined = 3
    integer, parameter :: Foot_Controller = 4
    integer, parameter :: Portamento_Time = 5
    integer, parameter :: Data_Entry_MSB = 6
    integer, parameter :: Channel_Volume = 7      ! (formerly_Main_Volume)
    integer, parameter :: Balance = 8
    ! Undefined = 9
    integer, parameter :: Pan = 10
    integer, parameter :: Expression_Controller = 11
    integer, parameter :: Effect_Control_1 = 12
    integer, parameter :: Effect_Control_2 = 13
    ! Undefined 14-15
    integer, parameter :: General_Purpose_Controller_1 = 16
    integer, parameter :: General_Purpose_Controller_2 = 17
    integer, parameter :: General_Purpose_Controller_3 = 18
    integer, parameter :: General_Purpose_Controller_4 = 19
    ! Undefined 20-31
    integer, parameter :: Bank_Select_LSB = 32
    integer, parameter :: Modulation_Wheel_or_Lever_LSB = 33
    integer, parameter :: Breath_Controller_LSB = 34
    ! Undefined = 35
    integer, parameter :: Foot_Controller_LSB = 36
    integer, parameter :: Portamento_Time_LSB = 37
    integer, parameter :: Data_Entry_MSB_LSB = 38
    integer, parameter :: Channel_Volume_LSB = 39 ! (formerly_Main_Volume)
    integer, parameter :: Balance_LSB = 40
    ! Undefined = 41
    integer, parameter :: Pan_LSB = 42
    integer, parameter :: Expression_Controller_LSB = 43
    integer, parameter :: Effect_Control_1_LSB = 44
    integer, parameter :: Effect_Control_2_LSB = 45
    ! Undefined 46-47
    integer, parameter :: General_Purpose_Controller_1_LSB = 48
    integer, parameter :: General_Purpose_Controller_2_LSB = 49
    integer, parameter :: General_Purpose_Controller_3_LSB = 50
    integer, parameter :: General_Purpose_Controller_4_LSB = 51
    ! Undefined 52-63
    integer, parameter :: Damper_Pedal_on_off = 64  ! (Sustain)
    integer, parameter :: Portamento_On_Off = 65
    integer, parameter :: Sostenuto_On_Off = 66
    integer, parameter :: Soft_Pedal_On_Off = 67
    integer, parameter :: Legato_Footswitch = 68
    integer, parameter :: Hold_2 = 69
    integer, parameter :: Sound_Controller_1 = 70   ! (default: Sound_Variation)
    integer, parameter :: Sound_Controller_2 = 71   ! (default: Timbre_Harmonic_Intens.)
    integer, parameter :: Sound_Controller_3 = 72   ! (default: Release_Time)
    integer, parameter :: Sound_Controller_4 = 73   ! (default: Attack_Time)
    integer, parameter :: Sound_Controller_5 = 74   ! (default: Brightness)
    integer, parameter :: Sound_Controller_6 = 75   ! (default: Decay_Time - see_MMA_RP-021)
    integer, parameter :: Sound_Controller_7 = 76   ! (default: Vibrato_Rate - see_MMA_RP-021)
    integer, parameter :: Sound_Controller_8 = 77   ! (default: Vibrato_Depth - see_MMA_RP-021)
    integer, parameter :: Sound_Controller_9 = 78   ! (default: Vibrato_Delay - see_MMA_RP-021)
    integer, parameter :: Sound_Controller_10 = 79  ! (default_undefined - see_MMA_RP-021)
    integer, parameter :: General_Purpose_Controller_5 = 80
    integer, parameter :: General_Purpose_Controller_6 = 81
    integer, parameter :: General_Purpose_Controller_7 = 82
    integer, parameter :: General_Purpose_Controller_8 = 83
    integer, parameter :: Portamento_Control = 84
    ! Undefined_85-87
    integer, parameter :: High_Resolution_Velocity_Prefix = 88
    ! Undefined_89-90
    integer, parameter :: Effects_1_Depth = 91  ! (default: Reverb_Send_Level - see_MMA_RP-023,
                                                      ! formerly_External_Effects_Depth)
    integer, parameter :: Effects_2_Depth = 92  ! (formerly_Tremolo_Depth)
    integer, parameter :: Effects_3_Depth = 93  ! (default: Chorus_Send_Level - see_MMA_RP-023)  (formerly_Chorus_Depth)
    integer, parameter :: Effects_4_Depth = 94  ! (formerly_Celeste [Detune] Depth)
    integer, parameter :: Effects_5_Depth = 95  ! (formerly_Phaser_Depth)
    integer, parameter :: Data_Increment = 96   ! (Data_Entry +1) (see_MMA_RP-018)
    integer, parameter :: Data_Decrement = 97   ! (Data_Entry -1) (see_MMA_RP-018)
    integer, parameter :: Non_Registered_Parameter_Number_LSB = 98   ! (NRPN) - LSB
    integer, parameter :: Non_Registered_Parameter_Number_MSB = 99   ! (NRPN) - MSB
    integer, parameter :: Registered_Parameter_Number_LSB = 100      ! (RPN) - LSB*
    integer, parameter :: Registered_Parameter_Number_MSB = 101      ! (RPN) - MSB*
    ! Undefined_102-119
    integer, parameter :: All_Sound_Off = 120         ! [Channel_Mode_Message]
    integer, parameter :: Reset_All_Controllers = 121 ! [Channel_Mode_Message] (See_MMA_RP-015)
    integer, parameter :: Local_Control_On_Off = 122  ! [Channel_Mode_Message]
    integer, parameter :: All_Notes_Off = 123         ! [Channel_Mode_Message]
    integer, parameter :: Omni_Mode_Off = 124  ! (+ all_notes_off) [Channel_Mode_Message]
    integer, parameter :: Omni_Mode_On = 125   ! (+ all_notes_off) [Channel_Mode_Message]
    integer, parameter :: Mono_Mode_On = 126   ! (+ poly_off, + all_notes_off) [Channel_Mode_Message]
    integer, parameter :: Poly_Mode_On = 127   ! (+ mono_off, +all_notes_off) [Channel_Mode_Message]

end module MIDI_control_changes