Comments (8)
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:
perform notes in reverse sequence
perform chunks in reverse sequence
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.
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:
- 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).
- 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.
(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.
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.
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.
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.
As I was practicing "Donna Lee", I discovered something about the way musicians play things in retrograde. I will report soon.
from musicblocks.
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)
- Musical ideation through Generative AI
- Make your own Lesson Plan for Music Blocks HOT 2
- Musical creation and transcription assistance via generative AI HOT 6
- Guide Improvement: Add some musical examples of when double-sharp / double-flat is most useful
- silence block collapse issue HOT 9
- Palette sticky after dragging block out HOT 6
- Whole Text not appearing after collapsing silence block. HOT 5
- arpeggio regression
- "Load this block" feature not working from block help
- Project not working: Needs investigation HOT 2
- Remove link to lilybin.com
- Fixing issue that requires 'No Clock' block
- Uploading image to avatar issue HOT 1
- Hiding Music Blocks when Project starts HOT 2
- Enhanced Collaboration Feature on the Platform
- Issue with old-style sharp block
- Japanese translations (pre-release) HOT 8
- Add alphabet "G" as a block found in easy mode HOT 2
- Mysterious sharp-flat HOT 4
- Something strange about x, y positioning for certain screens HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from musicblocks.