From df8b6e6f4dcb262050be794a196c9af20ba24ca4 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 6 Aug 2012 03:01:20 -0300 Subject: [PATCH] Clef. --- convert.go | 24 +++++++++++++++++++++++- lily/data.go | 8 ++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/convert.go b/convert.go index 3901b54..214a618 100644 --- a/convert.go +++ b/convert.go @@ -94,6 +94,26 @@ func Convert(data *encore.Data) { fmt.Printf(">>\n") } +func ConvertClef(key byte) *lily.Clef { + s := "" + switch key { + case 0: + s = "G" + case 1: + s = "F" + case 2: + s = "C" + case 3: + s = "tenor" + case 4: + s = "G^8" + case 5: + s = "G_8" + } + + return &lily.Clef{Name: s} +} + func ConvertKey(key byte) *lily.KeySignature { names := []string{ "c", "f", "bes", @@ -207,7 +227,9 @@ func ConvertStaff(elems []*encore.MeasElem) lily.Elem { } if i == 0 { seq.Elems = append(seq.Elems, - ConvertKey(e.LineStaffData.Key)) + ConvertKey(e.LineStaffData.Key), + ConvertClef(e.LineStaffData.Clef), + ) } if i > 0 && nextTick < e.AbsTick() { diff --git a/lily/data.go b/lily/data.go index d57c045..ab48025 100644 --- a/lily/data.go +++ b/lily/data.go @@ -195,3 +195,11 @@ type KeySignature struct { func (k *KeySignature) String() string { return fmt.Sprintf("\\key %s \\%s", k.Name, k.ScaleType) } + +type Clef struct { + Name string +} + +func (c *Clef) String() string { + return fmt.Sprintf("\\clef \"%s\"", c.Name) +}