Schrödinger’s Cat’s Möbius 3 Site
  1. Sheeran Looper X
  2. Möbius Implementations
  3. Basic Version
  4. MSL Scripts
  • Home
  • Sheeran Looper X
    • Introduction
    • Möbius Implementations
      • Background
      • Basic Version
        • MSL Scripts
        • Installation
      • Advanced Version
        • MSL Scripts
        • Installation

On this page

  • SheeranXLib.msl
  • SheeranXPedal1.msl
  • SheeranXPedal2.msl
  • SheeranXPedal3.msl
  • SheeranXPedal4.msl
  • SheeranXPedal5.msl
  • SheeranXPedal6.msl
  • SheeranXPedal7.msl
  • SheeranXPedal8.msl
  1. Sheeran Looper X
  2. Möbius Implementations
  3. Basic Version
  4. MSL Scripts

MSL Scripts

SheeranXLib.msl

#name Sheeran Looper X Library
#library

init{
   InstallUIElement("fmodeLight","fmode" :Light :onColor :white :offColor :gray)
   InstallUIElement("fmodeLabel","fmode" :Text  :text "Function Mode:"  :width 80 :onColor :white :offColor :gray)
   InstallUIElement("fmenuALabel","fmenuA" :Text  :text "A"  :width 80 :onColor :white :offColor :gray)
   InstallUIElement("fmenuBLabel","fmenuB" :Text  :text "B"  :width 80 :onColor :white :offColor :gray)
   InstallUIElement("fmenuTapLabel","fmenuTap" :Text  :text "Tap"  :width 80 :onColor :white :offColor :gray)  
   InstallUIElement("MuteModeLight","mutemode" :Light :onColor :white :offColor :gray)
   InstallUIElement("MuteModeLabel","mutemode" :Text  :text "Mute Mode" :width 80 :onColor :white :offColor :gray)
}

/*
Use export statements to declare global variables used to capture the emulated states of the Looper X
fmode values: 0 (normal behaviour), 1 (Function Menu A), 2 (Function Menu B) or 3 (Tap Tempo Mode)
fmenuA values: 1 (Function Menu A On), 0 (Function Menu A Off)
fmenuB values: 1 (Function Menu B On), 0(Function Menu B Off)
fmenuTap values: 1 (Tap Tempo Mode On), 0((Tap Tempo Mode Off)
mutemode values: 1 (Mute Mode On), 0 (Mute Mode Off)
*/

export variable fmode
export variable fmenuA 
export variable fmenuB 
export variable fmenuTap
export variable mutemode

SheeranXPedal1.msl

#name SheeranXPedal1
#repeat

//When Mute mode is on (mutemode=1) pressing pedal 1 Mutes/Unmutes Track 1
//When Mute Mode is off (mutemode=0) pressing pedal 1 selects Track 1
if mutemode equals 1{
  in 1 Mute
}
else
{
  SelectTrack(1)
}

//Double press of Pedal 1 solos Track 1
function OnRepeat(repeatCount){
  in 1 Solo
}

SheeranXPedal2.msl

#name SheeranXPedal2
#repeat

//When Mute mode is on (mutemode=1) pressing pedal 2 Mutes/Unmutes Track 2
//When Mute Mode is off (mutemode=0) pressing pedal 2 selects Track 2
if mutemode equals 1{
  in 2 Mute
}
else
{
  SelectTrack(2)
}

//Double press of Pedal 2 solos Track 2
function OnRepeat(repeatCount){
  in 2 Solo
}

SheeranXPedal3.msl

#name SheeranXPedal3
#repeat

//When Mute mode is on (mutemode=1) pressing pedal 3 Mutes/Unmutes Track 3
//When Mute Mode is off (mutemode=0) pressing pedal 3 selects Track 3
if mutemode equals 1{
  in 3 Mute
}
else
{
  SelectTrack(3)
}

//Double press of Pedal 3 solos Track 3
function OnRepeat(repeatCount){
  in 3 Solo
}

SheeranXPedal4.msl

#name SheeranXPedal4
#repeat

//When Mute mode is on (mutemode=1) pressing pedal 4 Mutes/Unmutes Track 4
//When Mute Mode is off (mutemode=0) pressing pedal 4 selects Track 4
if mutemode equals 1{
  in 4 Mute
}
else
{
  SelectTrack(4)
}

//Double press of Pedal 4 solos Track 4
function OnRepeat(repeatCount){
  in 4 Solo
}

SheeranXPedal5.msl

#name SheeranXPedal5
#sustain
#repeat

if fmode equals 0{
  case mode {
      :Reset {TransportStart Record}
      :Record Overdub
      :Overdub Play
      :Play Overdub
      :Mute Play
      else print("Unhandled mode" mode)
  }
}
else if fmenuTap{
  TransportTap
}

function OnSustain(sustainCount sustainElapsed) {
     if fmode equals 0 Undo   
}

SheeranXPedal6.msl

#name SheeranXPedal6
#sustain

if fmode equals 0{
  in all {MuteOn}
}

function OnSustain() {
  in all {if fmode equals 0 {Reset}}
}

SheeranXPedal7.msl

#name SheeranXPedal7

if mutemode equals 0{
  mutemode = 1
}
else{
  mutemode = 0
}

SheeranXPedal8.msl

#name SheeranXPedal8
#sustain
#repeat

if fmode equals 0{
  fmode = 1
  fmenuA = 1
  fmenuB = 0
  fmenuTap = 0
}else{
  fmode = 0
  fmenuA = 0
  fmenuB = 0
  fmenuTap = 0
}

function OnSustain(sustainCount){
  if fmode equals 2{
    fmode = 1
    fmenuA = 1
    fmenuB = 0
    fmenuTap = 0     
  }else{
    fmode = 2
    fmenuA = 0
    fmenuB = 1
    fmenuTap = 0
  }
}

function OnRepeat(repeatCount){
  fmode = 3
  fmenuA = 0
  fmenuB = 0
  fmenuTap = 1
}
Basic Version
Installation