close
The Wayback Machine - https://web.archive.org/web/20201123074708/https://github.com/to-the-sun/amanuensis/issues/29
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Random initialization of pitches within an octave for singingstream's instruments #29

Open
to-the-sun opened this issue Jun 12, 2018 · 0 comments

Comments

@to-the-sun
Copy link
Owner

@to-the-sun to-the-sun commented Jun 12, 2018

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 want to try it out, please get a hold of me! Playtesters wanted!

Details

A little while back the "octave" parameter saved for each device by singingstream.maxpat was removed, which allowed for easier access of the hotkeys in octave -2. The downside of this was that in initializing a new controller, the pitches randomly assigned to its buttons will lie all over the spectrum and may actually be fairly incongruous to play together. So it would be ideal if, for their random initialization only, the original functionality was reinstated, assigning pitches only within a single octave, thereby creating a specific modality or scale for the player to operate in.

Components

Pitch is chosen in the initialize_pitch subpatcher of singingstream.maxpat.
Image

Basically, the functionality to initialize an octave at random for each device will need to be integrated back in to it. The random and + objects replaced with a quick check of the device's octave and a random 12 (12 pitches in an octave). The old code for initializing the octave is the right-hand portion of the now defunct p initialize_devices:
Image

It must be noted that octaves are chosen per device whereas pitches are chosen per control on each device, so you will need to use a sprintf symout %s==|>device to get the device name from dict ---specs before checking for the octave with the above code.

Also, there are 11 octaves to choose from (hence the random 11) but the lowest one should actually be excluded because that is where the hotkeys lie. Don't want to go in circles making the same mistakes here, so the random 11 will need to be altered as well.

Deadline

This request should take no more than five days to complete.

Communication

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

Proof of Work Done

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.