REPLACE [seq~] WITH GEN: a task request for the open source project The Amanuensis: Automated Songwriting and Recording

in #utopian-io6 years ago

Repository

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

Details

Currently all playback cues are stored in a seq~, but I have found discrepancies in timing this object. Basically it has to do with the fact that it cannot be known where in the current vector its read or write heads are compared with other objects relying on that same signal, causing some things to occur out of order on rare occasions. So for example, it's possible for a cue to be added and then immediately played as the seq~ reaches that point a split-second later.

The most ideal way for the program to operate would actually be to handle all of this in Gen instead, allowing for sample-accurate control over recording and playing. It could potentially even speed things up.

All of the relevant information for an audio cue could be stored in a buffer, with a channel for each element of the cues. This buffer could be referenced and manipulated from outside of Gen as well as from within. The functions of seq~ could be replicated in this manner, with a sample of the buffer for each audio cue stored. The most efficient strategy for cleaning up empty samples once audio cues are deleted (and consolidating space in the buffer) can be discussed.

Components

The main area of revamping would be p midiPallete in organism.maxpat, the location of the seq~. Actually this subpatcher would probably be removed entirely. Importing and exporting functionality would need to be replicated for a buffer, as well as the seq~ itself, but once done these components could probably be moved anywhere, most likely near or directly connected to the gen~ progression in p brain.

Other than that, one would need to look for the places where audio cues are added or deleted. All audio cues are currently added in p add_cues

and are currently deleted in cueCleanup of machine.maxpat as well as various places in theCrucible of organism.maxpat, however, with a buffer all deletions will need to be handled via the method in cueCleanup because searching for specific cues will not be so easy. In other words, cues will need to be deleted as the song comes upon them for playback, based upon whether or not they still lie within an active span (of coll A_tracks).

Deadline

There is no deadline, but we can discuss how long it might take to execute.

Communication

Reply to this post or contact me through Github for more details.

Proof of Work Done

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

Sort:  

Thanks for the task request!

I've been reading your task requests, but because I have no knowledge of the things you are talking about it's very difficult for me to judge how difficult they are to implement - I think this will be the same for other programmers like me when they see your task requests. I guess it would be possible to find a musical programmer like yourself, but maybe you can try writing it in a way that makes it possible for people like me to help out (if this is too difficult, I understand haha).

Your task request has been evaluated according to Utopian rules 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]

Hey @to-the-sun
Thanks for contributing on Utopian.
We’re already looking forward to your next task request!

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.033
BTC 64290.64
ETH 3155.12
USDT 1.00
SBD 3.86