Failing to make a JSON for the Terrarium PCB

I thought this would be easy.
So, after rewriting the JSON for the mysterious “petal_125b_sm.json” that comes with the latest Oopsy (bootloader-additions branch) for the pins of the Terrarium PCB, Oopsy hangs on compile attempt. I loaded my terrarium.json with the little browse button on the Oopsy~ object. No luck.
I have reached the limits of my hacking skills, as I am a poor programmer in reality and have a bad habit of not reading documentation, just beating snippets into submission when possible :slight_smile:
Any assistance would be appreciated.



{
	"name": "terrarium",
	"som": "terrarium",
	"audio": {
  		"channels": 1
 	 },
	"components": {
		"knob1": {
			"component": "AnalogControl",
			"pin": 23
		},
		"knob2": {
			"component": "AnalogControl",
			"pin": 24
		},
		"knob3": {
			"component": "AnalogControl",
			"pin": 25
		},
		"knob4": {
			"component": "AnalogControl",
			"pin": 26
		},
		"knob5": {
			"component": "AnalogControl",
			"pin": 27
		},
		"knob6": {
			"component": "AnalogControl",
			"pin": 28
		},
		"sw1": {
			"component": "Switch",
			"pin": 11
		},
		"sw2": {
			"component": "Switch",
			"pin": 10
		},
		"sw3": {
			"component": "Switch",
			"pin": 9
		},
		"sw4": {
			"component": "Switch",
			"pin": 8
		},
		"sw5": {
			"component": "Switch",
			"pin": 32
		},
		"sw6": {
			"component": "Switch",
			"pin": 33
		},
		"led1": {
			"component": "Led",
			"pin": 29
		},
		"led2": {
			"component": "Led",
			"pin": 30
		}
	},
	"aliases": {
		"switch1": "sw1",
		"switch2": "sw2",
		"switch3": "sw3",
		"switch4": "sw4",
		"switch5": "sw5",
		"switch6": "sw6",
		"sw_1": "sw1",
		"sw_2": "sw2",
		"sw_3": "sw3",
		"sw_4": "sw4",
		"sw_5": "sw5",
		"sw_6": "sw6",

		"kn1": "knob1",
		"kn2": "knob2",
		"kn3": "knob3",
		"kn4": "knob4",
		"kn5": "knob5",
		"kn6": "knob6",
		"kn_1": "knob1",
		"kn_2": "knob2",
		"kn_3": "knob3",
		"kn_4": "knob4",
		"kn_5": "knob5",
		"kn_6": "knob6",
	}
}

1 Like

I had such a tough time with the JSON for the Terrarium when I started with Oopsy. Here’s the simple one I’ve been working with for a while.

{
  "name": "pttl",
  "som": "seed",
  "defines": {
      "OOPSY_TARGET_HAS_MIDI_INPUT": 0
  },
  "audio": {
      "channels": 1
  },
  "components": {
      "sw1": {
          "component": "Switch",
          "pin": 8
      },
      "sw2": {
          "component": "Switch",
          "pin": 9
      },
      "sw3": {
          "component": "Switch",
          "pin": 10
      },
      "sw4": {
          "component": "Switch",
          "pin": 13
      },      
      "sw5": {
          "component": "Switch",
          "pin": 25
      },
      "sw6": {
          "component": "Switch",
          "pin": 26
      },      
      "sw7": {
          "component": "Switch",
          "pin": 7
},
      "knob1": {
        "component": "AnalogControl",
        "pin": 16
      },
      "knob2": {
        "component": "AnalogControl",
        "pin": 19
      },
      "knob3": {
        "component": "AnalogControl",
        "pin": 17
      },
      "knob4": {
        "component": "AnalogControl",
        "pin": 20
      },
      "knob5": {
        "component": "AnalogControl",
        "pin": 18
      },
      "knob6": {
        "component": "AnalogControl",
        "pin": 21
      },
        "led1": {
          "component": "Led",
          "pin": 22
        },
        "led2": {
          "component": "Led",
          "pin": 23
        }
      },
      "aliases": {
        "switch": "sw1",
        "switch1": "sw1",
        "switch2": "sw2",
        "switch3": "sw3",
        "switch4": "sw4",
        "switch5": "sw5",
        "switch6": "sw6",
        "switch7": "sw7",
        "encswitch": "encoder_rise",
        "enp": "encoder_press",
        "press": "encoder_press",
        "knob": "knob1",
        "ctrl": "knob1",
        "ctrl1": "knob1",
        "ctrl2": "knob2",
        "ctrl3": "knob3",
        "ctrl4": "knob4",
        "ctrl5": "knob5",
        "ctrl6": "knob6"
  }
}

