## 3 Implementation
### Minimal Examples Visualized  
Below, we present several simple examples to illustrate the described framework. To help understand the encoding process, we visualize float arrays as colored barcodes. The length of each bar maps directly the value. Colors are assigned with different meanings, as detailed in Table 2. Colors in each category are not allocated linearly: small differences in values map to very different tonalities, and so bars that appear to be the same length will show contrasting hue values. The example in Figure 8 shows a specimen consisting of the minimal element: a leaf value. Starting from a set of germinal conditions where the output \(type\) is _midipitch_, different transformations are applied until a minimal music token is produced. In Figure 9, the specimen output \(type\) is \(score\) for the species \(piano\), whose events have four parameters: duration, pitch, articulation, and intensity. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Value** & **Meaning** & **Colors** \\ \hline
1 & new function & black \\
0 & end of function & black \\ \(0.5,0.51,0.52,...\) & function type identifier & gray tones \\ \(g(1),g(2),g(3),...\) & encoded golden value & red–orange–yellow \\ rest of values & leaf value & green–blue–purple \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Color code for vector visualization. Figure 8: Minimal example with a _midipitch_ parameter representing middle C. Each value in germinal vector \(\vec{x}\) is mapped to corresponding values in encoded genotype \(\vec{y}\) following the rules described in Figure 6. Note that the last two values of \(\vec{x}\) are ignored because they are not necessary. The germinal vector in the specimen in Figure 9 again has seven values, but it is now read multiple times as a circular array until the encoded genotype is completed. Since part of the values provided by the germinal vector are ignored in this process, we can consider that only some changes in this vector are relevant. Figure 10 explicitly shows the positions that affect the musical result (about half of the total numbers). The search space when applying machine learning algorithms is then less than apparent. Finally, Figure 11 compares several equivalent germinal vectors corresponding to the encoded genotype of the minimal specimen seen in Figure 8. The genotype can be included back in the pool of germinal vectors, because it is self-generating. As described in Section 2.4, we call this desired feature retrotranscription. It is noteworthy that this transformation also exists in genomics through the reverse transcriptase enzyme, which transcribes DNA from RNA, reversing the usual flow of genetic information. In GenoMus, this feature enables an efficient way to find a germinal vector from a functional expression created by hand. Figure 9: Minimal example of a complete _score_ specimen. This score has only one voice, and the voice includes only one event. However, the _event_ type function e3 Pitches generates a chord with three pitches (randomly produced with the function mRnd). Note that red-orange bars represent golden encoded values: in the genotype referring to function indices; in the phenotype indicating one voice in the score, one event in the voice, and three pitches in the event. Figure 11: Equivalent germinal vectors representing the _midipitch_ parameter, middle C. As the red and blue arrows show, in this example, only two important values are determining the chosen function m  
Figure 10: Germinal vector used as a circular array to originate a longer encoded genotype vector. Solid lines relate to numbers transposed without alterations (the color does not change). These values correspond to the leaves of the functional tree expression. Dashed lines denote changes in the original value: they are function indices encoded as golden values (red-orange colors), pointing to the chosen functions to build the decoded genotype.