AUDITION HISTORICAL RECORDED MATERIAL WHEN COMPING: 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 historical record is now kept of every recorded note played by the user. When in "comp" mode, previous play-throughs of the looping portion can be auditioned, or set to play in place of what had ultimately been recorded there. This gives the user access to a trove of material that previously had been lost, so that when comping, they can potentially much more quickly find a satisfying take, rather than having to deliberately take time continuing to comp recordings for the area in question. In theory, these past takes (referred to as passes) will tend to be of higher quality, being that they were recorded in the middle of your free-flowing jam session rather than consciously being taken on the spot, as comps usually are, which is the kind of recording The Amanuensis generally tries to avoid.

This functionality is engaged using the 1-9 hotkeys. Right now the eight most recent passes are available, and can be cued up using hotkeys 2-9. Pressing 1 will bring you back to the original non-comped music playing in the looping section.

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

Other than this commit (which became necessary for the comping process as a whole, but doesn't strictly pertain to this feature update), the first task was to keep a record of which "pass" each cue/note belonged to. The 2nd value in each cue's list was the long-depricated "(on)" and it seemed like this could easily be replaced with the pass number. It was necessary to check each place cues are added or deleted to make sure this would cause no conflicts, which it did not.

v ---pass_count is now queried upon each cue's addition. In addition, upon import the seq~.txt file is queried for the maximum pass value of any cue, which is then set as the new starting count through set_pass_count.

the new subpatcher pass_count found in machine.maxpat

In order to keep a complete record, it was necessary to also disable the deletion of cues in a couple places. All cues that have ever been recorded are now stored in the seq~, but the cue_filter is handling the increased load without problem, ensuring only those still in the song are played.

An additional filter (on the flow of cues coming out of the seq~) was devised to handle playing the pass chosen to audition. Under the correct circumstances it lets cues directly through, but otherwise sends them on the normal route to cue_filter.


the new comp_filter and a view of its placement in its parent patcher, machine.maxpat

Previously the 1-9 hotkeys changed your instrument to the chosen track, however this functionality can still be accomplished with the + and - hotkeys, so it was decided to repurpose them to select passes to audition for comping. The master reference of cues, coll ---cues, has once again been found useful for this.

p comps handles the action of the hotkeys in midiPorts.maxpat

Cleanup and commenting

GitHub Account

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

Sort:  

Thank you for your contribution. Again a cool feature to have where people would love to see a historical record.


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, @codingdefined!

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

Hi @to-the-sun!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

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.18
TRX 0.15
JST 0.029
BTC 62952.44
ETH 2542.20
USDT 1.00
SBD 2.65