After that, just learning or tweaking the component’s (switch and knob) reference names was the next step. Hope this helps!

2 Likes

Looks like you have the “som” written as “terrarium”. Maybe try changing that to “seed” and seeing if you can get it to compile.

It’s also worth noting that your pin assignments as written are incorrect. It’s confusing, but your definitions for pins need to correspond with the GPIO pin # of the Daisy Seed, not the physical pin (1-40) of the device. For example; your “knob1” control is mapped to pin 23 but should read pin 17. Physical pin 23 corresponds to GPIO Pin 17.

Hopefully this makes it clear what I’m referring to!

3 Likes

Ahhhhh derrrrr
/facepalm
I think I even knew that once
Thank you both, no doubt I can get it going now

Is the JSON format the same for oopsy and pd2daisy?

I just noticed, this .json file lists 7 switches. Terrarium has only 6, no?

Hey, you’re right. I did a lot of fumbling with the JSON at the beginning, leaving some unnecessary artifacts I guess… Thanks.

any solution to this? I am trying to use this json:

{
  "name": "terrarium",
  "som": "seed",
  },
  "audio": {
      "channels": 1
  },
  "components": {
      "sw1": {
          "component": "Switch",
          "pin": 8
      },
      "sw2": {
          "component": "Switch",
          "pin": 9
      },
      "sw3": {
          "component": "Switch",
          "pin": 10
      },
      "sw4": {
          "component": "Switch",
          "pin": 13
      },      
      "sw5": {
          "component": "Switch",
          "pin": 25
      },
      "sw6": {
          "component": "Switch",
          "pin": 26
      },      
      "sw7": {
          "component": "Switch",
          "pin": 7
},
      "knob1": {
        "component": "AnalogControl",
        "pin": 16
      },
      "knob2": {
        "component": "AnalogControl",
        "pin": 19
      },
      "knob3": {
        "component": "AnalogControl",
        "pin": 17
      },
      "knob4": {
        "component": "AnalogControl",
        "pin": 20
      },
      "knob5": {
        "component": "AnalogControl",
        "pin": 18
      },
      "knob6": {
        "component": "AnalogControl",
        "pin": 21
      },
        "led1": {
          "component": "Led",
          "pin": 22
        },
        "led2": {
          "component": "Led",
          "pin": 23
        }
      },
      "aliases": {
        "switch": "sw1",
        "switch1": "sw1",
        "switch2": "sw2",
        "switch3": "sw3",
        "switch4": "sw4",
        "switch5": "sw5",
        "switch6": "sw6",
        "switch7": "sw7",
        "encswitch": "encoder_rise",
        "enp": "encoder_press",
        "press": "encoder_press",
        "knob": "knob1",
        "ctrl": "knob1",
        "ctrl1": "knob1",
        "ctrl2": "knob2",
        "ctrl3": "knob3",
        "ctrl4": "knob4",
        "ctrl5": "knob5",
        "ctrl6": "knob6"
  }
}

but I get an an “eror in the compiler” message.

Oopsy works with the standard templates from the menu just fine. But Max console says I have to declare which hardware I’m using, which it doesn’t say when I use “Patch” or Petal" from the menu, or any of the other options.

Here’s the message I’m getting:

