tuxDB - linux gaming aggregate
TUXDB - LINUX GAMING AGGREGATE
 NEWS TOP_PLAYED GAMES ITCH.IO CALENDAR CHAT WINE SteamDeck
 STREAMERS CREATORS CROWDFUNDING DEALS WEBSITES ABOUT
 PODCASTS REDDIT 

 

SUPPORT TUXDB ON KO-FI

MENU

ON SALE

New Twitch streamer aggregation implemented (#FuckTwitch) due to Twitch's API issues (more info on my Discord )


https://notb.itch.io/charlie


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!)