The IDS is plotted as function of \(\theta \)  and energy \(E\) , with the latter along the axis coming out of the paper. Since the view point for this graph is from above, we encode the values of the energy in a color map. The abrupt changes in color correspond to the cases when \(E\)  resides inside the bulk spectral gaps, because in that case the 3-dimensional graph of the IDS shoots straight out of the paper. The striking observation is that these features are not random. Perhaps even more striking is that same patterns are seen if one repeats the calculations with a different dynamical matrix. The reason behind these facts is that the features seen in the IDS plots are not determined by the dynamical matrix but rather by the K-theory of the algebra of observables. Indeed, if \(P_G\)  represents the gap projection for a gap \(G\) , then \({\rm IDS}(G)\)  can be equivalently computed as the trace per area of \(P_G\) , \({\rm IDS}(G)={\mathcal {T}}(P_G)\) . K-theory for operator algebras[1]} classifies these projections up to stable homotopy and organizes them as an abelian group known as the \(K_0\) -group (see Supplementary Information). For the non-commutative \(s\) -torus, the \(K_0\) -group is generated by \(2^{s-1}\)  projections \([e_J]\) , where \(J\)  is a subset of indices drawn from \(\lbrace 1,\ldots ,s\rbrace \)  and the cardinal of \(J\)  is even. Now, the gap projection defines a class inside the \(K_0\) -group and we have the decomposition \([P_G]=\sum _{J} n_J [e_J]\)  into the generators. The integer numbers \(n_J\) , known as the gap labels,[2]}, [3]} represent the complete set of topological invariants that can be associated to a gap projection. They are related to the weak and strong Chern numbers (see Supplementary Information), in particular, \(n_{\lbrace 1,2,3,4\rbrace }\)  equals the 2nd-Chern number. Our task is to extract the gap labels for the patterned acoustic crystals and that information is already contained in Fig. REF . Indeed,
\({\rm IDS}(G)={\mathcal {T}}(P_G) = \sum _J n_J {\mathcal {T}}(e_J),\) 