oopsy-verbose: "oopsy compiler error"
oopsy-verbose: "Error: Command failed: export PATH=$PATH:/opt/homebrew/bin && make clean && make"
oopsy-verbose: "In file included from oopsy_terrarium_oopsy_terrarium.cpp:26:"
oopsy-verbose: "../genlib_daisy.h:151:3: error: 'Daisy' does not name a type; did you mean 'daisy'?"
oopsy-verbose: "  151 |   Daisy hardware;"
oopsy-verbose: "      |   ^~~~~"
oopsy-verbose: "      |   daisy"
oopsy-verbose: "../genlib_daisy.h:155:34: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  155 |   daisy::DaisySeed *sub_board = &hardware.seed;"
oopsy-verbose: "      |                                  ^~~~~~~~"
oopsy-verbose: "../genlib_daisy.h: In member function 'void oopsy::GenDaisy::reset(A&)':"
oopsy-verbose: "../genlib_daisy.h:432:4: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  432 |    hardware.menu_rotate = 0;"
oopsy-verbose: "      |    ^~~~~~~~"
oopsy-verbose: "In file included from oopsy_terrarium_oopsy_terrarium.cpp:26:"
oopsy-verbose: "../genlib_daisy.h: In member function 'void oopsy::GenDaisy::audio_preperform(size_t)':"
oopsy-verbose: "../genlib_daisy.h:863:4: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  863 |    hardware.ProcessAllControls();"
oopsy-verbose: "      |    ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In member function 'void App_oopsy_terrarium::init(oopsy::GenDaisy&)':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:58:45: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "   58 |   daisy.gen = oopsy_terrarium::create(daisy.hardware.seed.AudioSampleRate(), daisy.hardware.seed.AudioBlockSize());"
oopsy-verbose: "      |                                             ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:58:84: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "   58 |   daisy.gen = oopsy_terrarium::create(daisy.hardware.seed.AudioSampleRate(), daisy.hardware.seed.AudioBlockSize());"
oopsy-verbose: "      |                                                                                    ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In member function 'void App_oopsy_terrarium::audioCallback(oopsy::GenDaisy&, daisy::AudioHandle::InputBuffer, daisy::AudioHandle::OutputBuffer, size_t)':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:84:3: error: 'Daisy' was not declared in this scope; did you mean 'daisy'?"
oopsy-verbose: "   84 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |   ^~~~~"
oopsy-verbose: "      |   daisy"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:84:10: error: 'hardware' was not declared in this scope; did you mean 'hardware_ins'?"
oopsy-verbose: "   84 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |          ^~~~~~~~"
oopsy-verbose: "      |          hardware_ins"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:84:27: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "   84 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |                           ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In member function 'void App_oopsy_terrarium::mainloopCallback(oopsy::GenDaisy&, uint32_t, uint32_t)':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:130:3: error: 'Daisy' was not declared in this scope; did you mean 'daisy'?"
oopsy-verbose: "  130 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |   ^~~~~"
oopsy-verbose: "      |   daisy"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:130:10: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  130 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |          ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:130:27: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  130 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |                           ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In member function 'void App_oopsy_terrarium::displayCallback(oopsy::GenDaisy&, uint32_t, uint32_t)':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:139:3: error: 'Daisy' was not declared in this scope; did you mean 'daisy'?"
oopsy-verbose: "  139 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |   ^~~~~"
oopsy-verbose: "      |   daisy"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:139:10: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  139 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |          ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:139:27: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  139 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |                           ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In function 'int main()':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:163:16: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  163 |   oopsy::daisy.hardware.Init(1);"
oopsy-verbose: "      |                ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:165:15: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  165 |  oopsy::daisy.hardware.SetAudioSampleRate(daisy::SaiHandle::Config::SampleRate::SAI_48KHZ);"
oopsy-verbose: "      |               ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:166:15: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  166 |  oopsy::daisy.hardware.SetAudioBlockSize(48);"
oopsy-verbose: "      |               ^~~~~~~~"
oopsy-verbose: "make: *** [build/oopsy_terrarium_oopsy_terrarium.o] Error 1"
oopsy-verbose: 
oopsy-verbose: "    at ChildProcess.exithandler (node:child_process:422:12)"
oopsy-verbose: "    at ChildProcess.emit (node:events:514:28)"
oopsy-verbose: "    at maybeClose (node:internal/child_process:1105:16)"
oopsy-verbose: "    at Socket.<anonymous> (node:internal/child_process:457:11)"
oopsy-verbose: "    at Socket.emit (node:events:514:28)"
oopsy-verbose: "    at Pipe.<anonymous> (node:net:337:12) {"
oopsy-verbose: "  code: 2,"
oopsy-verbose: "  killed: false,"
oopsy-verbose: "  signal: null,"
oopsy-verbose: "  cmd: 'export PATH=$PATH:/opt/homebrew/bin && make clean && make'"
oopsy-verbose: }
oopsy-verbose: "In file included from oopsy_terrarium_oopsy_terrarium.cpp:26:"
oopsy-verbose: "../genlib_daisy.h:151:3: error: 'Daisy' does not name a type; did you mean 'daisy'?"
oopsy-verbose: "  151 |   Daisy hardware;"
oopsy-verbose: "      |   ^~~~~"
oopsy-verbose: "      |   daisy"
oopsy-verbose: "../genlib_daisy.h:155:34: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  155 |   daisy::DaisySeed *sub_board = &hardware.seed;"
oopsy-verbose: "      |                                  ^~~~~~~~"
oopsy-verbose: "../genlib_daisy.h: In member function 'void oopsy::GenDaisy::reset(A&)':"
oopsy-verbose: "../genlib_daisy.h:432:4: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  432 |    hardware.menu_rotate = 0;"
oopsy-verbose: "      |    ^~~~~~~~"
oopsy-verbose: "In file included from oopsy_terrarium_oopsy_terrarium.cpp:26:"
oopsy-verbose: "../genlib_daisy.h: In member function 'void oopsy::GenDaisy::audio_preperform(size_t)':"
oopsy-verbose: "../genlib_daisy.h:863:4: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  863 |    hardware.ProcessAllControls();"
oopsy-verbose: "      |    ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In member function 'void App_oopsy_terrarium::init(oopsy::GenDaisy&)':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:58:45: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "   58 |   daisy.gen = oopsy_terrarium::create(daisy.hardware.seed.AudioSampleRate(), daisy.hardware.seed.AudioBlockSize());"
oopsy-verbose: "      |                                             ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:58:84: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "   58 |   daisy.gen = oopsy_terrarium::create(daisy.hardware.seed.AudioSampleRate(), daisy.hardware.seed.AudioBlockSize());"
oopsy-verbose: "      |                                                                                    ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In member function 'void App_oopsy_terrarium::audioCallback(oopsy::GenDaisy&, daisy::AudioHandle::InputBuffer, daisy::AudioHandle::OutputBuffer, size_t)':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:84:3: error: 'Daisy' was not declared in this scope; did you mean 'daisy'?"
oopsy-verbose: "   84 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |   ^~~~~"
oopsy-verbose: "      |   daisy"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:84:10: error: 'hardware' was not declared in this scope; did you mean 'hardware_ins'?"
oopsy-verbose: "   84 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |          ^~~~~~~~"
oopsy-verbose: "      |          hardware_ins"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:84:27: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "   84 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |                           ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In member function 'void App_oopsy_terrarium::mainloopCallback(oopsy::GenDaisy&, uint32_t, uint32_t)':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:130:3: error: 'Daisy' was not declared in this scope; did you mean 'daisy'?"
oopsy-verbose: "  130 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |   ^~~~~"
oopsy-verbose: "      |   daisy"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:130:10: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  130 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |          ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:130:27: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  130 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |                           ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In member function 'void App_oopsy_terrarium::displayCallback(oopsy::GenDaisy&, uint32_t, uint32_t)':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:139:3: error: 'Daisy' was not declared in this scope; did you mean 'daisy'?"
oopsy-verbose: "  139 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |   ^~~~~"
oopsy-verbose: "      |   daisy"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:139:10: error: 'hardware' was not declared in this scope"
oopsy-verbose: "  139 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |          ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:139:27: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  139 |   Daisy& hardware = daisy.hardware;"
oopsy-verbose: "      |                           ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp: In function 'int main()':"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:163:16: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  163 |   oopsy::daisy.hardware.Init(1);"
oopsy-verbose: "      |                ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:165:15: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  165 |  oopsy::daisy.hardware.SetAudioSampleRate(daisy::SaiHandle::Config::SampleRate::SAI_48KHZ);"
oopsy-verbose: "      |               ^~~~~~~~"
oopsy-verbose: "oopsy_terrarium_oopsy_terrarium.cpp:166:15: error: 'struct oopsy::GenDaisy' has no member named 'hardware'"
oopsy-verbose: "  166 |  oopsy::daisy.hardware.SetAudioBlockSize(48);"
oopsy-verbose: "      |               ^~~~~~~~"
oopsy-verbose: "make: *** [build/oopsy_terrarium_oopsy_terrarium.o] Error 1"
oopsy-verbose: 
oopsy-verbose: "compiler error"

