Based on discussion here: https://thesession.org/discussions/42458?newcomment=849563#comment849563
Let's add the following functionality to folkrnn.org.
Change modes dropdown to: Major, Mixolydian, Dorian, Minor
Add "Root pitch" dropdown with: A, B, C, D, E, F, G
Then behind the scenes, we can use abc2abc to transpose.
So, say someone chooses 4/4, major mode and D root pitch with some initial ABC. We expect them to specify any initial abc in 4/4, D major.
App creates initial ABC in a temp.file:
X:1
M:4/4
K:Dmajor
Initial ABC
Then we run "abc2abc -t -2 -e temp.file", then parse the output and initialse folkrnn.org with that. The model produces the ABC as usual (in Cmajor), in output.file. Then we unparse that and run "abc2abc -t 2 -e output.file" and display that ABC.
The transposition amounts are as follows given the user specification of root pitch (which come from how I transposed thesession.org tunes to create the training data):
A: +3
B: +1
C: +0
D: -2
E: -4
F: -5
G: -7
Based on discussion here: https://thesession.org/discussions/42458?newcomment=849563#comment849563 Let's add the following functionality to folkrnn.org. Change modes dropdown to: Major, Mixolydian, Dorian, Minor Add "Root pitch" dropdown with: A, B, C, D, E, F, G Then behind the scenes, we can use abc2abc to transpose. So, say someone chooses 4/4, major mode and D root pitch with some initial ABC. We expect them to specify any initial abc in 4/4, D major. App creates initial ABC in a temp.file: X:1 M:4/4 K:Dmajor Initial ABC Then we run "abc2abc -t -2 -e temp.file", then parse the output and initialse folkrnn.org with that. The model produces the ABC as usual (in Cmajor), in output.file. Then we unparse that and run "abc2abc -t 2 -e output.file" and display that ABC.
The transposition amounts are as follows given the user specification of root pitch (which come from how I transposed thesession.org tunes to create the training data): A: +3 B: +1 C: +0 D: -2 E: -4 F: -5 G: -7