music - instruments/percussion/drum/drum.go
1 package drum // import "vimagination.zapto.org/music/instruments/percussion/drum"
2
3 import "vimagination.zapto.org/music"
4
5 type Drum struct {
6 player *music.Player
7 }
8
9 func New(p *music.Player) Drum {
10 return Drum{player: p}
11 }
12
13 func (d Drum) Bass(time uint64, channel int) {
14 rate := d.player.Rate()
15 bassIntro := d.player.EndZeroNote(rate/50, music.E2)
16 d.player.Add(time, d.player.EndZeroNote(rate/50, music.E3), music.E3.Sine, music.RampUp, channel)
17 d.player.Add(time, d.player.EndZeroNote(rate/75, music.E4), music.E4.Sine, music.AdjustProfile(0.75, music.RampUp), channel)
18 d.player.Add(time, d.player.EndZeroNote(rate/100, music.E5), music.E5.Sine, music.AdjustProfile(0.5, music.RampUp), channel)
19 d.player.Add(time+bassIntro, rate*2, music.E2.Sine, music.ExponentialDown, channel)
20 }