Showing posts with label object oriented. Show all posts
Showing posts with label object oriented. Show all posts

Saturday, November 5, 2011

Object-oriented operator-overloading in Fauré’s Fantaisie for Flute and Piano Op. 79?

Faure, Op. 79
B   y overloading standard operators on a class, you can exploit the intuition of the users of that class. This lets users program in the language of the problem domain rather than in the language of the machine.”
  — Marshall Cline, ParaShift C++ FAQ.
A ttended James Galway’s recital the other evening. Thoroughly enjoyed it.

G alway is not subtle. His technical virtuosity, charismatic personality, and emphatic, extroverted playing style are incomparable.

B ut, beyond that, his performance of Fauré’s Fantaisie for Flute and Piano, Op. 79, led me to notice “key-undefining” and “-redefining” elements that strike me as similar to “operator overloading” in compiler design, or, more specifically, to runtime “polymorphisms” in parallel computing and cloud computing, where multiple processes that are interacting with each other concurrently implement more than one version of an operator, and the different operator instantiations have different semantics.

L ook at the score snippet above! In the Andantino movement we have middle-register F-natural (Ddim) against piano’s E in the LH. Other dissonant passages involving the flute object/process communicating with the piano object/process. Finale’s chord-analysis plug-in labels this as Ddim9 (third inversion), then Bdim. Your brain is like a master process that is executing and integrating multiple parallel child processes. If the scope of your brain’s attention encompasses all of the pitches in m. 17 in Op. 79, say, then it receives a hexachord back from the flute object class and the piano object class—an E major triad invasively intermingled with an F major triad... triads that are a dissonant semitone apart... a sort of exotic suspension.

I t is like operator overloading in C++, C#, Scala, Python, Ruby, R, and other languages.

T he interval of the fifth serves as a melodic frame for flute class execution and piano class execution in each of the ‘mélodie’s’ sections, its space gradually rising and becoming more chromatic—making the timbre brighter and the emphasis stronger or more individualistic or ‘recitational’. Melodic motion expands both registrally and chromatically. This is not so much subjectivity/ambiguity or vagueness/tentativeness that are aspects of impressionism, so much as it is concurrent, deliberate polymorphism of operators implemented by different object classes!

T he Allegro movement has rampant elisions of phrase completions, such that cadences are implicit and there is implied emphasis on what is omitted. That’s another feature in Op. 79 that, to me, presages parallel and cloud-based computing... Eager quitting by the Map-Reduce master process when ‘reducer’ jobs have by now yielded enough to enable the master process to abort the rest of them and proceed to the next task.

Faure, Op. 79G abriel Urbain Fauré was, shall we say, an erstwhile compiler engineer who lived, oh, about 100 years “before his time”.

F or your interest, some Op. 79 videos on YouTube are here, and here, and here, and here, and here. In them you will see that the “object polymorphisms” in Op. 79 are not necessarily evident unless the flute playing is as strong as Galway’s.




Friday, February 4, 2011

Morten Riis: Composition of/from/to Compositions

Silesian String Quartet, photo (c) Krzystztof Lisiak
I   nvention, it must be humbly admitted, does not consist in creating out of void(), but out of chaos. The objects and materials must, in the first place, be afforded. The constructor method is inevitably more complex than the destructor method.”
  —  Mary Shelley, Frankenstein, 1831.
T he pieces on this Silesian String Quartet recording are fascinating, all of them. But I am especially intrigued by the Morten Riis compositions entitled getString(), fromString(), useString(), toString(), and quitString().

R eviews published to-date have focused on the merits of the conventional string quartets. The attention that has been given to Morten Riis’s contribution to the recording has been backhanded—relegating it to the status of sonic ‘glue’ or filler between the larger pieces, or describing it as an ‘electronic remix’ of segments of the other tracks, as if Riis were functioning with no more or less forethought and composerly skill than a DJ in a club.

I t is true, the series of short pieces by Morten Riis do leverage sonic materials from the other tracks, and it is true that Riis’s pieces are a ‘mash-up’ or collocation of those materials.

M oreover, it is true that the pieces do function as an effective ‘glue’ adhering the adjacent string quartets to each other—believably, memorably—forming graceful bridges between them, smoothing textural and timbral differences, and so on.

S till further, it is true that Riis’s pieces may be ideally situated here, intercalated as they are between these other string quartets. If you heard two of the other string quartets performed back-to-back in a live concert, you would be grateful if the corresponding Riis piece were interposed seamlessly between the quartets. It just feels right.

