<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<samples xmlns:xlink="http://www.w3.org/1999/xlink" name="MIDI Block Samples">
  <group name="Back">
    <sample name="Back" href="../..">to Cocoon Samples main page</sample>
    <sample name="Back" href="..">to Cocoon Blocks Samples main page</sample>
  </group>
  <group name="What is the MIDI block?">
    <note>The MIDI block currently gives you an XMidiGenerator to generate an
    XML representation of any MIDI file (called XMidi by its author Peter
    Loeb). There is also the XMidiSerializer to render XMidi back as a MIDI
    file. I have used XSLT to provide some basic musical manipulations such as
    transposition, and inversion. Retrograde is harder, but I shall see what I
    can come up with. Hopefully I shall also add some transformers to generate
    SVG visualisations of the XMidi, starting with normal western musical
    notation.</note>
    <sample name="MIDI Documentation"
    href="http://wiki.cocoondev.org/Wiki.jsp?page=MIDI">Documentation available
    on the Cocoon Wiki.</sample>
  </group>
  <group name="A Cocoon signature tune">
    <sample name="A Short MIDI File" href="cocoon.mid">This is a little ditty I
    wrote on the notes you get if you take the letters of the word "Cocoon"
    (using A=A, B=B, ... G=G, H=A, I=B etc.) You get C-A-C-A-A-G: very
    catchy.</sample>
    <sample name="The XMidi Generator" href="cocoon.xmi">The previous file
    rendered as XMidi, using the XMidiGenerator.</sample>
    <sample name="The XMidi Serializer" href="xmidi/cocoon.mid">The XMidi
    output of the previous pipeline rendered again as MIDI, using the
    XMidiSerializer.</sample>
  </group>
  <group name="Bach's Prelude No.1 in C, BWV846a">
    <sample name="A Longer MIDI File" href="prelude.mid">Bach's Prelude No.1 in
    C, BWV846a , sequenced by B.R.Guillaud and available from The Classical
    Music Archives (see below).</sample>
    <sample name="The XMidi Generator" href="prelude.xmi">The previous file
    rendered as XMidi, using the XMidiGenerator. Be warned, your browser may
    take some time to render the XML. As the emperor of Austria supposedly said
    to Mozart, "Too many notes!"</sample>
    <sample name="The XMidi Serializer" href="xmidi/prelude.mid">The XMidi
    output of the previous pipeline rendered again as MIDI, using the
    XMidiSerializer.</sample>
  </group>
  <group name="Transposition">
    <sample name="A Cocoon signature tune"
    href="transposed/cocoon.mid?transposition=-24">You sing bass? Want it
    lower?</sample>
    <sample name="Bach's Prelude No.1 in C#, BWV846a +1"
    href="transposed/prelude.mid?transposition=+1">Transposing Bach with XSLT.
    What next?</sample>
    <sample name="Bach's Prelude No.1 ad absurdum, BWV846a +24"
    href="transposed/prelude.mid?transposition=+24">Bach that only dogs can
    hear.</sample>
  </group>
  <group name="Inversion">
    <sample name="A Cocoon signature tune" href="inverted/cocoon.mid">Upside
    down "Cocoon"? Sure is. I haven't worked out what this spells.</sample>
    <sample name="Bach's Prelude No.1 in C, BWV846a"
    href="inverted/prelude.mid">This is our familiar prelude turned on its
    head. As Schoenberg said, this hat is still a [beautiful] hat whichever way
    you look at it.</sample>
  </group>
<!--
  <group name="Retrograde">
    <sample name="enut erutangis noocoC A" href="reversed/cocoon.mid">.</sample>
    <sample name="a648VWB ,C ni 1.oN edulerP s'hcaB"
    href="reversed/prelude.mid">Every which way.</sample>
  </group>
  -->
  <group name="Reference">
    <sample name="The Original XMidi Home Page"
    href="http://www.palserv.com/XMidi/">This is the origin of a lot of the
    source code in the generator and serializer. This code, and the XMidi
    format itself were created by Peter Loeb. Many thanks to Peter for
    permission to use his source code.</sample>
    <sample name="The Classical Music Archives"
    href="http://www.classicalarchives.com">A large site offering classical
    music in MIDI and audio formats.</sample>
  </group>
</samples>

