Unexpected Successes

This morning, I confess, I was brought to tears. I was overcome with emotion. You may know I've been working on a side project called Choirless with some colleagues at IBM. This has been a project as part of Call for Code, a competition for ideas for solutions to some of the big problems in the world. The past few years is has been related to climate change, but this year they included a COVID-19 track. So we started Choirless as a project to help deal with lockdown and isolation. To allow choirs and bands to sing and perform even when remote. More on the background of Choirless can be found in the video submission we did for the competition.

So what happened this morning?

Rewind a bit, we were contacted by an IBMer in Canada, Darryl, asking to test out Choirless. So we invited him onto the platform to have a play. He recorded a whole bunch of parts on various instruments and him singing. I will confess, it didn't come out well. It was a mess. The system couldn't synchronise his parts, the volumes were all over the place. There were too many instruments, and Darryl's first attempts were as you'd expect for someone's first attempts at using a (in development) tool. But he persisted and kept recording, re-recording, playing about with it.

We got some great feedback from him, and we have been working together since. He simplified and refined his pieces. And then sent out an email that, as far as I'm aware, went out to every IBM employee in Canada to join in! I will say, I was pretty anxious. We were (are!) still working on Choirless, and it still had a lot of rough edges. And whilst we had got it to work on a few tests, this was a whole new group of people... not having been a part of Call for Code, and arriving with fresh expectations.

The first few contributions we got. Again, were enthusiastic, but often missed the beat. They were certainly stressing our system's ability to automatically synchronize people in time. That was mainly my responsibility. That was my algorithm, and one of the main raison d'ĂȘtres of Choirless. If it was failing here, how would it cope with a flood of more people coming in?!

Bit by bit we tweaked the system. Darryl and his colleagues have been fantastic at finding new ways to break the system. This is a good thing! This is why you want diversity in development team and testers. As different people will naturally use things in a different way, and break them in a different way. As an example, Darryl had encouraged people to participate even if they didn't want to sing... they could hold up signs with words on. People held up lyrics translated into their mother tongues, or stories about how they came to be in Canada. We had always assumed people would be singing, or playing. How do we synchronise the audio if there is no audio? The rendering pipeline failed when it encountered an uploaded video that has no audio as it was assumed there always would be audio (it's a tool for singers and musicians, right?!).

Another example, Choirless attempts to normalise the audio of each part to a 'standard' level first before merging it. This is to account for everyone having different setups, and some people being close to their microphone, some further away. But what if you are silent apart from the sound of rustling of paper you have written signs on? Well our system decides that that rustling is pretty quiet and should be made REALLY LOUD. Yeah. Oops. So we are having to build in what is called a 'gate' to lower the volume of background noises.

So why the emotional bit this morning? I woke up and hit reload on the screen with the latest rendering on it. And there were suddenly a bunch more people. This thing is growing. There were families with kids dancing, there were different instruments, there were people from different places, there were people's living rooms, studies, gardens. There was a woman there holding a series of signs saying :

Hello, my name is Dorje. I am from Bhutan. And I've made a second home for myself in Canada. I travel 6,570 miles each year to see my family in Bhutan. Unfortunately not this year! I only see this as an OPPORTUNITY. How? 1) Opportunity to show your responsibility as a human 2) To prioritize health 3) Most important it has taught me to value people. And this is me! :)

That was it... I broke down in tears. I've been focussing recently so much on the tech behind this. But the whole point of Choirless is to allow people to come together at this time. To sing. To play music...

And to tell stories.

That was something I'd missed completely. Stories. Allowing people to express themselves however they want. Sing. Play. Hold signs.

What I was looking at this morning, was not code. It was not serverless functions, and algorithms. It was not all the hard work that my teammates Sean and Glynn have been putting in. It was creativity. It was people using a tool how they wanted. Regardless of what my original (limited) ideas of how it would be used. The most amazing feeling in the world and why I love building things.

And it was beautiful.

https://cinnamon.video/watch?v=396868115322898134

Thank you to everyone who has contributed. Thank you to Darryl for organising it, and giving us such fantastic feedback as we developed it.

And the best bit.

Tomorrow I will reload the page and there will be even more :)