- Posts: 2
- Joined: Fri Mar 23, 2018 3:16 pm
- Real Name: Roy Revelt
Currently, the software like "ATEM Software Control" is closed source, very constrained and lacking in features. The best strategical move Blackmagic could make, would be to embrace JavaScript, recode the "ATEM Software Control" (and others) in JavaScript, on Electron, then put them on GitHub and open source them. This way, anybody on GitHub could request features, contribute code, improve things and generate the publicity and sales. At no cost for Blackmagicdesign.
For example, a de facto standard of computer screen recordings is 720p. But "ATEM Software Control" window doesn't fit onto a 720p window. Practically this means all webcast makers have to switch to 1080p just to edit ATEM settings. If this were Electron app, the solution would be easy - shuffle the CSS media queries, and job's done. Probably community contributors would do that for you (Blackmagicdesign), for free. But currently, I can't even report this issue to BMD easily. Not to mention BMD hassle coding it up on defunct programming languages currently being used.
Another example, why do we have to use buttons on ATEM switcher at all? They come from decades old, physical machines with buttons on them. But these days we can detect and show only the video layers with an active video signal, and let the user drag and drop them one on top of another. Again, easy to do on Electron app - you could have interface presets - all working within the boundaries of the existing SDK/API. Does copying physical interfaces follow the same disruptive spirit that enabled BMD to win against Sony and likes? I'd argue no. My ATEM buttons attest to that - I have two inputs that I want to stack one on top of another, yet I have to jump hoops and deal with eight buttons, 6 of which are doing nothing (because some are outputs actually). All BMD needs is a capable platform (like JS + Elector) and few UX geniuses.
Again another example. Currently "ATEM Software Control" doesn't have any keyboard mapping functionality (only number keys do switching and that's only when window is active). Ideally, any ATEM function on the UI should be freely assign-able to any keyboard combination - and most importantly - software should be able to pick up the key presses even when ATEM window is inactive. Again, easy to do with Electron app. On other hand, I don't even know how I should request such features from BMD, not to mention how long would it take them to produce, test and ship out separate versions for PC and Mac. But with Electron it's easy, you build only once.
In theory, we could even have the same "ATEM Software Control", coded in JS, served as an iOS/Android app, sharing 90% of the code with a desktop version. Again, not realistic with the current software model. Think about it - same responsive interface could contract to mobile size! Or iPad's.
One more example. I don't know about users out there, but I'm missing elementary features on "ATEM Software Control", like a stick-to-corner flying key. It's quite common to put the flying key in the corner, isn't it? I'd code it up myself and file a pull request if it was on GitHub. However, currently, I don't even know who to ask, not to mention to have a clear reassurance that it will be shipped some day. UI's should be infinitely configurable, flexible and new features should flow free and easy.
If you think about winners like Facebook, they gained so much from open-sourcing React upon which they're built. Now, in Blackmagic case, position is even better! Your software is for your proprietary hardware, no competitors can make use of it. Even if they did, the "risk" of intellectual property "leaking" to competition in the future would be compensated in heaps by publicity gained from building active user community and shaking up the arcane video software development world. Active open source community would out deliver the value to final customer, and mostly that would cost nothing for BMD.
Blackmagicdesign is a disruptor, its true edge comes from the ecosystem - I buy switcher AND camera from BMD because they work together. Sony doesn't make switchers, so even if its camera were better, it worked with BMD switcher worse than BMD camera would. You're like Apple - customer buys a laptop, but they get access to the iTunes and their iPhone syncs without a hassle with "Notes" app. Samsung phone can be cheaper but it won't deliver the ecosystem's value. So, even in an unlikely scenario that some competitor would match their hardware to make it work with open source BMD software, they would not be capable of delivering the whole ecosystem of products. Not to mention they would not be able to catch up with our continuous releases.
If somebody would argue about the hassle of having to recode everything in JS, I'd say Blackmagicdesign is capable of delivering new features to its software weekly, not biennially. BMD could disrupt the whole UI and UX of video production software world! The old UI's based on hardware machines can exist, but it's just a matter of time somebody (like me) will reinvent them, this time, properly, with modern technologies, from scratch. Same with old programming languages, silo-ed bug reports and feature requests piped via internal emails.
It's not a question should BMD switch user-facing apps to open source or not. It's a question does it want to be actively influencing and being in front of the community on GitHub, because one already exists and people are coding missing features, right now. For example, I'm consuming mainly node-applest-atem from GitHub on my projects and I made a CLI app that listens to ATEM macro-invoking key strokes even when window is inactive in few evenings.
To me, everything looks simple, but maybe that's because I'm looking from the outside. My own company is based on disruptive JavaScript development, on delivering extra value to my clients and out-coding any competitors. But I can code up so little compared to what a whole department of developers can do with a full support. Blackmagicdesign can and should do better software-wise.
Hopefully, my message will reach the ears of influencers at Blackmagicdesign.
In the meantime, I'll be further hacking on my JavaScript app to stop timeouts when I control ATEM via the the USB pedals. And when it's ready, I'll surely publish it on GitHub .
For example, a de facto standard of computer screen recordings is 720p. But "ATEM Software Control" window doesn't fit onto a 720p window. Practically this means all webcast makers have to switch to 1080p just to edit ATEM settings. If this were Electron app, the solution would be easy - shuffle the CSS media queries, and job's done. Probably community contributors would do that for you (Blackmagicdesign), for free. But currently, I can't even report this issue to BMD easily. Not to mention BMD hassle coding it up on defunct programming languages currently being used.
Another example, why do we have to use buttons on ATEM switcher at all? They come from decades old, physical machines with buttons on them. But these days we can detect and show only the video layers with an active video signal, and let the user drag and drop them one on top of another. Again, easy to do on Electron app - you could have interface presets - all working within the boundaries of the existing SDK/API. Does copying physical interfaces follow the same disruptive spirit that enabled BMD to win against Sony and likes? I'd argue no. My ATEM buttons attest to that - I have two inputs that I want to stack one on top of another, yet I have to jump hoops and deal with eight buttons, 6 of which are doing nothing (because some are outputs actually). All BMD needs is a capable platform (like JS + Elector) and few UX geniuses.
Again another example. Currently "ATEM Software Control" doesn't have any keyboard mapping functionality (only number keys do switching and that's only when window is active). Ideally, any ATEM function on the UI should be freely assign-able to any keyboard combination - and most importantly - software should be able to pick up the key presses even when ATEM window is inactive. Again, easy to do with Electron app. On other hand, I don't even know how I should request such features from BMD, not to mention how long would it take them to produce, test and ship out separate versions for PC and Mac. But with Electron it's easy, you build only once.
In theory, we could even have the same "ATEM Software Control", coded in JS, served as an iOS/Android app, sharing 90% of the code with a desktop version. Again, not realistic with the current software model. Think about it - same responsive interface could contract to mobile size! Or iPad's.
One more example. I don't know about users out there, but I'm missing elementary features on "ATEM Software Control", like a stick-to-corner flying key. It's quite common to put the flying key in the corner, isn't it? I'd code it up myself and file a pull request if it was on GitHub. However, currently, I don't even know who to ask, not to mention to have a clear reassurance that it will be shipped some day. UI's should be infinitely configurable, flexible and new features should flow free and easy.
If you think about winners like Facebook, they gained so much from open-sourcing React upon which they're built. Now, in Blackmagic case, position is even better! Your software is for your proprietary hardware, no competitors can make use of it. Even if they did, the "risk" of intellectual property "leaking" to competition in the future would be compensated in heaps by publicity gained from building active user community and shaking up the arcane video software development world. Active open source community would out deliver the value to final customer, and mostly that would cost nothing for BMD.
Blackmagicdesign is a disruptor, its true edge comes from the ecosystem - I buy switcher AND camera from BMD because they work together. Sony doesn't make switchers, so even if its camera were better, it worked with BMD switcher worse than BMD camera would. You're like Apple - customer buys a laptop, but they get access to the iTunes and their iPhone syncs without a hassle with "Notes" app. Samsung phone can be cheaper but it won't deliver the ecosystem's value. So, even in an unlikely scenario that some competitor would match their hardware to make it work with open source BMD software, they would not be capable of delivering the whole ecosystem of products. Not to mention they would not be able to catch up with our continuous releases.
If somebody would argue about the hassle of having to recode everything in JS, I'd say Blackmagicdesign is capable of delivering new features to its software weekly, not biennially. BMD could disrupt the whole UI and UX of video production software world! The old UI's based on hardware machines can exist, but it's just a matter of time somebody (like me) will reinvent them, this time, properly, with modern technologies, from scratch. Same with old programming languages, silo-ed bug reports and feature requests piped via internal emails.
It's not a question should BMD switch user-facing apps to open source or not. It's a question does it want to be actively influencing and being in front of the community on GitHub, because one already exists and people are coding missing features, right now. For example, I'm consuming mainly node-applest-atem from GitHub on my projects and I made a CLI app that listens to ATEM macro-invoking key strokes even when window is inactive in few evenings.
To me, everything looks simple, but maybe that's because I'm looking from the outside. My own company is based on disruptive JavaScript development, on delivering extra value to my clients and out-coding any competitors. But I can code up so little compared to what a whole department of developers can do with a full support. Blackmagicdesign can and should do better software-wise.
Hopefully, my message will reach the ears of influencers at Blackmagicdesign.
In the meantime, I'll be further hacking on my JavaScript app to stop timeouts when I control ATEM via the the USB pedals. And when it's ready, I'll surely publish it on GitHub .