🔥 Lifetime deal! Get Control Surface Studio for Just £63 👉 Click Here To Get It
Time left... mailtimers.com
⚠️ Lifetime licenses are ending soon, get yours before they're gone ⚠️
Your shopping cart is empty.

Bulk Move/Edit/Delete/Modify controls

Submitted by qbrd on Tue, 09/15/2020 - 00:10
Control Surface Studio User


I have 9 columns and 9 rows of buttons. I built everything too low, and had to move everything one at a time... It would be really nice if there was a way to "select all" and drag them to the right place. Or, be able to add a volume control to each track mapping.

Also a way to renumber objects... The order they were created isn't exactly the order that they're in... So it'd be nice to highlight a row and go "these are 1-8"


Topic Category: 

4 Responses


Control Surface Studio User

Not atm (that I know of)
The easiest thing is to just copy the top value and paste in each box...much easier than manually moving

Control Surface Studio User

Yea, marginally less tedious, but still just as time consuming.

I thought I had tagged it "Feature request"...

Control Surface Studio User

Cool, I wrote a quick script to rip through the JSON and update everything and rewrite the index of the nodes.

const fs = require('fs')
var index = 100
var parent = {}

const inputFile = process.argv.slice(2).shift()
const controller = JSON.parse(fs.readFileSync(inputFile).toString())
const outputFile = `${inputFile.replace(/\.[^/.]+$/, "")}-out.json`

const new_controller = controller.map(item => {
// return the first two items of the array
if (item.id <= 1) {
return item

// increment update our index and keep a map of old indicies
old_id = item.id
item.id = index++
parent[old_id] = item.id

if(item.type.type == 'Endless Encoder') {
item.name = `${item.MIDI_value}.${item.MIDI_channel} - Endless Encoder`
else if (item.type.type == 'Knob') {
item.name = `${item.MIDI_value}.${item.MIDI_channel} - Knob`
else if (item.type.type == 'Pad') {
item.name = `P${item.MIDI_value} - Pad`

if (item.level >= 1) {
item.parent_id = parent[item.parent_id]

return item

fs.writeFileSync(outputFile, JSON.stringify(new_controller, null, 2))

Forum Admin

I've changed the subject to feature request.