Giter Site home page Giter Site logo

FEATURE: Play Backwards about musicblocks HOT 8 CLOSED

sugarlabs avatar sugarlabs commented on June 11, 2024
FEATURE: Play Backwards

from musicblocks.

Comments (8)

walterbender avatar walterbender commented on June 11, 2024

Yash implementation is no longer applicable as it was done outside of the
context of the block model. This is very tricky. Why is it important?
On Oct 22, 2015 9:31 AM, "Devin Ulibarri" [email protected] wrote:

Hi,

Yash had this working in his version of the code, but I know that the
inner-logic has changed since. We want to be able to:

  1. perform notes in reverse sequence

  2. perform chunks in reverse sequence

  3. A combination

https://rawgit.com/khandelwalYash/Music-Blocks/master/index.html

[image: screenshot - 10222015 - 09-25-52 am play backwards worked in yashs
old code]
https://cloud.githubusercontent.com/assets/13454579/10666447/aa5c7afc-789f-11e5-9a56-74e4621cf0d3.png


Reply to this email directly or view it on GitHub
https://github.com/walterbender/musicblocks/issues/58.

from musicblocks.

pikurasa avatar pikurasa commented on June 11, 2024

Yash implementation is no longer applicable as it was done outside of the context of the block model.

Understood. Yes, we want the block model.

This is very tricky. Why is it important?

Two basic reasons:

  1. Theory -- Retrograde is a basic operator (http://lulu.esm.rochester.edu/rdm/pdflib/BATP.pdf). Next in line of basic operators would be "inversion". To the extent that we can have all the basic operators in place, we will have achieved many possibilities. Retrograde, Inversion, Transposition are to music as addition/multiplication/division are to arithmetic. If you can have all three, you have the infrastructure to run many more higher level operations (by combinations of the basic ones).
  2. Education -- (Having trouble finding published sources at moment) The Conservatory Lab School in Brighton (?), MA has a musical literacy skills test. One test for mastery is whether or not students can perform something backwards. I would need to ask for permission first, but you might benefit from being able to see this test. As another example, my teacher, Eliot Fisk, asks his students to practice tricky passages backwards--mainly to improve our memory (they is very much a cognitive aspect to this).

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.

from musicblocks.

pikurasa avatar pikurasa commented on June 11, 2024

(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 Atonal Music Theory. An essential and elegant study by one of our great contemporary theoretical minds <==this gets at the basics

Class Notes for Advanced Atonal Music Theory. 2

from musicblocks.

pikurasa avatar pikurasa commented on June 11, 2024

A piece by J.S. Bach that uses retrograde to create a palindrome, is his "Crab Canon".

A crab canon—also known by the Latin form of the name, canon cancrizans—is an arrangement of two musical lines that are complementary and backward, similar to a palindrome. Originally it is a musical term for a kind of canon in which one line is reversed in time from the other (e.g. FABACEAE played simultaneously with EAECABAF). A famous example is found in J. S. Bach's The Musical Offering, which also contains a canon ("Quaerendo invenietis") combining retrogression with inversion, i.e., the music is turned upside down by one player, which is a table canon.
https://en.wikipedia.org/wiki/Crab_canon

JS Bach Crab Canon

Simple Performance with Visuals: https://www.youtube.com/watch?v=36ykl2tJwZM

On a Mobius Strip: https://www.youtube.com/watch?v=xUHQ2ybTejU

from musicblocks.

walterbender avatar walterbender commented on June 11, 2024

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.

from musicblocks.

pikurasa avatar pikurasa commented on June 11, 2024

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.

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)?
Maybe it faithfully runs things backwards and lets the user discover why some more complex code works and why other complex code does not?

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.

I think this is an O-K solution, but it does take away from the otherwise real-time calculations in the turtle blocks environment...

from musicblocks.

pikurasa avatar pikurasa commented on June 11, 2024

As I was practicing "Donna Lee", I discovered something about the way musicians play things in retrograde. I will report soon.

from musicblocks.

walterbender avatar walterbender commented on June 11, 2024

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).

from musicblocks.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.