INDIVIDUAL TRACK MIXING CONTROLS: 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.

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

New Features

  • What feature(s) did you add?

Often it was the case that the player would record a track, laying down a beat for example, only to have it be absorbed and buried by the next track recorded, rendering it barely audible. Before now there was nothing that could be done about it and it was apparent that some amount of mixing controls would need to be developed.

There had been an option to compress the recorded loops upon playback for some time, but this was the only mixing option there was and it did not address the tracks individually, only compressed them all together. Now each track can be compressed individually, as well as have its gain set after that, allowing them to be fine-tuned to the player's liking.

Although it is not the goal of The Amanuensis to encourage nitpicking over the exact engineering of your recordings, some amount of control is necessary (until it can be fully automated that is!) and since these options will have their states remembered from session to session, they should not have to be adjusted much more than your recording sources themselves are.

  • 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.

These are the primary commits involved:

The challenge in adding individual mixing controls for each track lies in the fact that playback occurs on a note by note basis in polyplaybars~.maxpat. This patch is loaded into a poly~ and voices are cued up as needed, not done per track. Therefore the first task was in finding a way to group the played notes together into audio signals specific to their track so they could be utilized individually.

Much cleanup was needed, but the strategy of using dynamically set send~s to convey the signal from this point forward was decided upon

The next task at hand was to write some code to do the actual mixing. I abandoned an initial idea of using numbered abstractions for each track and settled on a new poly~, loading a patch called polymixer~.maxpat.


polymixer~.maxpat was created, which is loaded into a poly~ 16, with the voice for each track

The third component involved was track.maxpat, adding the proper controls to the UI. In sending the user's chosen parameters to polymixer~.maxpat, #1is used to tag the messages with the number of the track of their origin. It was decided to actually only display one channel, even though at this point there was a stereo signal. The reason is that The Amanuensis records in mono to save resources and it is really only doubled to stereo once it leaves polyplaybars~.


the snippets of code in track.maxpat responsible for relaying the users choices from the UI

GitHub Account

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

Sort:  

Thanks for the contribution, @to-the-sun! Did you end up speaking to the other programming musician?


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

I did. He said he opened it up and took a look at it, but I don't think he really went beyond that.

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.19
TRX 0.13
JST 0.029
BTC 64130.23
ETH 3169.82
USDT 1.00
SBD 2.47