B ut when I cue-up these 5 pieces on their own, I realize how much I like them in their own right, just by themselves. Riis’s digital processing augments the scope of color, contrast, tonal effects and varying dynamics—the four instruments producing a homogeneous timbre, even with their use of ‘extended’ techniques—these are now commented upon by what amounts to an omniscient narrator.

I   n a jam cake or a cheesecake, a single bite gives us the entire essence of the cake. You’ve got to get some icing on the fork too, though, with the former, and some crust for the latter), whereas I’d have to spend time with Bach or Led Zeppelin—to the extent of a movement, in the case of a suite or concerto (arguably) or the whole of the Goldbergs; I can’t stand Pandora or other streaming playlist media that randomly jump from Minor Threat, to Death Cab for Cutie, to Haydn with inadequate value/stylistic judgement and inadequate recognition of higher-level semantics—between movements in a sonata, for example, or between adjacent tracks in a playlist. The MIR representations are flawed, no matter whether you dress them up in ‘Music Genome’ or other marketese. How can you listen to just the third movement of Brahms’s quintet, Op. 111, and not feel a void from not hearing the first and second movements and the fourth? It just isn’t done. The third movement isn’t an encore bon bon, for Pete’s sake.”
  — Robert Kirzinger, Boston Symphony Orchestra, 2007.
D o L-system algorithms and cellular automata underlie what Riis has done here? Recursive application of a set of substitution rules to an initial string, interpreting the resulting rewritten string as structural elements of an ‘organism’; substitution rules determining how each symbol in the current generation should be replaced—is that why he chose these titles for these pieces? (Gary Lee Nelson ‘Summer Song for solo flute’ used L-system algorithms as a compositional tool.)

T hese are not mere ‘bridges’ or ‘interludes’ between the quartets. They are not ‘refrains’ or quasi-reprises or recapitulations or filler.

T he series of Riis pieces builds inexorably, and the quitString() coda arrives with great drama and power. The human-textured denouement resolves finally to a homophonic sinewave inert carrier-signal and cosmic stillness.

A t the end, the feeling is that Riis has conceived the whole entertainment—this whole assemblage of quartets and interstitial C++ like digitally-processed material—in one breath.

E ach quartet exhibits well-nigh perfect balance of momentum and heft. Each is trenchant but has playful elements that make the music work.

S ome conductors seem to regard the spaces between larger works as a perfunctory sort of ‘whitespace’—an interlude. Not Riis. He lavishes the same attention on the interstices that he lavishes on everything else. He doesn’t need to relax too much in order to give us a measure of respite. In some of the insterstitial pieces we get also an air of irony, a feeling we are being given the other side of one coin.

I n summary, this is one of the most extraordinary and innovative assemblies of new music to come down the pike, one that will amply reward your listening.

I n my day-job I am a software developer. I love designing things and seeing them work. I love the tools I use to design and build things. I love designing tools to design and build things. All of my friends accept this about me. So, with that preamble, I can say that the other thing I like about Riis’s pieces are their titles—their explicit homage to C++ object-oriented programming constructors as sources of inspiration and/or explanation for the (meta-)composing process. In a mass-culture that feels progressively more and more dumbed-down and hostile toward knowledge and people who devote their lives to knowing things, here is a work that bears cheerfully geekish titles and enthusiastically brings forth techno compositions that are amenable to techno enjoyment and algorithmic music theoretic analysis. It is as though Riis were speaking to me and to others of my ilk and saying Babbitt-esquely, “I care if you listen! I care if you listen!

Riis, photo (c) Krzystztof Lisiak
M orten Riis (born 1980) often employs a kind deconstruction of the musical material, aiming to create an expression where diverse genre typical elements are combined and contrasted in an organic ‘liquid’ expression. Riis often collaborates with classical musicians, in order to achieve music a more live, extemporaneous expression. Conversely, he also works a lot with ambient, digitally-recorded sounds processed as little as possible, which he says imparts a natural non-human spontaneity to the musical expression. An expression which, in spite of the through-composed structures reflects organic and flowing gestures, inanimate or otherwise.

getString CD

    [50-sec clip, Silesian String Quartet, Morten Riis, ‘toString()’; (track 8), 2011, 1.6MB MP3]

