1 / 52

A Minimal Fractal Music Fractal Music Composition Language

A Minimal Fractal Music Fractal Music Composition Language. Jake Amonette, Tal Giat , Brian Hsieh, Eugene Yao Team Mondegreen. Jake Amonette. Tal Giat. Brian Hsieh. Motivation. Different. Fractal. Context Free Art.

tass
Download Presentation

A Minimal Fractal Music Fractal Music Composition Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Minimal Fractal MusicFractal Music Composition Language Jake Amonette, Tal Giat, Brian Hsieh, Eugene Yao Team Mondegreen

  2. Jake Amonette

  3. Tal Giat

  4. Brian Hsieh

  5. Motivation

  6. Different

  7. Fractal

  8. Context Free Art

  9. startshape startrule start{ SS1{ s 1.5 y -.13} }rule SS1 { BASE{s 1.3} BARNEY {} FRED {}}rule BASE { SQUARE {b 0} SQUARE {s 0.9925 b 1}}rule FRED { SQUARE {b 0} SQUARE {s 0.9925 b 1} FRED {r -3 s 0.98}}rule BARNEY { SQUARE {b 0} SQUARE {s 0.9925 b 1} BARNEY {r 1 s 0.98}}

  10. !Programmer

  11. Deterministic

  12. Steve Reich < AmFm < Mozart

  13. Language Description • AMFM • Object based music fractal composition language • Seed-based • Self-similar manipulations • Outputs music file

  14. Sample Program seed pianotest{PIANO; //6 bars of flute, 1 bar per line  A4,1/4; C5,1/4; E5,1/8; G5,1/8; F4,1/4;  E5,1/4; C5,1/4; A4,1/2;  A4,1/4; C5,1/4; E5,1/8; G5,1/8; F4,1/4;  E5,1/4; C5,1/4; A4,1/2;C5,1/4; D5,1/4; G5,1/8; A5,1/8; Ab4,1/4; G5,1/4; D5,1/4; C5,1/2;} seed flutetest{  FLUTE; //1 bar of flute, 1 bar per line  A4,1/8; C5,1/8; E5,1/16; G5,1/16; F4,1/8; E5,1/8; C5,1/8; A4,1/4;}start {play(pianotest, 1, 6);SSRhythm(flutetest, 3, 4);} seed pianotest{ } PIANO; //6 bars of piano, 1 bar per line A4,1/4; C5,1/4; E5,1/8; G5,1/8; F4,1/4;   E5,1/4; C5,1/4; A4,1/2;A4,1/4; C5,1/4; E5,1/8; G5,1/8; F4,1/4;  E5,1/4; C5,1/4; A4,1/2;C5,1/4; D5,1/4; G5,1/8; A5,1/8; Ab4,1/4; G5,1/4; D5,1/4; C5,1/2; seed flutetest{  FLUTE; //1 bars of flute, 1 bar per line A4,1/8; C5,1/8; E5,1/16; G5,1/16; F4,1/8; E5,1/8; C5,1/8; A4,1/4;} start { } play(pianotest, 1, 6); SSrhythm(flutetest, 3, 4);

  15. Translator Architecture

  16. Systems Integration • Music generated by Fractal Composer by Myron Marston • Open source fractal music engine • www.fractalcomposer.com

  17. Fractal Composer • Fractal music Java library

  18. Fractal Composer • AMFM generates a Java class that uses Fractal Composer • Fractal Composer generates musical output

  19. Fractal Composer • Simple, right?

  20. Fractal Composer • I thought so, but…

  21. Fractal Composer • Problems!

  22. Fractal Composer • Normally accessed via web front end • Unsuitable for our use. Also…

  23. Fractal Composer • UI is cumbersome for creating large/complex compositions

  24. Fractal Composer • Can’t read a UI like you can a program (or musical score)

  25. Fractal Composer • Limitations!

  26. Fractal Composer • Cannot have more than one seed per composition

  27. Fractal Composer • No notion of sequence • AMFM allows composer to start or stop playing seed arbitrarily

  28. Fractal Composer • Solution!

  29. Fractal Composer • Extensive modifications to library

  30. Fractal Composer • Refactored structure of library

  31. Fractal Composer • Added multi-seed capability

  32. Fractal Composer • Added basic sequencing

  33. Fractal Composer • Modified API to allow generic front end

  34. Environment and Support Tools

  35. Test Plan Code check in/out

  36. Test Plan Code check in/out Write new code

  37. Test Plan Code check in/out Write new code Automated regression testing

  38. Test Plan Code check in/out Write new code Automated regression testing Black box testing

  39. Test Plan Code check in/out Write new code All tests passed Automated regression testing Black box testing

  40. gUnit • gUnit, a unit testing framework for • SampleTest.gunit gunit AmFm; @header{package org.mondegreen.amfm.compiler;} //test lexer COMMENT: "//hello\n" OK "// hello world\n" OK "/** too complicated */" FAIL

  41. gUnit

  42. gUnit gunit AmFm; @header{package org.mondegreen.amfm.compiler;} //test lexer COMMENT: "//hello\n" OK "// hello world\n" OK "/** too complicated */" OK

More Related