Terra’s Theme
October 6, 2019 by Chris Johnson . Filed under deltaphone , public .
I’m not exactly sure what Deltaphone is for, but this afternoon, it was for analyzing the structure of Terra’s Theme from Final Fantasy VI. (Thanks to 8-bit of 8-bit Music Theory , who did all the work.) The melodic line consists of a phrase repeated three times, and this phrase is expressed in the prefix
function below. Did you know the A section and the B section simply swap the roots of these three iterations? The A section’s three iterations start at G#, G#, and B. The B section’s three iterations start at B, B, and G#.
Hit the Play button to hear. The editor is a little cramped in this blog; I suggest you scroll down and click Expand to open it in a new tab or window.
<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="to" id="nAsh6?@siPr`7ugKK4j/" x="-189" y="-294">
<mutation>
<identifier value="prefix"></identifier>
<parameters>
<parameter identifier="root" mode="value"></parameter>
</parameters>
</mutation>
<field name="identifier">prefix</field>
<value name="formal0">
<block type="formalParameter" id="scm2i(NW#{N:d?.#bGE_" movable="false">
<mutation mode="value"></mutation>
<field name="identifier">root</field>
</block>
</value>
<statement name="body">
<block type="jump" id=")Q;vR7GA(BT(d30Mk)oF">
<value name="note">
<block type="variableGetter" id="p_1m*sy.L`r-_0m=+Cfx">
<mutation mode="value" identifier="root" formalblockid="scm2i(NW#{N:d?.#bGE_"></mutation>
</block>
</value>
<next>
<block type="playRelative" id="GhRb}w9XDaN+X))D83C-">
<value name="deltaValue">
<block type="deltaValue" id="@Drsjq*jjs0[7}:gNC50">
<field name="value">+0</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id=".urH28wfqrw5wsC)Hlxd">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="cRH6,[Vi%u^;^uj?/^p$">
<field name="value">16</field>
</block>
</value>
<next>
<block type="playRelative" id="oPS@cmOn`},Le,?1!xXY">
<value name="deltaValue">
<block type="deltaValue" id="+/lg6w9;OXD.Ie0R*EZb">
<field name="value">+1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="EC#8n`QHYbJ#a!.E?h5X">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="LFIw/b4VuQl@|[v@9Q-=">
<field name="value">16</field>
</block>
</value>
<next>
<block type="playRelative" id="bw]fC5~W6R:F:E2koL4Q">
<value name="deltaValue">
<block type="deltaValue" id="x,!+E.Ne]KdKkvTVgrVR">
<field name="value">+1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="VryP.c6^sWD?F$V=8;cH">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="M6Ka)J?Zfxv)Z4P`2d(m">
<field name="value">16</field>
</block>
</value>
<next>
<block type="playRelative" id="9TCU.?mCB~[(OU*hzuj}">
<value name="deltaValue">
<block type="deltaValue" id="sPNXv;KP)ho5ZY+62)v!">
<field name="value">+2</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="/YnZu){/yqW_%jj|%y%2">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="i?iX}H{R3HoyOqDLLh$D">
<field name="value">16</field>
</block>
</value>
<next>
<block type="tie" id="o0h.XT~q)9|y`U,lD]xN">
<statement name="body">
<block type="playRelative" id="l[@yVGR]V:{_5i!gKBIb">
<value name="deltaValue">
<block type="deltaValue" id="BRV~zJm1A#4U:i{CxRZf">
<field name="value">-2</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="*@iD?Deq[/=bjV!$vVq#">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="=zF3|axG#uiEw-TWSoCa">
<field name="value">8</field>
</block>
</value>
<next>
<block type="playRelative" id="M+~X}+htZmH;JL|BK$kN">
<value name="deltaValue">
<block type="deltaValue" id="{;m:f8-ll{M_z)A@atN|">
<field name="value">+0</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="jNFQ,;}aW[^Q8_?h]~;K">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="q{+j@Dn-2lWrXR/rV!vV">
<field name="value">2</field>
</block>
</value>
<next>
<block type="playRelative" id="jUX#u{0}#1k*AbL%(Ap!">
<value name="deltaValue">
<block type="deltaValue" id="!gs2wXplrOh-n(7E|EA3">
<field name="value">+0</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="t0-kH-0=-3*0+EB?p{1@">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="8BY#%;SqYw@BWlkBI+T-">
<field name="value">8</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="playRelative" id="pykbb`#-}+jeY[pqBq){">
<value name="deltaValue">
<block type="deltaValue" id=".JZ.UXS;`kfsI]n69m(f">
<field name="value">-1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="bWTB?/Kh1B`Aw,d*APM^">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="S^7w@@wYS4fdCx)Ho!4U">
<field name="value">16</field>
</block>
</value>
<next>
<block type="playRelative" id="2/i:-Wkt%:B2yXmV?*Q]">
<value name="deltaValue">
<block type="deltaValue" id="CF7qCmEyWEIZ_q6K1IPD">
<field name="value">-1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="VVE?uN2!hbm|YeBn2,m)">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="Kn8hr/[w_m{*GxMwdZpt">
<field name="value">16</field>
</block>
</value>
<next>
<block type="playRelative" id="POHYfNgGvoe=@C1*RCB+">
<value name="deltaValue">
<block type="deltaValue" id="c@3}%YuJ^7E@fe|^[R.8">
<field name="value">+1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="Q)~w`!:7;=YGm@uqwz=v">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="]H(A!0%|F-^,Kp|LM_2t">
<field name="value">4</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="to" id="hdh9X_dUT=cD{+Ma3~(Q" x="-188" y="339">
<mutation>
<identifier value="tail"></identifier>
<parameters></parameters>
</mutation>
<field name="identifier">tail</field>
<statement name="body">
<block type="playAbsolute" id=",Eml2,;;y8}qMI!7fca:">
<value name="letter">
<block type="letter" id="0RW{,o5+B6?P2q#J`:B2">
<field name="value">11</field>
</block>
</value>
<value name="accidental">
<block type="accidental" id="_)blEsTaTeCR7R0ToYjX">
<field name="value">0</field>
</block>
</value>
<value name="octave">
<block type="integer" id=")+/I*#h$%F@tRI*-3C3O">
<field name="value">5</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="Zw62z`J[*!ciS/rzdJ6?">
<field name="value">16</field>
</block>
</value>
<next>
<block type="playRelative" id="W/5ehQ:vcyfb?^dvx1B2">
<value name="deltaValue">
<block type="deltaValue" id="q439qOnv%1gD~][tAX_@">
<field name="value">-1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="fLG*BD/d{#mu7#nx)Dem">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="z|]=2n+l5a*B3u?*EyY6">
<field name="value">16</field>
</block>
</value>
<next>
<block type="tie" id="S!@O,D[_9Yuw$z1wc{F,">
<statement name="body">
<block type="playRelative" id="JSzr*0E;HeqOoM@m711A">
<value name="deltaValue">
<block type="deltaValue" id="dCE;$;kW4Kj55nw6k@J+">
<field name="value">-1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id=";!V_XAxfJ7CWhm4AD!OX">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="Hm/_lMG=KZiwX1FAX[`F">
<field name="value">-2</field>
</block>
</value>
<next>
<block type="playRelative" id="Ht1DS05KR#YyA7hnT#hB">
<value name="deltaValue">
<block type="deltaValue" id="F}Bi[j@1gp3Pjl?yUw;C">
<field name="value">+0</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="LD8Sdxra6E_O@#,*PVg|">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="OdIym?dp$X)J]!R?^w,5">
<field name="value">8</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="playAbsolute" id="QR8kgjMWBX5QI-BqkYyk">
<value name="letter">
<block type="letter" id="GQO*3b1pYI1q~u5..`I2">
<field name="value">11</field>
</block>
</value>
<value name="accidental">
<block type="accidental" id="o%Z7U?Oh$j)~s@#*g`1t">
<field name="value">0</field>
</block>
</value>
<value name="octave">
<block type="integer" id="TP+y_KN;,G!TL(H|W0JC">
<field name="value">5</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="XFh:.F*:CzMMU~6Y5VUE">
<field name="value">16</field>
</block>
</value>
<next>
<block type="playRelative" id="4%kjM/ef!]8vZt+Zl]+V">
<value name="deltaValue">
<block type="deltaValue" id="d`DqB9aijQ^4|%tZt6AA">
<field name="value">-1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="[}UBPp3x79MA15:6|@zp">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="A.vl0n|o!w,LAVi62ImN">
<field name="value">16</field>
</block>
</value>
<next>
<block type="playRelative" id="O/LOP0W[lD9~ksD].fyV">
<value name="deltaValue">
<block type="deltaValue" id="p5H_r2_9Z#p$ck(wc8oN">
<field name="value">-1</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="6#%=#u{De[OES$zSp~Av">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="|jdkhQQQj??U)7}LES!)">
<field name="value">-2</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="to" id=")1b7bAQ8T*H$4M5tR.*D" x="-190" y="775">
<mutation>
<identifier value="section"></identifier>
<parameters>
<parameter identifier="root1" mode="value"></parameter>
<parameter identifier="root2" mode="value"></parameter>
</parameters>
</mutation>
<field name="identifier">section</field>
<value name="formal0">
<block type="formalParameter" id="g{9wcS:PY5Pneo6Hff73" movable="false">
<mutation mode="value"></mutation>
<field name="identifier">root1</field>
</block>
</value>
<value name="formal1">
<block type="formalParameter" id="Mx8@MZwA)l/7IcL*7l2H" movable="false">
<mutation mode="value"></mutation>
<field name="identifier">root2</field>
</block>
</value>
<statement name="body">
<block type="call" id="Y0r*MdsORz*@9x8lso+k">
<mutation mode="action">
<to id="nAsh6?@siPr`7ugKK4j/" identifier="prefix"></to>
<parameters>
<parameter identifier="root" mode="value"></parameter>
</parameters>
</mutation>
<value name="actual0">
<block type="variableGetter" id="gHI`zrFIHw-oTdt79B26">
<mutation mode="value" identifier="root1" formalblockid="g{9wcS:PY5Pneo6Hff73"></mutation>
</block>
</value>
<next>
<block type="tie" id="+vbEd5--y@2$ze:e/fD;">
<statement name="body">
<block type="playRelative" id="tb0T{gn2rWWU0U8xC3-R">
<value name="deltaValue">
<block type="deltaValue" id="Us3{GD[}_J/fwa;ON;nd">
<field name="value">-4</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="~1IPq{BljDV0;MKZ[mDa">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="/=Tw34u+DlnS}rR(irJy">
<field name="value">2</field>
</block>
</value>
<next>
<block type="playRelative" id="$Aa^b+wg*kgU3/`GIxa(">
<value name="deltaValue">
<block type="deltaValue" id="H)|N2B:@2:K==Q/~qjG0">
<field name="value">+0</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="xXgUP::tKN~?+(CWNpk-">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id=";e[T*9$6Xv$c:G]EJh|%">
<field name="value">8</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="call" id="nvJHO+sz;2QWHFMD_Wpj">
<mutation mode="action">
<to id="nAsh6?@siPr`7ugKK4j/" identifier="prefix"></to>
<parameters>
<parameter identifier="root" mode="value"></parameter>
</parameters>
</mutation>
<value name="actual0">
<block type="variableGetter" id="*elQH`BqVPx7s!hf])@]">
<mutation mode="value" identifier="root1" formalblockid="g{9wcS:PY5Pneo6Hff73"></mutation>
</block>
</value>
<next>
<block type="tie" id="VJ/FS.E%0HI@RJy4;2/-">
<statement name="body">
<block type="playRelative" id=":Uf4J~Cexzhi]OA,sTAV">
<value name="deltaValue">
<block type="deltaValue" id="b5#3UHMW:JJyR;A6zAU+">
<field name="value">+3</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="2I(v!OE1LI5A1?k*z60]">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="B/rHQ^P2JN9$%RR[Xt{r">
<field name="value">2</field>
</block>
</value>
<next>
<block type="playRelative" id="3SDWOS4+Z)qi.MgNfVCq">
<value name="deltaValue">
<block type="deltaValue" id="%k@Ha186-e58L{8p@ynO">
<field name="value">+0</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="6@.-z@7$bFmBmYN.cw;,">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id=".e;e}b5iD$?Drr4-(b0u">
<field name="value">8</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="call" id="zHqbTqx{]Je?os,q#5TQ">
<mutation mode="action">
<to id="nAsh6?@siPr`7ugKK4j/" identifier="prefix"></to>
<parameters>
<parameter identifier="root" mode="value"></parameter>
</parameters>
</mutation>
<value name="actual0">
<block type="variableGetter" id="(/r;E?vr}ME0%)qfh:Wr">
<mutation mode="value" identifier="root2" formalblockid="Mx8@MZwA)l/7IcL*7l2H"></mutation>
</block>
</value>
<next>
<block type="tie" id="Bbz9[r*NbJzXR]FdV3=u">
<statement name="body">
<block type="playRelative" id="sTJcuBMiXRcwDWHh,LPe">
<value name="deltaValue">
<block type="deltaValue" id="=2^~$uyMkZq%C]Z|fKaB">
<field name="value">-4</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="m6iZwJYPO2hyg2*e:)r;">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="l58kl{VTIWHB^zk`=R6(">
<field name="value">2</field>
</block>
</value>
<next>
<block type="playRelative" id="_wLb`Sg5-uPd5UoSAo$z">
<value name="deltaValue">
<block type="deltaValue" id="O)3/.!n]-Tr{om9kN4WL">
<field name="value">+0</field>
</block>
</value>
<value name="deltaUnit">
<block type="deltaUnit" id="t!o*ZFkA)kR)8@S8;qr(">
<field name="unit">1</field>
</block>
</value>
<value name="duration">
<block type="noteDuration" id="Cy1j^Y~cg.bK;|R!J04U">
<field name="value">8</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="call" id="5jVR;Wji3Efzh2K`=aX:">
<mutation mode="action">
<to id="hdh9X_dUT=cD{+Ma3~(Q" identifier="tail"></to>
<parameters></parameters>
</mutation>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="beatsPerMinute" id="y(#8~/$zL-xmomXRZ;[W" x="-188" y="1318">
<value name="speed">
<block type="integer" id="(-Mp}j{:W.`Xv156Ypw7">
<field name="value">80</field>
</block>
</value>
<next>
<block type="keySignature" id="tR+pj9juF5*9(|S4/(Pg">
<value name="letter">
<block type="letter" id="`yIk#(Z{+T0AWAH1cSGz">
<field name="value">11</field>
</block>
</value>
<value name="accidental">
<block type="accidental" id="-tolO]ns4n$o/,QZGy*#">
<field name="value">0</field>
</block>
</value>
<value name="scale">
<block type="scale" id="vAV_d_P%l?cF7IIhuVFS">
<field name="value">major</field>
</block>
</value>
<next>
<block type="call" id="W,Q*A*.HJ.+B{caUekUE">
<mutation mode="action">
<to id=")1b7bAQ8T*H$4M5tR.*D" identifier="section"></to>
<parameters>
<parameter identifier="root1" mode="value"></parameter>
<parameter identifier="root2" mode="value"></parameter>
</parameters>
</mutation>
<value name="actual0">
<block type="position" id=":G7bh~4o_;wzSCvbcmE(">
<value name="letter">
<block type="letter" id="C^bz!e*.(s45v:y|HP/`">
<field name="value">7</field>
</block>
</value>
<value name="accidental">
<block type="accidental" id="3PGq%ynV4Q!/.V;_L^OQ">
<field name="value">1</field>
</block>
</value>
<value name="octave">
<block type="integer" id="79O%:$oZFPQbgs%Mr!Js">
<field name="value">5</field>
</block>
</value>
</block>
</value>
<value name="actual1">
<block type="position" id="mAcyz=H$wde`n2{#@KR?">
<value name="letter">
<block type="letter" id="/is5u-*T_s3Pc!H:);Rk">
<field name="value">11</field>
</block>
</value>
<value name="accidental">
<block type="accidental" id="$aizdUyLEObo(7+kpVh^">
<field name="value">0</field>
</block>
</value>
<value name="octave">
<block type="integer" id="Yg@?pJ]m{Z`|O7yWRC^c">
<field name="value">5</field>
</block>
</value>
</block>
</value>
<next>
<block type="call" id="r2G8~W6X%mkR3[YK=|AT">
<mutation mode="action">
<to id=")1b7bAQ8T*H$4M5tR.*D" identifier="section"></to>
<parameters>
<parameter identifier="root1" mode="value"></parameter>
<parameter identifier="root2" mode="value"></parameter>
</parameters>
</mutation>
<value name="actual0">
<block type="position" id="UY;w*];tlc:hBr~moQ!7">
<value name="letter">
<block type="letter" id="~0$4]![}rWS4,qUbxvxq">
<field name="value">11</field>
</block>
</value>
<value name="accidental">
<block type="accidental" id="JWZ;1E^?ncS*1K}Vc!/Z">
<field name="value">0</field>
</block>
</value>
<value name="octave">
<block type="integer" id="XZ{_9mZAE/GPi|qVC9s(">
<field name="value">5</field>
</block>
</value>
</block>
</value>
<value name="actual1">
<block type="position" id="g:JroyOdZiD?3/X!;mr.">
<value name="letter">
<block type="letter" id="wnw!NlJhj.|yR2z(tIT#">
<field name="value">7</field>
</block>
</value>
<value name="accidental">
<block type="accidental" id="t^PmJx@`U.{jB,1Zjfs)">
<field name="value">1</field>
</block>
</value>
<value name="octave">
<block type="integer" id="$}ILrgcrV}z4[3#KHB;f">
<field name="value">5</field>
</block>
</value>
</block>
</value>
<next>
<block type="rest" id="$P5;mg`=r[D`jQFh7nj*">
<value name="duration">
<block type="restDuration" id=":kw^#WUQ~`rrbk]rTgqa">
<field name="value">4</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>
expand