init
This commit is contained in:
commit
9cffa2da9c
6 changed files with 419 additions and 0 deletions
64
lib.typ
Normal file
64
lib.typ
Normal file
|
@ -0,0 +1,64 @@
|
|||
|
||||
|
||||
#let open = text(size: 2em, "\u{25CB}")
|
||||
#let close = text(size: 2em, "\u{25CF}")
|
||||
#let half = text(size: 2em, "\u{25D0}")
|
||||
|
||||
#let note_to_tab = (
|
||||
"D": (
|
||||
"A": (close, close, open, open, open, open),
|
||||
"B": (close, open, open, open, open, open),
|
||||
"C": (open, close, close, open, open, open),
|
||||
"C#": (open, open, open, open, open, open),
|
||||
"D": (close, close, close, close, close, close),
|
||||
"E": (close, close, close, close, close, open),
|
||||
//"F": ()
|
||||
"F#": (close, close, close, close, open, open),
|
||||
"G": (close, close, close, open, open, open),
|
||||
"A+": (close, close, open, open, open, open),
|
||||
"B+": (close, open, open, open, open, open),
|
||||
"C+": (open, close, close, close, open, open),
|
||||
"C#+": (open, close, close, open, open, open),
|
||||
"D+": (open, close, close, close, close, close),
|
||||
"E+": (close, close, close, close, close, open),
|
||||
"F#+": (close, close, close, close, open, open),
|
||||
"G+": (close, close, close, open, open, open),
|
||||
)
|
||||
)
|
||||
|
||||
#let tabs(key: "D", notes) = {
|
||||
let dic = note_to_tab.at(key)
|
||||
let tab = ()
|
||||
let i = 0
|
||||
while i < notes.len() {
|
||||
let j = i + 1
|
||||
while j < notes.len() and notes.at(j) in "#+"{
|
||||
j = j + 1
|
||||
}
|
||||
let note = notes.slice(i, j)
|
||||
let (name, octave) = if notes.at(j - 1) == "+" {
|
||||
(notes.slice(i, j - 1), "+")
|
||||
} else {
|
||||
(note, " ")
|
||||
}
|
||||
if note == " " {
|
||||
tab.push((" ",)*8)
|
||||
} else {
|
||||
tab.push((..dic.at(note), octave, name))
|
||||
}
|
||||
i = j
|
||||
}
|
||||
|
||||
grid(
|
||||
columns: (1.5em,)*tab.len(),
|
||||
rows: (1.2em,)*8,
|
||||
row-gutter: (0em, 0em, .5em, 0em, 0em, .4em, 0em),
|
||||
//stroke: black,
|
||||
align: center+horizon,
|
||||
..for i in range(8) {
|
||||
for t in tab {
|
||||
(t.at(i),)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue