JUMP TO ANY POSITION IN AN ONGOING SONG WITH 1 CLICK: a new feature for the open-source project The Amanuensis: Automated Songwriting and Recording

in #utopian-io5 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?

First, the long-overdue ability to jump to any place in an ongoing song with just a click was added. Specifically it is the right-click that engages this function. On Mac, pressing CONTROL will jump to the x-position of the mouse at that moment. Once the jump occurs, the song will continue as normal from that point forward.

Some additional UI improvements were made as well, to make the system easier to use. First, the TAB hotkey now exists to toggle between Jam mode and Comp mode.

Second, the rslider control designating the length of the loop is visible and alterable in either mode, which allows for the user to set up predictably where the song might jump to when Comp mode is engaged. Previously, the loop would reset to default in between uses of Comp mode, which often meant the song would start over every new time it was engaged.

With the loop control always visible, a new UI element was added in order to distinguish more readily between the current mode states. Thin vertical lines now appear in Comp mode across all of the tracks at the edges of the loop, making it more obvious that the normal progression will discontinue there.

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

Altering the ramp variable in progression.gendsp proved to be a relatively simple and robust way to jump the song. The playback from the seq~ seems to be holding up just fine; better than I had feared for such a long time.


the modified code in progression.gendsp, as well as the snippet of code added just outside the 3rd inlet of gen~ progression

Various hotkey controls were contemplated for the jump functionality, but a simple right-click was settled upon because it seemed quickest, with no combination of keys and mouse necessary.


the code added to Amanuensis.maxpat to handle input from the mouse

As well as the features described above, some renovation was done to the look of existing UI elements. In particular, the loop rslider was made to be lighter in color, so as not to obstruct the waveform that appears behind. In order to keep with the scheme of user-alterable control being bold and black, two bars in the form of multisliders where added on top of the slider.


a screenshot in Jam mode; the loop rslider control still visible

The thin loop border lines are also multisliders and behave in much the same way.


in Comp mode vertical lines appear indicating the boundaries of the loop

It also became necessary to ensure that when a backing track is playing, it loops along will everything else, rather than starting completely over when a loop in Comp mode occurs (and also that it would still behave normally when Comp mode is not engaged).


the new subpatcher loop in machine.maxpat

GitHub Account

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

Sort:  

Thank you for your contribution. I really like the way you explained the work done for this contribution.


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! 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

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 8 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 6 SBD worth and should receive 57 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,
trufflepig
TrufflePig

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.31
TRX 0.11
JST 0.034
BTC 66765.98
ETH 3234.00
USDT 1.00
SBD 4.23