CHARLIE

is training his music brain to compose sequences. Move him around with the arrow keys and interact with Z and X. Open the pause menu with RETURN.

When he starts the machine for the first time, it will make a random sound or maybe nothing at all. To hear the sound of this brain again he can press the green PLAY button in the upper left. To reward the machine for playing something sort of musical, he can press the red LEARN button. This will modify the brain and a new sound will play, usually similar to the first but not always. If the new sound is still "musical," he can press LEARN again to get more creative. To save this brain to the cartdata, he can press the gray SAVE button. To randomly reset the brain's concept of music, he can press the blue RESET button.

If the brain is not making musical sounds, he can modify any node directly by moving on top of it, pushing the value up or down with the buttons. If he presses both buttons on a node, it will change randomly. The weights of the nodes and edges are represented by color patterns. The first column of nodes are input nodes associated with instruments, pitches, shapes, and volumes respectively. Modify them and press play to get a new sound from the machine using the current brain, without changing any connections. The middle columns are learning nodes. Modify them and press learn for chaotic, unpredictable behavior. The right column are output nodes mirroring the input nodes. Modify these and press learn to train the brain to produce those outputs when given the current inputs. (left column)

The brain is answering a simple question, "what note should come next?" The input (left) being the 'current' note and the output (right) being the next note. When Charlie presses play, the brain answers that question for what is currently on the left, producing an output. It takes that output, and puts it back in as input, and repeats to generate a sequence of notes. The sequence of notes that it has generated are visualized at the bottom of the screen and highlighted as they are played. If Charlie moves on top of it he can access a control to add and remove sequences.

Charlie has come to understand the relationship between time and music and has decided to control the sequence speed and length directly. He can do this by changing the values in the bottom right. The HEART value controls the speed (low for fast) and the two HOURGLASS controls set the loop start and end.  The SPIRAL value is a chaos control that affects the randomness of the brain's impulses.

Poking the Brain

The music brain is an enigma. Not even Charlie really understands it. He just puts notes in and notes come out. To the brain, a note is an INSTRUMENT, a PITCH, a SHAPE, and a VOLUME. The nodes ("neurons") that correspond with these inputs/outputs are marked with symbols when Charlie is next to them (cat, music note, face, star).

Let's say the brain is just making a lot of KSSHHH kind of noise. That's white noise which is an INSTRUMENT. So, Charlie would try changing the instrument input value, (left top node) just some random value and then he would press PLAY. This will generate a new sequence starting with a different instrument. Perhaps the brain got stuck in a feedback loop, and we just need to 'initialize' it differently. (note: around 0.875 maps to the white noise instrument; there are 8 pico8 instruments, white noise is 7/8.)

The brain is still just doing white noise, though. Charlie will need to train it. This time, changing both input and output nodes for the instrument  (top left, top right) and pressing LEARN instead of play. This performs backward propagation on the network and changes the weights of the connections (“synapses”). The weights are now adjusted to more closely generate the new outputs when given the current inputs. Afterwards, it regenerates the sequence and plays it. He can also change the center nodes and learn from them to really shake the brain up.

When training the brain, remember to check the chaos control. The brain may actually be much more tame than what's being played, as a result of the chaos in the system. Increasing chaos and learning those outputs is another way to get creative.

Don't be afraid to RESET the brain. You can always SAVE a brain you really like. (it won't save your sequences though!)

StatusReleased
PlatformsWindows, macOS, Linux, HTML5
Release date Apr 20, 2018
Rating
Rated 4.0 out of 5 stars
(2 total ratings)
Authornotb
GenreRhythm, Puzzle
Made withPICO-8
Tags8-Bit, artificial-intelligence, chiptune, Experimental, glitch, Ludum Dare 41, Music, PICO-8, psychedelic
Code licenseMIT License
Asset licenseCreative Commons Attribution v4.0 International
Average sessionA few minutes
LanguagesEnglish
InputsKeyboard, Mouse, Gamepad (any), Touchscreen
LinksLudum Dare

Download

Download NowName your own price

Click download now to get access to the following files:

charlie.bin.zip 6 MB

Development log

Comments

Log in with itch.io to leave a comment.

(+2)

Charlie builds a tunnel of chaos deep beneath stormy seas of order.
Hypnosis and atmosphere that puts psychedelics to shame. 

Give a standalone app for OSX / PC please

(+1)

Much appreciated. You will be happy to know I've released a standalone version!

(2 edits) (+1)

Awesome!
I haven't seen such a unique concept visualization of audio sequencing since LSDJ and this is such a step above in terms of depth.
I am actually working on some tracks that include some recordings from Charlie with live drums and other instruments and I'm wondering if I can use these in a recording as long as I give credit on the release?


EDIT: Also, one feature that existed when I wrote this comment that seems to be changed in the standalone is that changing the "heart" settings effects the 1st tracks tempo. I really enjoyed that I could keep the initial track playing at the original tempo and then prepare the next track's tempo without changing the speed of the initial track.

But, in the end, Charlie is always learning and his brain is always changing so maybe this is the way he wanted to be :)

(2 edits) (+1)

Feel free to use anything you produce with it as you see fit. I did change the sequencing controls to immediately affect the currently playing track. I think it adds some exppresiveness in that you can also shift the start and end of the loop as its playing, and you won’t ‘lose’ the sequence generated. You can still have a different tempo on all four tracks, but you’ll always “hear” tempo changes now.

Thank you so much for the feedback. I will probably revist how this works and I will take this into account. The sequence controls are likely to expand. I’m looking into ways to ‘select’ a track rather than just add/remove so i might have to change it for this !

EDIT: Adding a new sequence will not immediately play it anymore. So after you add it, set the tempo, and then press play when you're ready.