AbleSet 3.0.0-beta.3

  • Added the ability to double-click faders in the mixer to reset them to 0 dB
  • Added a new /mixer/**/adjust OSC endpoint to adjust the volume of a group
    • 0.025 is equal to 1 dB, so /mixer/vox/adjust -0.025 would turn down the vox group by 1 dB
  • Added the ability to define a sections track using the +SECTIONS flag
  • Fixed canvas template descriptions and contents
  • Fixed canvas buttons double-firing on touch screens in some cases
  • Fixed the Ableton plugin not being recognized in Live 10

You can download this beta here:
Mac: https://ableset.app/download/mac/3.0.0-beta.3
Mac (ARM): https://ableset.app/download/mac-arm64/3.0.0-beta.3
Win: https://ableset.app/download/win/3.0.0-beta.3

1 Like

I’m trying to set up the volume adjust for groups but I cannot get it to work.
Is this right?



@agustinvolpe could you try writing the group name in lowercase? For example, /mixer/pista/adjust -0.025 should work.

I’ll make this case-insensitive in the next beta :slight_smile:

That was it!
Thanks Léo!

I feel like such a pain for even bringing this up :sweat_smile:, but would 0.5dB increments/decrements be doable? No worries if not, just thought I’d ask!

No worries! You should be able to just divide the value by two, so 0.0125 should be 0.5 dB :blush:

1 Like

Ahhh, that makes sense! Thanks, Léo.
Glad I asked before requesting something that was already possible :joy:.

1 Like

Finally, the update is here! Let me express my gratitude once again, genius Leo!

Now that we have so many features, would it be possible to make ‘Mixer’ MIDI mappable, as well as ‘Canvas,’ ‘Lyrics,’ and ‘Performance’?

Another idea—would it be possible to monitor the green status icon in real-time on the canvas, like floating window?

Additionally, would it be possible for the canvas to output MIDI notes?I would really love to use the canvas to trigger other applications, as it would open up more possibilities and use cases.

To help you better understand what I mean, I’ve attached some pictures below.
Thank u!Leo!


The mixer double-click works a treat, thanks Léo!

1 Like

Hey @GOODSHOW,

That’s already possible using the /devices/showPage OSC command (docs). For example, if you’d like to open the mixer view on all devices, you could send /devices/showPage all mixer.

You might already be able to build a basic button that displays the status of your audio interfaces and allows you to toggle between them, but adding the status indicator itself, that allows you to open the detail view of interfaces, is a good idea.

That’s something I’d love to see as well, and it’s already on my todo list. My plan is to offer OSC endpoints that allow you to send MIDI to any device. For example, sending a note could be triggered like this:

/midi/note "Output Port" 1 C3 127 100

With 1 being the channel, C3 being the note, 127 being the velocity, and 100 being an optional delay between the note on and note off commands in milliseconds.

In addition, sending CC and PC could also be interesting:

/midi/cc "Output Port" 1 64 100

With 1 being the channel, 64 being the CC number, and 100 being the CC value. For PC, this would be:

/midi/pc "Output Port" 1 15

With 1 being the channel, and 15 being the program number.

Does this sound good to you?

I’m looking forward to your feedback! :slight_smile:

2 Likes

Hey Leo Thank you for your patient responses!

This is amazing! I didn’t realize that Ableset had already implemented this feature!

However, I ran into some issues while setting it up. The command /devices/showPage [devices] [page] doesn’t seem to trigger correctly. I’ve attached some pictures below—did I set something up incorrectly?

I also have another question. On the same computer, my desktop displays both a floating window and a Safari browser. I’d like to use the iPhone canvas to trigger each of them separately. Is there a way to direct them to their corresponding destinations? (Other than using an IP address, since it changes frequently.)

Can you provide me with a reference setup? I am currently trying to achieve this using the settings shown in the photo below.

Sounds amazing! I’m sure I’m not the only one excited to use this feature!

Thank you, Leo—you’re the best!

2 Likes

Hi Leo, a little issue I’ve found with V3.0.0 beta 3 (but may have existed before) is that if you turn OFF the setting for AbleNet to ‘follow current audio interface scene’ on each device, it seems to revert to being switched ON after a re-start of Ableset. I want the instance of Ableset on each of my two computers to keep showing what Ableton on that particular computer is doing, (so I have switched off this setting), and I only want remote tablet displays to switch over from Main (the IP Address they are connected to) to Backup when the interface ‘scene’ switches over. The tablet switch over is working fine - but the floating-window instance of Ableset on the computers themselves aren’t re-loading with that setting switched off. I seem to remember this setting recalling correctly in the v2.8 betas, after you added the ability for each device to have their own setting for this parameter.

