We use three recurrent layers: (\(\text{GRUs}\)  [1]}) {along time-axis, bi-directional, 100-channel}, {along time-axis, uni-directional, 50-channel}, and {along channel-axis, uni-directional,
\(K\) -channel}. These three recurrent layers have properties of i) being bi-directional so that the onset at \(n\)  can be determined by the vicinity of \(n\)  (both the past and the future), ii) enforcing temporal dependency, and iii) enforcing component-wise dependency, respectively. The width (or the hidden vector size) of the third recurrent layer is equal to \(K\) , the number of drum components in the synthesizer, to map each channel to each drum component.
