Kyral

This story has a soundtrack – as you read, the music changes.

Press to start.

Make sure your phone isn't in silent mode.

Kyra pulled off her headphones and dumped them onto her desk. She rubbed her eyes then tried to focus on the room around her. It was dark. It was… some time in the night. Thank goodness she wasn’t on shift tomorrow… today… whatever. The glow from her screen still burned into her eyes so all she saw as she looked around was a black-green haze. She picked up her oversized mug and tried to take a mouthful of cold coffee before coming to the disappointing discovery that it was empty. Optimistically, Kyra tipped it upside down until a single drop landed on her tongue then she glanced back at the confirmation dialog on her screen. Release or cancel?

She spun half way round in her chair, hoping to get some of her sight back. Her rollercat appeared from under her bed, its digital eyes dim red in night mode.

The rollercat was about 10 years old and well overdue for an upgrade but Kyra had become attached to it so had just kept upgrading the firmware. It was a ball suspended in fluid inside another ball. However you turned it, the face stayed upright. Inside the inner ball was a tiny computer, a small screen, a motor and a weight. To move around, the motor moved the weight, the ball rolled, the insides stayed upright. It was simple but it was cute. It liked to think it was deadly.

Rollercat purred inquisitively as it rolled over to her and bumped against her bare toes.

“Hey, kitty. Any messages?”

The quiet ‘dunk’ noise told her there weren’t. The rollercat’s face looked open as it tried to read her expression about whether no messages was a good thing or a bad thing. Seeing the corner of Kyra’s mouth curl up ever-so-slightly in the darkness, rollercat smiled contentedly then rolled back and forth along the side of Kyra’s foot.

Kyra had just spent somewhere between 6 and 12 hours (she couldn’t be sure) putting the final touches on her new project. She’d been working on it every night for the last month. Maybe 2 months. Wait, was it winter yet?

She had just completed a new compiler that matched the interface of The Pool. From the outside, it worked like every other Piece but inside it contained what she hoped would be a completely new method of compilation.

Kyra stood up and, barely looking at the screen, tapped ‘release’ before making the gesture to switch off her screen. Although she had become accustomed to the half-light of her room, she was now in complete darkness and, once again, couldn’t see a damned thing. Moving by memory, she deftly stepped over a pile of books, side-stepped a bicycle wheel and felt gingerly for the ceramic of the sink before hitting her knee on it. She brushed her teeth in darkness then collapsed back onto her bed. Rollercat disappeared under the bed once more and the pale red glow of its eyes faded.

She was exhausted but her brain was still twitching with ideas. Should she have waited? Had she made a mistake? Was this a stupid idea?

She tried to marshal her thoughts into place by letting her mind go back to the beginning. The Pool.


the-pool

It all started from advances in software engineering. The realisation that music creation was a form of declarative programming. You specify what the outcome should be and the instrument renders it without you digging into the details of exactly how it gets there. Much the same way that mathematical problems found in algebra can be restated in geometric terms to provide greater insight and flexibility, tools and techniques from software engineering were applied to music composition and produced new and interesting solutions, new musical forms.

Of course, the flow went two ways. Once there was a clear relationship between the domains, people began applying musical techniques and solutions to software problems. This led to the development of ‘Intention-Based Programming’ or IBP. Beyond simply declaring the desired state, music could be written that conveyed a specific intention with the actual notes being left up to the player. A representative proof-of-concept compiler was developed that mapped this back into the software domain and it became possible to develop programs simply by stating an intention and leaving the details up to the compilers.

It was around this time that the first form of ‘The Pool’ developed. Musicians have always been inspired by other musicians and software developers have always tried to build on top of the work of others – why build something when you can copy-paste it? This led to the combination of algorithms and musical forms to create new pieces. Soon, there were online spaces where algorithms could be mixed freely and start to affect each other, start to produce hybrid algorithmic and musical works that combined the intentions of multiple developers into a single expression. These online spaces grew and merged. With the community coming together around the specification of the Algorhythmic Interface, all the individual online spaces for musical evolution became interlinked. The growth from then was exponential.

As pieces grew and mixed, they began to display emergent behaviour. Popular algorithms would be listened to more and become stronger, they would produce random variations which would go on to merge with other pieces. The resultant new pieces payed homage to their predecessors but grew into something different – sometimes better, sometimes worse.

Soon, people were able to load a combination of sources onto their players and listen to them as they evolved through the day then reconnect to The Pool to release the resultant mix. Traditional musicians and software developers still existed but popular algorithm creators became the new trend setters. They were briefly known as Algorhythmists in the press but were mostly referred to as “beaters” (who focused on rhythmic generation) and “beepers” who created the melodies and chord structures.

Due to the specification of the Algorhythmic Interface, every individual user could have their own interpretation of the music and the same piece could sound like anything from slow romantic strings to breakbeat to metal even though they were all driven by the same numbers and equations. There were also visualisers that interpreted aspects of an algorithm into shapes, colours and movement. There were so many ways to create and consume this new form of expression that in only a few years, it became the dominant way to enjoy music, especially as more and more publishers converted and released their back-catalogues with the “Plays in the Pool™” industry movement. Classics were re-engineered as algorithms and released into The Pool. New developments could then build upon the whole of human musical history.

Kyra started as a developer. In high school, she became fascinated with compilers. Particularly those compilers that are written in the language they are compiling, bootstrapped compilers that build on their own previous generations. After years of dabbling around the edges, Kyra got involved in a few open-source projects. Fixing issues here and there, optimising loops, updating docs.

