File size: 1,646 Bytes
2e1dc7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from enum import IntEnum


class Stem(IntEnum):
    DRUMS = 0
    BASS = 1
    GUITAR = 2
    KEYBOARD = 3
    PIANO = 4
    STRINGS = 5
    OTHER = 6
    VOCALS = 7
    ANY = 8

    @staticmethod
    def fromstring(s: str):
        match s:
            case "drums":
                return Stem.DRUMS
            case "drums_mixed":
                return Stem.DRUMS
            case "bass":
                return Stem.BASS
            case "guitar":
                return Stem.GUITAR
            case "other_keys":
                return Stem.KEYBOARD
            case "keyboard":
                return Stem.KEYBOARD
            case "piano":
                return Stem.PIANO
            case "bowed_strings":
                return Stem.STRINGS
            case "strings":
                return Stem.STRINGS
            case "other":
                return Stem.OTHER
            case "vocals":
                return Stem.VOCALS
            case _:
                raise ValueError("unknown stem name")

    def getname(self):
        match self:
            case Stem.DRUMS:
                return "drums_mixed"
            case Stem.BASS:
                return "bass"
            case Stem.GUITAR:
                return "guitar"
            case Stem.KEYBOARD:
                return "other_keys"
            case Stem.PIANO:
                return "piano"
            case Stem.STRINGS:
                return "bowed_strings"
            case Stem.OTHER:
                return "other"
            case Stem.VOCALS:
                return "vocals"
            case Stem.ANY:
                raise ValueError("Stem ANY has no name")