-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
60 lines (54 loc) · 1.12 KB
/
types.ts
File metadata and controls
60 lines (54 loc) · 1.12 KB
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
export enum Difficulty {
BEGINNER = 'Beginner',
INTERMEDIATE = 'Intermediate',
ADVANCED = 'Advanced',
GOD_MODE = 'God Mode'
}
export enum Genre {
METAL = 'Metal',
ROCK = 'Rock',
BLUES = 'Blues',
JAZZ = 'Jazz',
FUNK = 'Funk',
NEO_SOUL = 'Neo-Soul',
DJENT = 'Djent'
}
export enum GuitarKey {
A = 'A',
C = 'C',
D = 'D',
E = 'E',
G = 'G',
Em = 'Em',
Am = 'Am',
Dm = 'Dm',
FsharpMin = 'F#m'
}
export enum Instrument {
ELECTRIC_GUITAR = 'Electric Guitar',
ACOUSTIC_GUITAR = 'Acoustic Guitar',
BASS = 'Bass'
}
export interface RiffRequest {
genre: Genre;
difficulty: Difficulty;
key: GuitarKey;
tempo: number; // BPM
type: 'riff' | 'solo';
instrument: Instrument;
}
export interface NoteEvent {
string_index: number; // 1 = High E (or G for bass), 6 = Low E (or 4 = E for bass)
fret: number;
start_beat: number; // Start time in beats (e.g. 0, 0.5, 1.0)
duration: number; // Duration in beats
}
export interface GeneratedRiff {
title: string;
tablature: string;
audio_sequence: NoteEvent[];
description: string;
tips: string;
bpm: number;
instrument?: Instrument;
}