osara icon indicating copy to clipboard operation
osara copied to clipboard

Creating an OSARA build for Linux?

Open ethindp opened this issue 7 years ago • 12 comments

Hello guys, I'm curious if it would be possible to begin a project for OSARA to be used on Linux. As you guys no doubt know, Reaper has released experimental builds for Linux. The problem is that you don't get (so far as I know) OSARA and SWS&SM on there, so for the visually impaired, using Reaper in general would be a challenge. I'd be happy to contribute and get the ball rolling, as it were, but I haven't done very much Linux programming, so don't know the equivalent API calls. If someone could either get the project going or give me resources and help me out with the project, that would be great. While we won't have SWS&SM on Linux if this works, we'll at least have OSARA, which would be a huge step towards music production and audio editing with Reaper on Linux.

ethindp avatar Aug 06 '18 07:08 ethindp

I personally don't have time to even look into this, so unless someone else wants to do the research and implementation, this is unfortunately a won't fix.

REAPER (and OSARA) uses a Cockos library called SWELL to emulate Win32 GUI stuff on other platforms. I don't know what widgets that uses on Linux. If it uses widgets that already have accessibility (e.g. GTK 2), that hopefully means most REAPER and OSARA menus, dialogs, etc. will be accessible. I'd start by checking whether REAPER's menus and dialogs are accessible already. If they aren't, there's no point in even starting to port OSARA. You'd need to work with Cockos to get the GUI issues fixed first.

REAPER also uses some custom widgets (e.g. for faders), and WDL wingui (another Cockos library) provides specific accessibility support on both Windows and Mac. I'm not sure whether it provides accessibility support on Linux. If it doesn't, again, porting OSARA won't fix that; you'd need to work with Cockos to get that fixed.

You'll also need to write a Linux implementation of the OSARA code for reporting messages. I guess you might be able to manage this by implementing a live region using your own ATK accessible object or something.

I'm closing this as won't fix because I can't work on this and I very much doubt anyone else will kick it off either. If someone comes along and does decide to start real work on this, we can always reopen.

jcsteh avatar Aug 06 '18 22:08 jcsteh

I put some research into this as it sounds promising that you can run OSARA on a raspberry PI. It should also be possible to build a version of Swell based on GTK2.

LeonarddeR avatar Oct 31 '20 13:10 LeonarddeR

@jcsteh Would you be open to reopening this to investigate further? I"m currently hooking up a vm to test how it behaves by default, and will look into GTK2 if the default GTK3 setup fails.

LeonarddeR avatar Oct 31 '20 13:10 LeonarddeR

Ah never mind, I scrambled GTK with GDK. Furthermore, I tried both the default swell as well as a custom compiled GDK2 variant, without success. OCR shows me that the Reaper window is shown correctly, but Orca doesn't give a shout at all.

LeonarddeR avatar Oct 31 '20 14:10 LeonarddeR

While this currently can't be done because REAPER is completely inaccessible on Linux, I'm reopening this and giving this an appropriate label to point out that this requires work by Cockos.

LeonarddeR avatar May 25 '21 12:05 LeonarddeR

@leonardder, is this something you are planning to pursue with Cockos? If not, I think we should keep this closed as won't fix because I don't see anyone else coming along to work on it and I don't want to leave anyone with false hope that this will ever get any attention. We can always reopen if someone wants to pursue it.

jcsteh avatar May 26 '21 00:05 jcsteh

I'm really interested and motivated getting this to work myself.

If @ScottChesworth could use his contacts with Cockos to point out general Linux inaccessibility, that would be really helpful. In the meanwhile, there are still some experiments I'd like to take myself, such as trying to find out how accessibility is implemented in Swell for Mac, and how we could make a Swell based app accessible on Linux. If that can be done without too much efford, we can even recompile swell and plug that into a Cockos REAPER build, as they even suggest themselves.

LeonarddeR avatar May 26 '21 05:05 LeonarddeR

I'm really interested and motivated getting this to work myself.

Fair enough.

If @ScottChesworth could use his contacts with Cockos to point out general Linux inaccessibility, that would be really helpful.

IMO, for a request this big, it's going to take a lot of technical discussion to get it resolved and it doesn't make sense for someone to be an intermediary. Given your technical background and competence, I would just contact Cockos yourself via email ([email protected]). That's how I established contact with them and probably how Scott did also.

In the meanwhile, there are still some experiments I'd like to take myself, such as trying to find out how accessibility is implemented in Swell for Mac,

As I understand it, Swell emulates Win32 calls and translates them to native widgets on Mac. REAPER also uses custom virtwnd controls (see WDL/wingui), for which there are both Windows IAccessible and Mac a11y implementations.

jcsteh avatar May 26 '21 06:05 jcsteh

IMO, for a request this big, it's going to take a lot of technical discussion to get it resolved and it doesn't make sense for someone to be an intermediary.

Agreed. I don't know enough about the topic to lead that conversation.

I would just contact Cockos yourself via email

I'm happy to be CC'd in on that, can keep an eye on the conversation and nudge periodically to keep things moving along if that would be helpful. BTW @leonardder, when you make contact, mention "OSARA" in the subject line so they know who you roll with.

ScottChesworth avatar May 26 '21 09:05 ScottChesworth

I'm happy to be on CC as well if that is helpful. I can't promise participation, but I do know a little about the Linux a11y API at least from my work on Firefox, so I can potentially chip in if there's a question I can help answer.

jcsteh avatar May 26 '21 09:05 jcsteh

I contacted Cockos with some help from @ScottChesworth , and I"m happy to say that they're really open to add Linux accessibility to swell, though it's not yet explicitly on their roadmap and they don't really know where to start. As far as I've read, adding accessibility to something GTK4 based should be much easier than adding it to the older GTK versions, so I asked them whether there's anything like supporting GDK4/GTK+4 on their map yet.

LeonarddeR avatar Jun 15 '21 10:06 LeonarddeR

I was involved in a Twitter discussion with Justin from Cockos about this. Long story short: for various reasons, REAPER draws its own widgets on Linux rather than using mostly native widgets like it does on Windows and Mac. That means they'd have to implement ATK from scratch for the GUI. I did some digging and pointed them at some starting material for that, though.

jcsteh avatar Sep 02 '21 11:09 jcsteh