Introduction
Rend-o-matic is the core technology behind Choirless, a musical collaboration platform built to enter the
Call for Code 2020 global competition.
It allows music groups to create a video wall recording of a piece of music, where all of the
individual submissions are captured separately on the performers' phone, tablet or laptop.
Choirless came about during the 2020 Covid-19 Pandemic, as countries went into lockdown
and social-distancing prevented choirs, bands and other musical ensembles from meeting and
performing in person. Video meeting platforms such as Zoom and Webex proved useless for live
collaboration because of the network latency and the audio being optimised for speech.
Rend-o-matic aims to make it very easy for choir leaders to create songs made out of several parts
(e.g. alto, tenor, soprano) and to organise choir members to provide renditions of a part.
All of the contributed videos are stitched together into a video wall with no special
equipment and without employing costly and time-consuming video editing software.
Who are we?
The Rend-o-matic Crew consist of three members who met at IBM:
How does it work?
Rend-o-matic consists of a number of microservices working together:
Choirless components
- The Application Server powers the
Choirless front-end website. It is built with HTML and vanilla JavaScript and is deployed using
Cloud Foundry in the IBM Cloud
- The Choirless API is a RESTful API service
written in Node.js which stores its state in a Cloudant JSON document store.
Rend-o-matic components
- The Renderer is a collection of Python
and Node.js serverless actions that run in the IBM Cloud Functions framework. They are triggered
by objects arriving in Cloud Object Storage and from user-driven events. Each action performs a
specific audio/video processing job, such as resizing video or creating montages of multiple
video sources.
- Boxjam is a Node.js module that fits
many rectangles into another rectangle - useful if you're creating video montages of videos
that are of various sizes and orientations.
- Stitcheroo is a Node.js module that fits
many combines multiple videos sources into an output montage. It can also process the
audio tracks for stereo spread and reverberation ambience.
The Rendering Process
The Rendering service is a multi-step process, where each step is triggered by the arrival of an
object in a Cloud Object Storage bucket. Some actions are taken in parallel to speed up the process:
How can I try it?
Simpy visit
Choirless.com and sign up for an account. Or, check
out the
Rend-o-matic GitHub organisation to explore the
underlying engine that powers Choirless.
Open source
All of our source code is
open-sourced under the MIT
license on GitHub.
© 2021 Rend-o-matic Project a Series of LF Projects, LLC. Rend-o-matic is a Call for CodeĀ® with The
Linux Foundation project. Rend-o-matic is a trademark of LF Projects, LLC. For trademark usage guidelines, privacy
and cookie policies, and other applicable policies, as well as terms and conditions governing this web site,
please see
www.lfprojects.org