T    he unprecedented divergence between contemporary serious music and its listeners, on the one hand, and traditional music and its following, on the other, is not accidental and—most probably—not transitory. Rather, it is a result of a half-century of revolution in musical thought, a revolution whose nature and consequences can be compared only with, and in many respects are closely analogous to, those of the mid-nineteenth-century evolution in theoretical physics... Why refuse to recognize the possibility that contemporary music has reached a stage long since attained by other forms of activity? The time has long since passed when the normally well-educated person without special preparation could understand the most advanced work in, for example, mathematics, philosophy, and physics. Advanced music, to the extent that it reflects the knowledge and originality of the informed composer, scarcely can be expected to appear more intelligible than these arts and sciences to the person whose musical education usually has been even less extensive than his background in other fields... Granting to music the position accorded other arts and sciences promises the sole substantial means of survival for the music I have been describing. Admittedly, if this music is not supported, the whistling repertory of the man in the street will be little affected, the concert-going activity of the conspicuous consumer of musical culture will be little disturbed.”
  — Milton Babbitt (1916-2011), ‘Who Cares if You Listen?’, High Fidelity, FEB-1958.
Analysis analysis
SmartEnum



Thursday, November 18, 2010

Meta-complexity in Brahms’s Clarinet Quintet

 Robert Hill, photo © Benjamin Ealovega
A nthony Burton’s program notes for the London Phil’s ‘Chamber Contrasts’ series at Wigmore Hall emphasize how impressed Brahms was with the potential of clarinet, as a result of his hearing clarinettist Richard Mühlfeld perform in 1891. But Brahms composed this Op. 115 clarinet quintet within a few years of his death from cancer, a period when many of his friends and family died (his sister Elise, his brother Fritz, Elizabeth von Herzogenberg, Hermione Spies, Theodor Broth, Clara Schumann, etc.). This makes me think that the recursive, ‘re-considering’ structures in this quintet maybe derive more from the emotional impact of those events on Brahms—than from any scheme Brahms may have had, to create in Op. 115 a virtuosic clarinet showpiece for the great Mühlfeld.

L arge-scale variation comes from relationships between variations (the theme included) and how these relationships are united into a pervasive algorithm that encapsulates the entire set—that is, an operating system governing the entire set. In other words, these are not a mere series of independent objects and methods (scripts) that are expected derivatives of a parent object or class. They are a ‘network-based object-oriented OS’.

W hat I mean is, Brahms’s variations feel to me ‘network-based’, not ‘hierarchical’. It seems (to me) that Brahms was exposing larger-scale connections, and transforming his idea into a multi-domain network rather than a hierarchical structure with conventional ‘parent’ exposition classes and ‘child’ instantiations. The arrangement of variations involves pairs of diatonic pitch-class cells derived from the theme. But the textural differences that follow are like remote procedure-calls that cross-link the tension-producing structures within the variations’ designs. This gives the piece an attractive sort of ‘meta-complexity’.

I n other people’s analyses (links below), variation sets in Brahms’s multi-movement instrumental compositions are usually only moderately complex. Variation sets in interior movements often do not have full ‘closure’. In the variations in this Clarinet Quintet in B minor, Brahms suggests or ‘projects’ closure by recapitulating first-movement phrases. But the promised closure doesn’t come until the very end. It is as though there is a latent, suspended complexity that is irreducible until the very end.

T his gets me to thinking about how Brahms does this, and how we might devise similar structures and mechanics in new music. The ‘Kolmogorov complexity’ (links below) of a software program or script, or a piece of text or a musical composition, is a measure of the computational resources needed to specify the object. Kolmogorov complexity is also known as descriptive complexity, Kolmogorov-Chaitin complexity, stochastic complexity, algorithmic entropy, or program-size complexity.

O ne of the appealing, intuitively plausible qualities of Kolmogorov complexity as a metric to characterize what I was hearing last night in the account of the Brahms clarinet quintet given by Robert Hill and his colleagues has to do with how the aggregate complexity goes, for large composite or ‘compound’ or ‘network’ or ‘cloud’ objects that are constituted from multiple smaller objects. For example, consider a compound object built up from objects X and Y. The Kolmogorov complexity of the two of them together K(X,Y) is:

K(X,Y) = K(X) + K(Y|X) + O(ln(K(X,Y)))

T his says that the shortest program that reproduces X and Y is no more than a logarithmic term larger than a program to reproduce X and a program to reproduce Y given X. This basically puts a quantitative ‘bound’ on the amount of mutual information there is between X and Y in terms of the Kolmogorov complexity.

T he amount of unresolved tension we feel in the inner movements in this Brahms quintet—and the intensity of the desire we feel for the eventual resolution of these tensions at the end—feels, to me, logarithmic. Maybe some future music theory PhD candidate will explore this notion properly and critically. For now, it’s happy enough for me to give you a few interesting links below and the glimmer of a potential reason why the complexities and proportions of this quintet seem so ‘right’ and so beautiful.