@Takumi_Ogata do you perhaps have an idea what’s going on?

You have too many brackets:

1 Like

The JSON file included in the plugdata toolchain should (theoretically) also work for oopsy: plugdata-heavy-toolchain/resources/terrarium.json at main · plugdata-team/plugdata-heavy-toolchain · GitHub

It seems that you have an additional switch configured on pin 13 though.

thanks for helping me out.

Plugdata and Oopsy seem to work slightly different. For some reason the footswitches need to be switch 5 and 6. The led pins also need to be specified. For future reference for anyone else struggling with this, this is the json for Oopsy and terrarium:

{
  "name": "terrarium",
  "som": "seed",
	"defines": {},
  
  "components": {
      "sw1": {
          "component": "Switch",
          "pin": 10
      },
      "sw2": {
          "component": "Switch",
          "pin": 9
      },
      "sw3": {
          "component": "Switch",
          "pin": 8
      },
      "sw4": {
          "component": "Switch",
          "pin": 7
      },      
      "sw5": {
          "component": "Switch",
          "pin": 25
      },
      "sw6": {
          "component": "Switch",
          "pin": 26
},
      "knob1": {
        "component": "AnalogControl",
        "pin": 16
      },
      "knob2": {
        "component": "AnalogControl",
        "pin": 17
      },
      "knob3": {
        "component": "AnalogControl",
        "pin": 18
      },
      "knob4": {
        "component": "AnalogControl",
        "pin": 19
      },
      "knob5": {
        "component": "AnalogControl",
        "pin": 20
      },
      "knob6": {
        "component": "AnalogControl",
        "pin": 21
      },
        "led1": {
          "component": "Led",
          "pin": 22
        },
        "led2": {
          "component": "Led",
          "pin": 23
        }
      },
      "aliases": {
        "switch": "sw1",
        "switch1": "sw1",
        "switch2": "sw2",
        "switch3": "sw3",
        "switch4": "sw4",
        "footswitch1": "sw5",
        "footswitch2": "sw6",
        "knob": "knob1",
        "ctrl": "knob1",
        "ctrl1": "knob1",
        "ctrl2": "knob2",
        "ctrl3": "knob3",
        "ctrl4": "knob4",
        "ctrl5": "knob5",
        "ctrl6": "knob6"
  }
}


That’s just the name you have to use inside the patch. Use whatever name is configured in the json :slight_smile:

I tried naming them fs1 and fs2, as aliases, but when Info that they stop working for some reason. Very strange. But I decided not to waste more time now that it’s working as it should. Cost me enough time already :slight_smile:
Anyway, thanks for the help!

1 Like