class_docstr: Almost MusicLM style pattern. This is equivalent to full flattening
  but in a different order.
  
  Args:
      n_q (int): Number of codebooks.
      group_by (int): Number of codebooks to group together.
class_docstr_tok: ["Almost","MusicLM","style","pattern",".","This","is","equivalent","to","full","flattening","but","in","a","different","order",".","Args",":","n_q","(","int",")",":","Number","of","codebooks",".","group_by","(","int",")",":","Number","of","codebooks","to","group","together","."]
code: def get_pattern(self, timesteps: int) -> Pattern:
      out: PatternLayout = [[]]
      for offset in range(0, self.n_q, self.group_by):
          for t in range(timesteps):
              for q in range(offset, offset + self.group_by):
                  out.append([LayoutCoord(t, q)])
      return Pattern(out, n_q=self.n_q, timesteps=timesteps)
  
imports: from collections import namedtuple
  from dataclasses import dataclass
  from functools import lru_cache
  import logging
  import typing
  from abc import ABC, abstractmethod
  import torch
label_desc: Use image node_id 2 for calling the MusicLMPattern obj's underlying member method code with example usage: obj.get_pattern(timesteps) and returns: Pattern