COMPLETE HISTORICAL RECORD OF NOTES AND AUDIO: a new feature for the open source project The Amanuensis: Automated Songwriting and Recording

in #utopian-io5 years ago (edited)

amanuensis final-03.png
logo by @camiloferrua

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 full historical record is now kept of every note played, in terms of both the recorded audio of every instrument's entire jam (in the palettes) and the envelopes referring to the exact moment of every note in that recording (the cues). Previously only those deemed to be "hits" by the system were documented.

While this is a bit more RAM intensive, it has already been proven in testing to be very advantageous for the comping process. Now when you audition a pass, there will be no notes missing from it. Seeing as comping implies the user's conscious decision-making is present, it seemed logical and apparent that he or she could be determining hits vs misses for him or herself, rather than having many of the notes omitted beforehand by the system. In the future, when The Amanuensis is smart enough, you will never need to comp anything anyway, but until then the feature should be one of fully deliberate (if streamlined!) choices.

  • 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 present the work that was completed using images instead. Read the comments in those to get an idea of how the code works. I'll keep my description here about the process of writing that code.

These are the primary commits involved:

Before, when recording into each palette, the buffer~ turned on and off based on the likelihood of each incoming note. In altering this however, starting and stopping recording would still need to occur to save as much space in the buffer~ (and RAM) as possible. It was decided that it should happen in concert with locking and unlocking instead.


the palette subpatcher, reworked in this update, which contains the polypalette~ poly~

When unlock occurs, every palette needs to stop recording, not just the last to receive a note (and therefore a target message), so this is handled directly inside the poly~.

Also, all of the misses now are assigned span 0, which has not caused any problems as the span numbering has always begun at 1.


the main site of alteration, polypalette~.maxpat and its subpatcher, add_cues

Cleanup and commenting

GitHub Account

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

Sort:  
  • I think that this article would be better if you broke each image's comments up into individual images and expanded on their purpose.
  • Great new feature, keep the good work.

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, @helo! 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.29
TRX 0.11
JST 0.033
BTC 63458.69
ETH 3084.37
USDT 1.00
SBD 3.99