Documentation ¶
Overview ¶
Package drum is supposed to implement the decoding of .splice drum machine files. See golang-challenge.com/go-challenge1/ for more information
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Pattern ¶
Pattern is the high level representation of the drum pattern contained in a .splice file.
func DecodeFile ¶
DecodeFile decodes the drum machine file found at the provided path and returns a pointer to a parsed pattern which is the entry point to the rest of the data. The drum machine file consists of a header followed by the tracks. Header: the header has a fixed size so we use a struct to read it in one go. Tracks: the tracks have a variable length, therefore we loop through the tracks until we have read all the bytes. The length is stored in the header. Before reading in the tracks we create a slice that can store the maximum number of tracks. We also create a counter that holds the actual number of tracks. After looping through the tracks we re-slice the tracks slice with the actual number of tracks.