Files

copied
Last update 6 years 3 months by Olivier Gillet
Filesgridsresources
..
__init__.py
lookup_tables.py
resources.py
lookup_tables.py
#!/usr/bin/python2.5 # # Copyright 2012 Olivier Gillet. # # Author: Olivier Gillet (olivier@mutable-instruments.net) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # # ----------------------------------------------------------------------------- # # Lookup table definitions. import numpy lookup_tables = [] drum_map_nodes = [] """---------------------------------------------------------------------------- Drum map nodes ----------------------------------------------------------------------------""" nodes = [ [ 255, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 218, 0, 0, 0, 72, 0, 36, 0, 182, 0, 0, 0, 109, 0, 0, 0, 72, 0, 0, 0, 36, 0, 109, 0, 0, 0, 8, 0, 255, 0, 0, 0, 0, 0, 72, 0, 0, 0, 182, 0, 0, 0, 36, 0, 218, 0, 0, 0, 145, 0, 0, 0, 170, 0, 113, 0, 255, 0, 56, 0, 170, 0, 141, 0, 198, 0, 56, 0, 170, 0, 113, 0, 226, 0, 28, 0, 170, 0, 113, 0, 198, 0, 85, 0 ], [ 229, 0, 25, 0, 102, 0, 25, 0, 204, 0, 25, 0, 76, 0, 8, 0, 255, 0, 8, 0, 51, 0, 25, 0, 178, 0, 25, 0, 153, 0, 127, 0, 28, 0, 198, 0, 56, 0, 56, 0, 226, 0, 28, 0, 141, 0, 28, 0, 28, 0, 170, 0, 28, 0, 28, 0, 255, 0, 113, 0, 85, 0, 85, 0, 159, 0, 159, 0, 255, 0, 63, 0, 159, 0, 159, 0, 191, 0, 31, 0, 159, 0, 127, 0, 255, 0, 31, 0, 159, 0, 127, 0, 223, 0, 95, 0 ], [ 255, 0, 0, 0, 127, 0, 0, 0, 0, 0, 102, 0, 0, 0, 229, 0, 0, 0, 178, 0, 204, 0, 0, 0, 76, 0, 51, 0, 153, 0, 25, 0, 0, 0, 127, 0, 0, 0, 0, 0, 255, 0, 191, 0, 31, 0, 63, 0, 0, 0, 95, 0, 0, 0, 0, 0, 223, 0, 0, 0, 31, 0, 159, 0, 255, 0, 85, 0, 148, 0, 85, 0, 127, 0, 85, 0, 106, 0, 63, 0, 212, 0, 170, 0, 191, 0, 170, 0, 85, 0, 42, 0, 233, 0, 21, 0 ], [ 255, 0, 212, 0, 63, 0, 0, 0, 106, 0, 148, 0, 85, 0, 127, 0, 191, 0, 21, 0, 233, 0, 0, 0, 21, 0, 170, 0, 0, 0, 42, 0, 0, 0, 0, 0, 141, 0, 113, 0, 255, 0, 198, 0, 0, 0, 56, 0, 0, 0, 85, 0, 56, 0, 28, 0, 226, 0, 28, 0, 170, 0, 56, 0, 255, 0, 231, 0, 255, 0, 208, 0, 139, 0, 92, 0, 115, 0, 92, 0, 185, 0, 69, 0, 46, 0, 46, 0, 162, 0, 23, 0, 208, 0, 46, 0 ], [ 255, 0, 31, 0, 63, 0, 63, 0, 127, 0, 95, 0, 191, 0, 63, 0, 223, 0, 31, 0, 159, 0, 63, 0, 31, 0, 63, 0, 95, 0, 31, 0, 8, 0, 0, 0, 95, 0, 63, 0, 255, 0, 0, 0, 127, 0, 0, 0, 8, 0, 0, 0, 159, 0, 63, 0, 255, 0, 223, 0, 191, 0, 31, 0, 76, 0, 25, 0, 255, 0, 127, 0, 153, 0, 51, 0, 204, 0, 102, 0, 76, 0, 51, 0, 229, 0, 127, 0, 153, 0, 51, 0, 178, 0, 102, 0 ], [ 255, 0, 51, 0, 25, 0, 76, 0, 0, 0, 0, 0, 102, 0, 0, 0, 204, 0, 229, 0, 0, 0, 178, 0, 0, 0, 153, 0, 127, 0, 8, 0, 178, 0, 127, 0, 153, 0, 204, 0, 255, 0, 0, 0, 25, 0, 76, 0, 102, 0, 51, 0, 0, 0, 0, 0, 229, 0, 25, 0, 25, 0, 204, 0, 178, 0, 102, 0, 255, 0, 76, 0, 127, 0, 76, 0, 229, 0, 76, 0, 153, 0, 102, 0, 255, 0, 25, 0, 127, 0, 51, 0, 204, 0, 51, 0 ], [ 255, 0, 0, 0, 223, 0, 0, 0, 31, 0, 8, 0, 127, 0, 0, 0, 95, 0, 0, 0, 159, 0, 0, 0, 95, 0, 63, 0, 191, 0, 0, 0, 51, 0, 204, 0, 0, 0, 102, 0, 255, 0, 127, 0, 8, 0, 178, 0, 25, 0, 229, 0, 0, 0, 76, 0, 204, 0, 153, 0, 51, 0, 25, 0, 255, 0, 226, 0, 255, 0, 255, 0, 198, 0, 28, 0, 141, 0, 56, 0, 170, 0, 56, 0, 85, 0, 28, 0, 170, 0, 28, 0, 113, 0, 56, 0 ], [ 223, 0, 0, 0, 63, 0, 0, 0, 95, 0, 0, 0, 223, 0, 31, 0, 255, 0, 0, 0, 159, 0, 0, 0, 127, 0, 31, 0, 191, 0, 31, 0, 0, 0, 0, 0, 109, 0, 0, 0, 218, 0, 0, 0, 182, 0, 72, 0, 8, 0, 36, 0, 145, 0, 36, 0, 255, 0, 8, 0, 182, 0, 72, 0, 255, 0, 72, 0, 218, 0, 36, 0, 218, 0, 0, 0, 145, 0, 0, 0, 255, 0, 36, 0, 182, 0, 36, 0, 182, 0, 0, 0, 109, 0, 0, 0 ], [ 255, 0, 0, 0, 218, 0, 0, 0, 36, 0, 0, 0, 218, 0, 0, 0, 182, 0, 109, 0, 255, 0, 0, 0, 0, 0, 0, 0, 145, 0, 72, 0, 159, 0, 0, 0, 31, 0, 127, 0, 255, 0, 31, 0, 0, 0, 95, 0, 8, 0, 0, 0, 191, 0, 31, 0, 255, 0, 31, 0, 223, 0, 63, 0, 255, 0, 31, 0, 63, 0, 31, 0, 95, 0, 31, 0, 63, 0, 127, 0, 159, 0, 31, 0, 63, 0, 31, 0, 223, 0, 223, 0, 191, 0, 191, 0 ], [ 226, 0, 28, 0, 28, 0, 141, 0, 8, 0, 8, 0, 255, 0, 8, 0, 113, 0, 28, 0, 198, 0, 85, 0, 56, 0, 198, 0, 170, 0, 28, 0, 8, 0, 95, 0, 8, 0, 8, 0, 255, 0, 63, 0, 31, 0, 223, 0, 8, 0, 31, 0, 191, 0, 8, 0, 255, 0, 127, 0, 127, 0, 159, 0, 115, 0, 46, 0, 255, 0, 185, 0, 139, 0, 23, 0, 208, 0, 115, 0, 231, 0, 69, 0, 255, 0, 162, 0, 139, 0, 115, 0, 231, 0, 92, 0 ], [ 145, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 255, 0, 109, 0, 72, 0, 218, 0, 0, 0, 0, 0, 36, 0, 0, 0, 182, 0, 0, 0, 0, 0, 127, 0, 159, 0, 127, 0, 159, 0, 191, 0, 223, 0, 63, 0, 255, 0, 95, 0, 31, 0, 95, 0, 31, 0, 8, 0, 63, 0, 8, 0, 255, 0, 0, 0, 145, 0, 0, 0, 182, 0, 109, 0, 109, 0, 109, 0, 218, 0, 0, 0, 72, 0, 0, 0, 182, 0, 72, 0, 182, 0, 36, 0 ], [ 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 218, 0, 72, 36, 0, 0, 182, 0, 0, 0, 145, 109, 0, 0, 127, 0, 0, 0, 42, 0, 212, 0, 0, 212, 0, 0, 212, 0, 0, 0, 0, 0, 42, 0, 0, 0, 255, 0, 0, 0, 170, 170, 127, 85, 145, 0, 109, 109, 218, 109, 72, 0, 145, 0, 72, 0, 218, 0, 109, 0, 182, 0, 109, 0, 255, 0, 72, 0, 182, 109, 36, 109, 255, 109, 109, 0 ], [ 255, 0, 0, 0, 255, 0, 191, 0, 0, 0, 0, 0, 95, 0, 63, 0, 31, 0, 0, 0, 223, 0, 223, 0, 0, 0, 8, 0, 159, 0, 127, 0, 0, 0, 85, 0, 56, 0, 28, 0, 255, 0, 28, 0, 0, 0, 226, 0, 0, 0, 170, 0, 56, 0, 113, 0, 198, 0, 0, 0, 113, 0, 141, 0, 255, 0, 42, 0, 233, 0, 63, 0, 212, 0, 85, 0, 191, 0, 106, 0, 191, 0, 21, 0, 170, 0, 8, 0, 170, 0, 127, 0, 148, 0, 148, 0 ], [ 255, 0, 0, 0, 0, 0, 63, 0, 191, 0, 95, 0, 31, 0, 223, 0, 255, 0, 63, 0, 95, 0, 63, 0, 159, 0, 0, 0, 0, 0, 127, 0, 72, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 72, 0, 72, 0, 36, 0, 8, 0, 218, 0, 182, 0, 145, 0, 109, 0, 255, 0, 162, 0, 231, 0, 162, 0, 231, 0, 115, 0, 208, 0, 139, 0, 185, 0, 92, 0, 185, 0, 46, 0, 162, 0, 69, 0, 162, 0, 23, 0 ], [ 255, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 204, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 8, 0, 36, 0, 255, 0, 0, 0, 182, 0, 8, 0, 0, 0, 0, 0, 72, 0, 109, 0, 145, 0, 0, 0, 255, 0, 218, 0, 212, 0, 8, 0, 170, 0, 0, 0, 127, 0, 0, 0, 85, 0, 8, 0, 255, 0, 8, 0, 170, 0, 0, 0, 127, 0, 0, 0, 42, 0, 8, 0 ], [ 255, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 182, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 145, 0, 109, 0, 36, 0, 36, 0, 0, 0, 0, 0, 255, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 218, 0, 0, 0, 145, 0, 72, 72, 255, 0, 28, 0, 226, 0, 56, 0, 198, 0, 0, 0, 0, 0, 28, 28, 170, 0, 0, 0, 141, 0, 0, 0, 113, 0, 0, 0, 85, 85, 85, 85 ], [ 255, 0, 0, 0, 0, 0, 95, 0, 0, 0, 127, 0, 0, 0, 0, 0, 223, 0, 95, 0, 63, 0, 31, 0, 191, 0, 0, 0, 159, 0, 0, 0, 0, 0, 31, 0, 255, 0, 0, 0, 0, 0, 95, 0, 223, 0, 0, 0, 0, 0, 63, 0, 191, 0, 0, 0, 0, 0, 0, 0, 159, 0, 127, 0, 141, 0, 28, 0, 28, 0, 28, 0, 113, 0, 8, 0, 8, 0, 8, 0, 255, 0, 0, 0, 226, 0, 0, 0, 198, 0, 56, 0, 170, 0, 85, 0 ], [ 255, 0, 0, 0, 8, 0, 0, 0, 182, 0, 0, 0, 72, 0, 0, 0, 218, 0, 0, 0, 36, 0, 0, 0, 145, 0, 0, 0, 109, 0, 0, 0, 0, 0, 51, 25, 76, 25, 25, 0, 153, 0, 0, 0, 127, 102, 178, 0, 204, 0, 0, 0, 0, 0, 255, 0, 0, 0, 102, 0, 229, 0, 76, 0, 113, 0, 0, 0, 141, 0, 85, 0, 0, 0, 0, 0, 170, 0, 0, 0, 56, 28, 255, 0, 0, 0, 0, 0, 198, 0, 0, 0, 226, 0, 0, 0 ], [ 255, 0, 8, 0, 28, 0, 28, 0, 198, 0, 56, 0, 56, 0, 85, 0, 255, 0, 85, 0, 113, 0, 113, 0, 226, 0, 141, 0, 170, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 0, 0, 0, 255, 0, 0, 0, 255, 0, 127, 0, 0, 0, 85, 0, 0, 0, 212, 0, 0, 0, 212, 0, 42, 0, 170, 0, 0, 0, 127, 0, 0, 0, 0, 0 ], [ 255, 0, 0, 0, 0, 0, 218, 0, 182, 0, 0, 0, 0, 0, 145, 0, 145, 0, 36, 0, 0, 0, 109, 0, 109, 0, 0, 0, 72, 0, 36, 0, 0, 0, 0, 0, 109, 0, 8, 0, 72, 0, 0, 0, 255, 0, 182, 0, 0, 0, 0, 0, 145, 0, 8, 0, 36, 0, 8, 0, 218, 0, 182, 0, 255, 0, 0, 0, 0, 0, 226, 0, 85, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 170, 0, 56, 0, 198, 0, 0, 0, 113, 0, 28, 0 ], [ 255, 0, 0, 0, 113, 0, 0, 0, 198, 0, 56, 0, 85, 0, 28, 0, 255, 0, 0, 0, 226, 0, 0, 0, 170, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 145, 0, 109, 0, 218, 0, 36, 0, 182, 0, 72, 0, 72, 0, 255, 0, 0, 0, 0, 0, 109, 0, 36, 0, 36, 0, 145, 0, 0, 0, 72, 0, 72, 0, 182, 0, 0, 0, 72, 0, 72, 0, 218, 0, 0, 0, 109, 0, 109, 0, 255, 0, 0, 0 ], [ 255, 0, 0, 0, 218, 0, 0, 0, 145, 0, 0, 0, 36, 0, 0, 0, 218, 0, 0, 0, 36, 0, 0, 0, 182, 0, 72, 0, 0, 0, 109, 0, 0, 0, 0, 0, 8, 0, 0, 0, 255, 0, 85, 0, 212, 0, 42, 0, 0, 0, 0, 0, 8, 0, 0, 0, 85, 0, 170, 0, 127, 0, 42, 0, 109, 0, 109, 0, 255, 0, 0, 0, 72, 0, 72, 0, 218, 0, 0, 0, 145, 0, 182, 0, 255, 0, 0, 0, 36, 0, 36, 0, 218, 0, 8, 0 ], [ 255, 0, 0, 0, 42, 0, 0, 0, 212, 0, 0, 0, 8, 0, 212, 0, 170, 0, 0, 0, 85, 0, 0, 0, 212, 0, 8, 0, 127, 0, 8, 0, 255, 0, 85, 0, 0, 0, 0, 0, 226, 0, 85, 0, 0, 0, 198, 0, 0, 0, 141, 0, 56, 0, 0, 0, 170, 0, 28, 0, 0, 0, 113, 0, 113, 0, 56, 0, 255, 0, 0, 0, 85, 0, 56, 0, 226, 0, 0, 0, 0, 0, 170, 0, 0, 0, 141, 0, 28, 0, 28, 0, 198, 0, 28, 0 ], [ 255, 0, 0, 0, 229, 0, 0, 0, 204, 0, 204, 0, 0, 0, 76, 0, 178, 0, 153, 0, 51, 0, 178, 0, 178, 0, 127, 0, 102, 51, 51, 25, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 255, 0, 0, 31, 0, 0, 8, 0, 0, 0, 191, 159, 127, 95, 95, 0, 223, 0, 63, 0, 255, 0, 255, 0, 204, 204, 204, 204, 0, 0, 51, 51, 51, 51, 0, 0, 204, 0, 204, 0, 153, 153, 153, 153, 153, 0, 0, 0, 102, 102, 102, 102 ], [ 170, 0, 0, 0, 0, 255, 0, 0, 198, 0, 0, 0, 0, 28, 0, 0, 141, 0, 0, 0, 0, 226, 0, 0, 56, 0, 0, 113, 0, 85, 0, 0, 255, 0, 0, 0, 0, 113, 0, 0, 85, 0, 0, 0, 0, 226, 0, 0, 141, 0, 0, 8, 0, 170, 56, 56, 198, 0, 0, 56, 0, 141, 28, 0, 255, 0, 0, 0, 0, 191, 0, 0, 159, 0, 0, 0, 0, 223, 0, 0, 95, 0, 0, 0, 0, 63, 0, 0, 127, 0, 0, 0, 0, 31, 0, 0 ] ] for i, p in enumerate(nodes): drum_map_nodes.append(('%d' % i, p)) """---------------------------------------------------------------------------- Euclidean patterns ----------------------------------------------------------------------------""" def Flatten(l): if hasattr(l, 'pop'): for item in l: for j in Flatten(item): yield j else: yield l def EuclidianPattern(k, n): pattern = [[1]] * k + [[0]] * (n - k) while k: cut = min(k, len(pattern) - k) k, pattern = cut, [pattern[i] + pattern[k + i] for i in xrange(cut)] + \ pattern[cut:k] + pattern[k + cut:] return pattern table = [] for num_steps in xrange(1, 33): for num_notes in xrange(32): num_notes = int(round(float(num_notes) / 31 * num_steps)) bitmask = 0 for i, bit in enumerate(Flatten(EuclidianPattern(num_notes, num_steps))): if bit: bitmask |= (1 << i) table.append(bitmask) lookup_tables32 = [('euclidean', table)] """---------------------------------------------------------------------------- Phase increment for tempo. ----------------------------------------------------------------------------""" control_rate = 8000 width = 1 << 32 tempo_values = numpy.arange(0, 512.0) lookup_tables32.append( ('tempo_phase_increment', width * tempo_values * 8 / (60 * control_rate) / 2) )
Report a bug