   --cięcie--
   ///////////////
   // Sekwencje //
   ///////////////

   // Konwertuje ciąg tekstowy na tablicę nut bądź wartości null.
   // Kropka w ciągu tekstowym staje się wartością null w tablicy i oznacza pauzę.
   function mkSequence(pattern) {
     return pattern.split("").map(value => {
      if (value == ".") {
        return null;
      } else {
        return value;
      }
     });
   }

   let drumPattern = {
     kick:  "x...x...",
     snare: "..x...x.",
     hiHat: "xxxxxxxx",
   };

   let hiHatSequence = new Tone.Sequence(time => {
     drums.hiHat.triggerAttackRelease("16n", time);
   }, mkSequence(drumPattern.hiHat), "8n");

   let snareSequence = new Tone.Sequence(time => {
     drums.snare.triggerAttackRelease("16n", time);
   }, mkSequence(drumPattern.snare), "8n");

   let kickSequence = new Tone.Sequence(time => {
     drums.kick.triggerAttackRelease(50, "16n", time);
   }, mkSequence(drumPattern.kick), "8n");
   --cięcie--