She was in her first year at college when intention-based programming became a big thing. As soon as she heard of it, she started working on a brand-new compiler from scratch. She wanted to bootstrap it completely so she started at the very lowest level, individual machine instructions running on the bare metal of the computer. Every step of the way, she kept the design principles of IBP in the front of her mind so that she was quickly able to make huge leaps forward in the development. Every time she enabled a new type of intention, she could use that in the next iteration and let the compiler worry about the best way to make that happen. Within a few months, her public repository had gained some attention and by the time the Kyral compiler (yes, she’d named it after herself) hit v1, she was already kinda internet-famous. For a certain definition of famous. In very specialised circles.

The open licence she released it under combined with the fact that it was leaps and bounds better at understanding intention than any of the competitors made her compiler the go-to standard. Soon, nearly every piece of music software and IDE embedded Kyral. One of the largest music publishing companies in the world offered her an in-house position that would let her work full-time on Kyral v2 but she turned them down. Despite never charging anyone for the compiler, Kyra had a donation button on her website with the text “If you like this, feel free to buy me a coffee”.

The donations let Kyra do more than buy a coffee. A large number of musicians had made a large amount of money by building on top of the tool she created and they felt they owed her. She had allowed them to express themselves in a way they’d never been able to before. Before she graduated college (with an average-but-not-great grade), she had a decent stash. Not enough to retire on but enough to let her buy a coffee shop and the apartment upstairs to live in. She served coffee during the daytime and coded at night.

It wasn’t the super high-tech, neon fever-dream of a future she’d imagined growing up but it came with limitless supplies of coffee and, ultimately, wasn’t that the dream of every coder?

With a smile, Kyra turned over on her bed and gave way to sleep.


morning-after

The next morning (or maybe afternoon, Kyra really had to get a clock in here…) she woke and groggily stood up. She could hear rollercat bumping around in the hall.

“Kitty?” she yelled “Coffee!”

Probably the single feature that most caused Kyra to to develop an attachment to her rollercat was the fact that it could talk to her coffee machine. Caffenation was just a yell away.

By the time Kyra made it to the kitchen, the espresso was just being pulled and the milk steamed. She put on some toast, grabbed her mug and sat at the table.

“Ugh.” she thought, “Should not feel this rough the morning after without having a night before.”

Before the mug reached her lips, Kyras eyes shot open, a sudden dump of adrenaline into her body acting like a dozen shots of coffee. She released it last night!

“Kitty!”

Rollercat practically bounced into the kitchen, bumping a little over the lip round the kitchen door in its haste. It played an urgent noise and its face was an exclamation mark.

“Oh.” Kyra said to herself. Or possibly to Rollercat.


breakthrough

About a year ago, Kyra had had a thought. She’d been indulging in the other side of her favourite pastime. She was making music. For the first time in years, she was inspired by the music, not the code. The thing that had driven her through the long hours of late-night work on Kyral, the core, driving principle she kept coming back to was the music. She could make such expressive and fluid software because her compiler that created musical algorithms was written with musical algorithms. Every intention that compiled into sound was created by an aspect of the music itself.

Version 0.1 of the compiler started with the volume, the timbre, the voices. Nothing that a MIDI interface didn’t support. By version 0.1.3, she was able to bring in the notes played and the order they were played in. On through version 0.1.55, 0.138.5, 0.204.1, she incorporated the tempo, the chords, the progressions, the mood, the feel of a movement. Somewhere around v0.300.0, she was able to expand to interpret the intentions of a series of movements, whole symphonies or albums. Not long after that, she was able to compile motifs running through not just a series of works but a musician’s entire musical personality.

This is what had made the world pay attention to Kyra’s compiler. It was able to translate intention so clearly, so accurately. All because it was build in its own language.

When Kyra got back to music creation, she was also swept up in the direct translation between the code and the music, the music and the code. Creating an endless series of variations based on what she thought should happen.

But it wasn’t… it wasn’t enough.

There was still some disconnect. Some barrier between the metal and the music. Something that didn’t… feel right.

That was it. At the time the thought struck her, she’d been half-way across the coffee shop holding a tray of empty mugs. She just stopped. She didn’t move for a few minutes.

Something didn’t feel right.

It didn’t feel.

That was the missing connection. The barrier. She had created a perfect mapping between intention and expression but it wasn’t enough. You still had to know what you intended. You still had to have the clarity to formulate your end goal.

Kyra wanted to be able to translate her feelings into code. Into music. Into algorhythms. And Kyral wasn’t good enough.

down

The problem stemmed from the very first code she had written. The very core of v0.1. She’d been focusing on the intention. The bare metal code was too clean, too sharp, too far from the emotion of the creator.

Kyra knew what she had to do. She had to start again. She kept working every other day in the coffee shop but spent the rest of her time in the chair in front of her computer. She developed entirely new grammars and methods of parsing expressive syntaxes. She defined a whole new paradigm of Emotion-Based Programming. Properly expressed, a talented coder, mathematician or musician – they were all the same these days – should be able to drive their creation purely by their emotion. She restarted a dozen times, each time building afresh, bootstrapping layer upon layer only to find that the emerging compiler was still too far from what she needed. What she felt it had to be.

Three days ago she finished it.

Two days ago, she wrote her first loop with the newly finished compiler. It was simple but so expressive. Subtle. It hurt to hear it play back. The rise and fall of the progression, the growing, repeating structures layering on top of each other, the single thread throughout the entire piece that sang of loneliness, determination, hope, heartbreak. It was everything.

Yesterday, she wrapped it in an Algorhythmic Interface compatibility layer. The amount of expression lost by squeezing it into that wrapper was painful but she had to start somewhere. Maybe she could get the standard changed.

And last night she released it.


Kyra took a breath and looked down at rollercat. She picked it up and put it on the table.

“Kitty… any messages?“