Ableton


#1

Hi All,

 

I’ve searched the forum to find some useful information regarding the issue

I have discovered in Ableton (MAC). Lots of post about Ableton but

I couldn’t find something related to what I’ve seen.

 

I am on latest juce and MAC OSX 10.9.

My plugin works very well in Cubase (Win/MAC), Reaper (Win/MAC) and

Ableton (Win) but not in Ableton on MAC. Here it seems that something

goes strange with the message thread or whatsoever as soon as the UI of my plugin

is opened.  Then, the UI update of Ableton and my plugin slow down (slow meters etc.)

and the UI get quite unresponsive. But I don’t have seen impact to the playback. No stuttering

so far. I’va also noticed the mouse enter/exit messages getting eaten by Ableton somehow

(My plugin makes heavy use of those messages to display user informations in the status bar

if the mouse is over an object). In fact, the plugin is actually unusable in Ableton on MAC!

 

Then I tested the juce demo plugin and noticed even here an impact to the UI responsiveness

 if the plugin UI is opened. It is easy to repeat. In Ableton you have this little box in a Midi track

where you can assign 2 automation parameter, one to the x-axis and one to the y-axis. Then

you are able to control the 2 parameter with the mouse (picture attached).

If you then close the plugin UI and move that little point using the mouse, everything goes

very smooth but if you do this having the plugin UI opened, then you should see that the movement

of that point starts stuttering.

 

Indeed, the first thing I suspected was my plugin but I am slightly start to assume that

there is rather a general issue with the message thread in Ableton. I really follow the instructions

here to avoid ANY blocking of real-time threads, everything important in my plugin is async!

 

As I am NOT an advance programmer, I relay would like to get help what I should start looking

at first.  Profiling is difficult for me to understand and interpret the results.

 

But there might be some secrets I should follow to have my plugin running smoothly in Ableton

on MAC?

 

Did anybody see this issue and may could help?

 

Thanks

Joerg


#2

What I can tell so far is that not all mouse messages are going thru, even not in

the demo plugin. MouseMove messages for example only get called if I click the component first.

May that helps to track it down further.

 

Joerg 


#3

Okay,  further investigation just pointed even further to a threading issue in Ableton because other,  non-juce plugins also

cause the Ableton UI to slow down. So there is nothing I could do, I am afraid :-(

 

But the mouse issue still remains.

 

Did somebody make a fic for that?


#4

Hello - I've not noticed a slow down in ableton before. So I suspect there might be something in your code which can be fixed to improve it?  If you can't figure it out, try dropping the profiler from Xcode on your code to see what's chewing the CPU (see http://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode). 

However the mouse problem is interesting.  Does it occur with the AudioUnit version in Ableton or just the VST?  I've got all kinds of weird mouse handling problems with VST in Ableton which don't occur anywhere else...

I have a ticket open with their technical support team.


#5

Hi bazrush,

thanks for your reply!
 

So I suspect there might be something in your code which can be fixed to improve it?

Well, I don't know how much time I spent to optimize things (probably 14 days in full :-)) accourding

the hints from the forum. Since I see the same issue with other plugins and even the juce demo plugin

and the fact that my plugin run very smooth in Cubase and Reaper I do not doubt my code anymore.

 

Regarding the mouse messages. Yep, same in AU.

Please let us know the outcome with the ticket you have running with Ableton.

In the meantime, feel free and add mouseMove callback to the juce plugin editor. and test

whether it gets called if you move the mouse over the editor component. I did and

only get it called if I click the component.

 

Joerg

 


#6

Ableton (AU): I only get the mouse move event if I have focus on the plugin.  But I don't have to click once I have focus. 

Ableton (VST): I get mouse events whether or not the plugin has focus. 

AU Lab: I get mouse events whether or not the plugin has focus. 


#7

These are my results (sorry made a mistake with AU)

Ableton 9.1.2  64Bit

AULab 2.3

 

bazrush -> Ableton (AU): I only get the mouse move event if I have focus on the plugin.  But I don't have to click once I have focus. 

Joerg -> Juce Demo Plugin: Same here...

Joerg -> My plugin: Same here...

---------------------------------------------------------------------------

Ableton (VST): I get mouse events whether or not the plugin has focus. 

Joerg -> Juce Demo Plugin: No mouse events, neither with focus, nor without

Joerg -> plugin: No mouse events, neither with focus, nor without

---------------------------------------------------------------------------

bazrush -> AU Lab: I get mouse events whether or not the plugin has focus. 

Joerg -> Juce Demo Plugin: Only with focus

Joerg -> My plugin: Only with focus


#8

I'll leave the mouse issue for now because it seems to work in the AudioUnit

version of my plugin nut I am no trying to isolate the repaint problem again

and really I have done everything possible suggested in the forum in regards

to repaint issues on MAC OSX.  One thing I've noticed is that my rotary slider

still cause its parent to redraw, even if I setOpaque(true)!!! To my knowledge

that should not happen if this flag is set, but it does. The parent repaint also

happens if I use a standard juce widget like a TextButton and make this opaque.

 

So my question is: Is there any other flag or circumstance that could cause

the parent window to redraw,  if I set the overlaying (but not fully covering)

widget (Rotary) its Opaque flag to true?

 

Thanks in advance!

Joerg

 

 


#9

Found it. The parent had a left-over from my attempts to optimise drawing - setPaintingIsUnclipped(true)!


#10

However the mouse problem is interesting.  Does it occur with the AudioUnit version in Ableton or just the VST?  I've got all kinds of weird mouse handling problems with VST in Ableton which don't occur anywhere else...

I confirm, I've the same problem: in Ableton + VST. Mouseovers on buttons are not drawn unless I do make a mouse event such as click or scroll. Everything is working well on the AU version one (ableton or AU Lab)