GOD MODE: a new feature for the open-source project The Amanuensis: Automated Songwriting and Recording

in #utopian-io6 years ago (edited)

Repository

https://github.com/to-the-sun/amanuensis

The Amanuensis is an automated songwriting and recording system aimed at ridding the process of anything left-brained, so one need never leave a creative, spontaneous and improvisational state of mind, from the inception of the song until its final master. The program will construct a cohesive song structure, using the best of what you give it, looping around you and growing in real-time as you play. All you have to do is jam and fully written songs will flow out behind you wherever you go.

Please get a hold of me if you want to try it out! Playtesters wanted!

New Features

  • What feature(s) did you add?

A new mode has been implemented that when enabled, causes The Amanuensis to see every incoming note as in-rhythm and therefore eligible to be recorded. I have been referring to it as "god mode," as it is a bit of a cheat, but it does also serve a more functional utility.

The purpose of The Amanuensis is to remove the need for any deliberate actions pertaining to the recording process so that one is free to do nothing but play their instrument. I've always seen the traditional looper as something that straddles that barrier: on the one hand it's an instrument, in that you can use it to create new sounds, but on the other it's recording equipment, and hitting the switch to make it loop can be seen as an engineering decision. However, some musicians use loopers so fluidly that stomping the pedal is just another beat in the rhythm their bodies are moving to.

At its heart The Amanuensis is just a glorified looper, one where the decision to loop has been automated. The purpose of implementing this "god mode" is to give the option of this classic functionality back to the player. Turn it on, and it records everything; turn it off, and there is an automatic "miss" which triggers it to loop. In lieu of a fully intelligent system, sometimes a little deliberate action is needed to speed the process along. But even in this mode The Amanuensis is different and novel compared to an ordinary looper in that it can record many tracks of any varying length, i.e. you're still constructing an entire song and not just loops.

Importantly, toggling "god mode" on and off is handled by hotkeys, rather than a cumbersome button on the screen. These are first the space bar, and also the playing of any MIDI note with pitch 0, which allows just about any instrument to integrate this decision to loop directly into its ordinary capabilities. Also, I don't want it to be entirely obvious that this function exists; it's appealing to me to leave it as a sort of cheat code, and not something a first-time user gets distracted by rather than engaging with the main functionality of The Amanuensis.

That being said, the option does now exist and can be useful when a player is just getting used to the system. Although the idea behind The Amanuensis is that it only captures the very best of what you play and so doesn't necessarily catch something cohesive right away, this can potentially be frustrating at first and "god mode" alleviates this, providing some instant gratification and allowing the player to easily see how the game works.

There is one point in time where "god mode" necessarily will not apply and that is in the beginning before recording can begin. First the system must establish a steady beat interval (a sort of silent click track) and if every note played counted during this process, nothing could be accurately calculated. It's worth mentioning that the length of every song is always quantized to this beat interval, meaning that another novel function of the system even in this classic looper mode is that the player doesn't have to worry about cutting off their loop with exact precision; the connection between end of song and beginning is designed to stay on beat.

Since there is no control on the UI that enables or disables "god mode", a "G" now appears on the circular recording icon for each track when it's on so the player can keep track.

  • How did you implement it/them?

The idea in implementation was to simply bypass the external Python script consciousness.py which judges whether or not any note played is in-rhythm, sending messages directly to its output indicating every note to be in-rhythm, or a "hit". In practice it also wound up being convenient that when god mode is turned off, consciousness.py will likely be empty, having not received input while god mode was on, and therefore any new notes will trigger an automatic "miss" and cause the song to loop.

A new subpatcher, p god_mode?was created as you can see in the following screenshot. After playtesting, it was discovered that the "fake misses" generated by a track reaching a state of inactivity were being converted to "hits" when god mode was on, causing recording to never end. p fake_misses_bypasswas created to take care of this issue.

god_mode? was placed directly before the mxj net.udp.send and set up to divert messages directly to p receivestats (the location of the UDP receiver), which was moved out of p statsand organized more cleanly. This all takes place in p brainof organism.maxpat:

The UI change took place in track.maxpat, where a simple commentwith the letter "G" in it was placed over the recording led. The text was set to the same color as the background so it is not visible when the ledis unlit. Scripting messages to showor hidethe commentare sent as signaled by r ---god_UI, as shown selected in the following screenshot.

GitHub Account

https://github.com/to-the-sun

Sort:  

Sorry for the large commit again! I'll try to make them more often from here on out.

Thanks for the contribution!

It would be great if you could link to the relevant commits for future contributions.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Hey @to-the-sun
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Contributing on Utopian
Learn how to contribute on our website or by watching this tutorial on Youtube.

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.029
BTC 58117.54
ETH 3128.80
USDT 1.00
SBD 2.23