Another tiny issue - In this application, I have Ableset reduced down to the smallest window size it will allow - in a corner of the screen - as it is simply providing a mini preview of what the on-stage tablet is showing, without taking too much screen space away from the DAW. When I want to change a setting or switch display mode - I just click the ‘full screen’ button in the window header, make my change, then click it again to reduce the window back to it’s minimum size. With my test Canvas layout - which only has a Timecode Display and a Current Song Name display on it, I’ve found a little re-draw problem when going from full-screen to mini version. A left-over portion of a couple of digits from the Timecode Display stay visible - in their full-screen size - behind the correct-width timecode display. You can see it in this screen shot where it is drawing bits of a large “00” behind the fields that are supposed to be there, and they flicker on and off. This happens every time. The only way to clear this is to switch away from Canvas view, then go back to Canvas view.


note - it only happens if the Canvas is the active view when Ableset is full-screen, and the button is clicked to exit full-screen.

Hey @njrsound, thank you for reporting these issues!

I was able to reproduce the “follow scene” setting bug once, but after that I haven’t managed to reproduce it again. Could you try toggling the setting on and off a few times and check if that helps? Alternatively, could you try opening AbleSet in your browser and check if changes to the setting are properly persisted there?

I found a fix for the rendering issue when switching between full screen and window which will be released with the next beta version soon.

Please let me know if you have any further feedback in the meantime :slight_smile:

Hey @GOODSHOW,

If you’d like to address devices individually using OSC, you’d have to give them an OSC device name. For example, I’ve named AbleSet in my browser “macbook” here, which allows me to address this browser specifically:

You can address multiple devices by separating them with a comma, e.g.

/notify/toast macbook1,macbook2 "Test Notification"

The background color could be templated like this:

${osc("/audioInterfaces/all/scene") === 1 ? "green-700" : "red-600"}

The text could use the following template:

${osc("/audioInterfaces/all/scene") === 1 ? "Scene A" : "Scene B"}

And pressing the button would trigger the following OSC command:

/audioInterfaces/toggleScene

Would this work for your use case? :slight_smile:

1 Like

Hi Leo, I can confirm that the ‘follow scene’ setting works and recalls correctly across re-starts when Ableset is opened in a Browser on each computer - but only in the browser view. If you also open it in a floating window, that version still reverts to following the scene on both computers. It is still doing it to me every time - across multiple re-launches of Ableset. Getting the two computers to lock on to their own instance of Ableton is a bit time consuming, as you have to turn off follow scene setting on each computer, while the interface scene you want to be seeing on that computer is active - otherwise it gets stuck showing the wrong Ableton instance. Using a browser window on the playback computers really doesn’t work for me because the minimum size Chrome or Safari will let me make a window is significantly larger than the smallest I can make the floating window in Ableset. Also, I’m running quite a few applications, and rather not have a Browser running as well. Thanks for fixing the other little render issue as well!

Hey @njrsound,

It seems that the framework I’m using for building AbleSet has some issues with the way data is stored – at least, AbleSet isn’t the only app that experiences this behavior.

I’ll investigate this issue further and will get back to you once I find a solution.

Thank u Leo!You are amazing!

In the canvas, is there a way to use the OSC templating to create a dynamic “Song Name” label based on the song index in the setlist? Our sets are almost always five songs, but the songs change out every week. I want to create five buttons on the canvas for triggering those songs, with labels that list the song name. I could just create static labels and update them every week, but it would be nice if they updated automatically with the setlist changes. I might be missing it
 I see OSC for things like “current song” and “next song”, but it would be helpful to have “Song 1”, “Song 2”, etc.

Hey @JoshList,

the osc function accepts a 2nd parameter to return a specific item of a list based on its index, starting from 0.

So, if you wanted a label that contains the titles of the first five songs, you could use the following template:

${osc("/setlist/songs", 0) ?? "--"}
${osc("/setlist/songs", 1) ?? "--"}
${osc("/setlist/songs", 2) ?? "--"}
${osc("/setlist/songs", 3) ?? "--"}
${osc("/setlist/songs", 4) ?? "--"}

The ?? "--" is a fallback that displays -- when a given song doesn’t exist, either because the setlist hasn’t loaded yet or it’s shorter than 5 songs.

This parameter also accepts "all" as an option, which returns all items as an array. This is a bit more complex, but shorter:

${osc("/setlist/songs", "all")?.slice(0, 5).join("\n") ?? "--"}

This will display the first five songs of the setlist, or fewer if the setlist is shorter. If the setlist hasn’t loaded yet, it will just display --.

For reference, the functions in the templates are JavaScript, so you can use all functions available in JavaScript as well to process the OSC values.

For example, if you’d like to make all song titles uppercase, you could use the following:

${osc("/setlist/songs", "all")?.slice(0, 5).map(s => s.toUpperCase()).join("\n") ?? "--"}

Let me know if this works for you :slight_smile: