IMPORT COMPATIBLE WITH DIFFERING TRACK SETUPS: 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

New Features

  • What feature(s) did you add?

Imported projects now play with as many tracks as they were saved with, regardless of the current set-up, and new tracks can be freely added beyond those.

Before it was necessary to maintain the same active channels in perpetuity or set them to match ahead of importing any past project. This was inconvenient and impractical in many cases. If the user failed to do so, it was possible for imported tracks to be silent, as they might not receive an audio buffer to play from.

For the same reason, new tracks might not necessarily be added beyond those the project imported with, as they would not have a buffer assigned to them unless it had been done in advance.

On the UI side of things, certain updates were made so that visually, imported projects behave in the same way expected as when creating a project from the ground up. The progression bar will now move on any track that is playing looped audio, regardless of whether it currently has a recording source selected. Also, the menu of recording sources for each track has the options disabled when they would cause interference with the bespoke audio buffers. This last one was a previous task request (https://steemit.com/utopian-io/@to-the-sun/disable-recording-source-menu-when-looping-a-task-request-for-the-open-source-project-the-amanuensis-automated-songwriting-and) and issue #19.

  • How did you implement it/them?

Most of the changes occurred in p import_palettes, which was totally revamped.

Instead of immediately taking every channel present in the form of wave files in the importing project folder and looking up the palette already associated with it in coll MIDI-audiopositions, targetmessages are now sent directly. This is possible because the new version reassesses the need for palettes completely before doing so. In the newly implemented subpatcher consolidated_palette_channels, the current track set up as well as the importing one are both taken into account and the overall buffer set up is created.

A new variable, audio_paletteswas necessary so as not to interfere with existing code. It is sent to two places, which previously relied on audio_channels. One is the polypalette~ poly~ itself and the other is in p restlessvirtuosoin machine.maxpat, where the number of voices playing audio cues is calculated. This affected one other spot of code, which was in associated_audio, the place where audio_channelsis determined. It was necessary to determine audio_palettesthere as well (a trivial difference when not importing, but audio_channelsis a list of channels whereas audio_palettesis the quantity of those channels).

The UI changes were made in track.maxpat. The scripting messages to showor hidethe progression bar are now sent with every panelrepresenting a span as they are created or deleted, so the bar will appear for each track whether or not the audio playing in it has been imported.

As for disabling items in the recording source menu, see the aforementioned task request for details. It was executed to those exact parameters and a new subpatcher, enable/disable, was created that encompasses the functionality.

GitHub Account

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

Sort:  

Thank you for your contribution. Your commit messages say that "Showing 16 changed files with 64,871 additions and 69,438 deletions." , dividing it into smaller commits would help us to evaluate the work done in a better way.

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]

Thanks for the feedback. I'll try to commit more often for sure. Is there somewhere I can read up on the ideal practices utopian has in mind for committing? I just don't want to commit anything that's in a nonfunctional state, otherwise I would more.

As for commenting, I'm not sure it could be commented out any better, so I'm not sure why got a low score. Should I just have shown more of the code I worked on? The changes I didn't show were relatively trivial.

Ideal practices of commenting are that it should be concise and give a summary of what have you done. Now that will work if I commit a small amount of work and not at once.

Congratulations @to-the-sun! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published

Click on any badge to view your Board of Honor.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last announcement from @steemitboard!

Do you like SteemitBoard's project? Vote for its witness and get one more award!

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.30
TRX 0.12
JST 0.034
BTC 64231.88
ETH 3128.59
USDT 1.00
SBD 3.95