-
Notifications
You must be signed in to change notification settings - Fork 771
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
FEATURE: Play Backwards #58
Comments
Yash implementation is no longer applicable as it was done outside of the
|
Understood. Yes, we want the block model.
Two basic reasons:
The above answers the question, "Why is it important to music theory and music education". I know that the above does not answer the question, "Why is it important to our software?" Well, in terms of THEORY, it would open up many theoretical possibilities down the road, which will be exciting to those who would like to either a) compose or b) analyze music with the software. In terms of education, it would open up the possibility for students to "check their work". They could try singing a line on their own in retrograde and then they could check to see if they performed it correctly (and visa versa). I hope this helps. I will continue to jot my thoughts down on this, but I really think that the R. Morris is a great guide for the basic operators. His theory, coupled with the precedent in both elementary and conservatory-level education, are enough to make me think that we should keep it on our TO DO list. |
(The above Morris PDF is not best example) Best Sources: http://www.frogpeak.org/fpartists/fpmorris.html (no online or PDF equivalent, unfortunately) Class Notes for Advanced Atonal Music Theory. 2 |
A piece by J.S. Bach that uses retrograde to create a palindrome, is his "Crab Canon".
JS Bach Crab CanonSimple Performance with Visuals: https://www.youtube.com/watch?v=36ykl2tJwZM On a Mobius Strip: https://www.youtube.com/watch?v=xUHQ2ybTejU |
Since playing backwards in MB is inherently non-deterministic, I think we should restrict it to the matrix. We can have a play backwards button and a save backwards button. This would create a retrograde chuck, which can be intermixed with its corresponding chuck. But to implement a retrograde clamp would essentially mean running the code in the stack backwards, which works in simple cases, but not when things like box blocks are used. Too many corner case. Since we cannot generalize it, I think we best avoid it. |
In my mind, the retrograde clamp performs the notes backwards--it is similar to the invert clamp. There is no expectation that the clamp would perform anything other than notes backwards, like we do not expect the invert clamp to invert anything other than the notes. Maybe it only accepts note and osctime blocks (and other simple code)?
I think this is an O-K solution, but it does take away from the otherwise real-time calculations in the turtle blocks environment... |
As I was practicing "Donna Lee", I discovered something about the way musicians play things in retrograde. I will report soon. |
Resolved. While I am certain there are some corner cases where playing backward will result in broken logic or access to unintialized variables, the basics are working (well enough to program Bach's Crab Canon -- which was also featured in Godel, Escher, Bach). |
We want to be able to:
perform notes in reverse sequence
perform chunks in reverse sequence
The text was updated successfully, but these errors were encountered: