AUTOMATICALLY SHUFFLE YOUR INSTRUMENT AND SOUND: a new feature for the open-source project The Amanuensis: Automated Songwriting and Recording

in #utopian-io6 years ago

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.

If you're interested in trying it out, please get a hold of me! Playtesters wanted!

New Features

  • What feature(s) did you add?

A new "shuffle" button has been added to the main UI. When clicked, a new pop-up menu opens which houses some more game-like options players can use to challenge themselves and add a bit of chaos to their songwriting.

If the "shuffle" button in the menu is clicked, the active instrument (MIDI source) will switch to a new track at random, out of the ones that are available and active (are set to record from something other than "nothing"). This track will then have a new sound chosen for it (equivalent to the PGUP hotkey). This means that suddenly the instrument the player is holding will take on an entirely new identity; the sounds coming from it may be completely different and require an entirely different method of playing to make them sound good. This new sound will then also begin to build a new layer to the song on the newly chosen track.

To automate this functionality, the user can also set a shuffle to occur between every song (after the previous song exports), repeatedly on a specified interval of seconds, or both. In the vein of my vision of turning The Amanuensis into a full-fledged rhythm game, I have been using the automated shuffle to experiment with constructing the various layers of a "dynamic soundtrack" as The Amanuensis runs in the background while playing games such as Crypt of the Necrodancer. In this way I am discovering what in-game moves result in musical elements, which sounds are best to begin a growing song with, etc.

  • How did you implement it/them?

If you're not familiar, Max is a visual language and textual representations like those shown for each commit on Github aren't particularly comprehensible to humans. You won't find any of the commenting there either. Therefore, I will do my best to present the work done in images instead. Read the comments there to get an idea of how the code works. I'll try to keep my description here about the process of writing that code.

These are the primary commits involved:

In a similar manner to previous menus on the UI, a new patcher was created to house the added functionality. It pops up when an openmessage is sent to a pcontrolobject in the main Amanuensis.maxpat. The new menu's GUI was created using the same style, font and color scheme as the rest of the application. In particular, because the drop down menu in it does not have its elements dynamically constructed, I could use the more graphically versatile live.menu, rather than the more functional umenu, and have the color scheme carry to the drop down panel itself.


the inner workings of the new shufflesubpatcher, which pops up in presentation mode on command

Cleanup and commenting

GitHub Account

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

Sort:  

Thanks for the contribution, @to-the-sun! I have heard of Crypt of the Necrodancer (people said it was amazing when it was ran at AGDQ) and the way you are experimenting with it sounds very interesting.

As always I don't really have much feedback to give about the code, but if there is one thing I would note it's this:

  • For a commit message like [v1.9] shuffle menu you can write more in the body (separate the subject with a blank line) where you can explain exactly what you are implementing, e.g.:
[v1.9] shuffle menu

Explanation of what you implemented here...

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


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

Thank you for your review, @amosbastian!

So far this week you've reviewed 7 contributions. Keep up the good work!

Hey, @to-the-sun!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

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

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 63688.35
ETH 3125.30
USDT 1.00
SBD 3.97