| 1 | Inicialize o ABT em 2 passos: |
|---|
| 2 | |
|---|
| 3 | 1) Inicie o ChucK em loop no diretorio do ABT: |
|---|
| 4 | # chuck --loop |
|---|
| 5 | |
|---|
| 6 | 2) Em outro terminal, inicie o ABeatTracker: |
|---|
| 7 | |
|---|
| 8 | # python abt.py |
|---|
| 9 | |
|---|
| 10 | ou, preferencialmente, utilize o ipython para que tenhamos facilidades como recorrer a comandos anteriores: |
|---|
| 11 | |
|---|
| 12 | # ipython abt.py |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | O ABT deve estar pronto para disparar as macros. |
|---|
| 16 | Basta apertar <enter> para que o ABT inicie o playback de alguma macro padrao. |
|---|
| 17 | |
|---|
| 18 | ------------------------------------------------------------------------ |
|---|
| 19 | Especificacao: |
|---|
| 20 | |
|---|
| 21 | O ABT eh um aplicativo dedicado `a execussao ritmica de samples. |
|---|
| 22 | |
|---|
| 23 | Conceitualmente, o ABT executa linhas ritmicas definidas atraves de macros. |
|---|
| 24 | Estas macros sao escolhidas em tempo real atraves de um interpretador interativo Python que |
|---|
| 25 | recodifica estas escolhas para execussao atraves de scripts ChucK, uma linguagem dedicada a execussao |
|---|
| 26 | de audio em tempo real. |
|---|
| 27 | |
|---|
| 28 | Cada linha ritmica eh definida por uma sequencia de caracteres que especificam seus atributos. |
|---|
| 29 | Estes nao precisam ser especificados individualmente, sendo utilizada a opcao padrao para |
|---|
| 30 | cada atributo nao especificado. |
|---|
| 31 | |
|---|
| 32 | Para mais informacoes, veja os dicionarios de comandos a seguir e as notas de funcionamento abaixo. |
|---|
| 33 | |
|---|
| 34 | ------------------------------------------------------------------------ |
|---|
| 35 | Dicionario de comandos primarios: |
|---|
| 36 | |
|---|
| 37 | 1) Sair do ABT: |
|---|
| 38 | q -> sai do ABT |
|---|
| 39 | |
|---|
| 40 | 2) Ajuda: |
|---|
| 41 | h -> printa o menu de comandos |
|---|
| 42 | |
|---|
| 43 | 3) Sincronizacao: |
|---|
| 44 | s -> sincroniza o ABT com alguma pulsacao especifica. |
|---|
| 45 | |
|---|
| 46 | 4) Remover todas as linhas ritmicas: |
|---|
| 47 | r -> remove todas as linhas ritmicas. |
|---|
| 48 | |
|---|
| 49 | 5) Consulta das linhas em execussao: |
|---|
| 50 | l -> printa as linhas em execussao e seus atributos. |
|---|
| 51 | |
|---|
| 52 | 6) Consulta estado da execussao: |
|---|
| 53 | e -> printa a duracao de cada tempo e o numero de BPM. |
|---|
| 54 | o ganho RMS utilizado. |
|---|
| 55 | a variacao do ganho RMS. |
|---|
| 56 | a variacao da velocidade de playback. |
|---|
| 57 | o numero de linhas. |
|---|
| 58 | o tempo decorrido de execussao. |
|---|
| 59 | |
|---|
| 60 | 7) Consulta contagem de shreds: |
|---|
| 61 | p -> printa a contagem de shreds. isso eh especifico da linguagem ChucK e a principio nao precisa ser entendido ou |
|---|
| 62 | utilizado. Este recurso cabe aqui mais como um recurso para debug e acompanhamento do funcionamento. |
|---|
| 63 | ------------------------------------------------------------------------ |
|---|
| 64 | Dicionario de atributos globais da execussao: |
|---|
| 65 | |
|---|
| 66 | 1) Pulsacao, pulso ou duracao de cada tempo: |
|---|
| 67 | T200 -> cada tempo tera a duracao em milisegundos que segue a letra T (no caso 200 milisegundos) |
|---|
| 68 | B70 -> 70 BPM. |
|---|
| 69 | |
|---|
| 70 | 2) Ambito de variacao randomica de ganho: |
|---|
| 71 | VG0.2 -> variacao randomica uniforme no intervalo de [-0.2,0.2] para o ganho. |
|---|
| 72 | |
|---|
| 73 | 3) Ambito de variacao randomica de velocidade de playback dos samples: |
|---|
| 74 | VR0.2 -> variacao randomica uniforme no intervalo de [-0.2,0.2] para a velocidade de playback dos samples. |
|---|
| 75 | |
|---|
| 76 | 4) Ganho: |
|---|
| 77 | G0.8 -> volume de 0.8 peak. |
|---|
| 78 | |
|---|
| 79 | 5) Velocidade de playback: |
|---|
| 80 | R1.3 -> velocidade de playback de 1.3 |
|---|
| 81 | |
|---|
| 82 | 6) Remocao seletiva de linhas ritmicas: |
|---|
| 83 | -P -> remove a linha cujo identificador eh "R". Multiplas linhas podem ser removidas em um so comando assim: |
|---|
| 84 | -P O U A d -> remove as linhas cujos identificadores sao "P", "O", "U", "A" e "d". |
|---|
| 85 | |
|---|
| 86 | 7) listagem dos samples prontos para serem carregados: |
|---|
| 87 | s -> lista os samples |
|---|
| 88 | |
|---|
| 89 | ------------------------------------------------------------------------ |
|---|
| 90 | Dicionario de atributos basicos definidos ou planejados para linhas ritmicas: |
|---|
| 91 | |
|---|
| 92 | 0) Identificacao da linha: |
|---|
| 93 | a..z, A..Z -> qualquer caracter ascii pode ser utilizado como identificador da linha. |
|---|
| 94 | Caso a linha ja tenha sido definida anteriormente, so serao alterados os atributos especificados. |
|---|
| 95 | PADRAO: Z |
|---|
| 96 | obs: este eh o unico atributo que requer entrada ordenada. Ele deve encabecar um comando que se remete a uma linha ritmica. |
|---|
| 97 | Os outros atributos podem vir em quaisquer ordem. |
|---|
| 98 | |
|---|
| 99 | 1) Padrao Ritmico: |
|---|
| 100 | aapa ap a a -> "a" para ataque, "p" para pausa, " " separa os tempos. |
|---|
| 101 | adicao posterior de "-" para continuar a nota sem que ocorra um novo ataque. |
|---|
| 102 | PADRAO: a |
|---|
| 103 | |
|---|
| 104 | 2) Numero de execussoes da celula: |
|---|
| 105 | 1...100 -> quantas vezes a celula deve ser executada. |
|---|
| 106 | loop, l -> loop infinito. |
|---|
| 107 | PADRAO: loop |
|---|
| 108 | |
|---|
| 109 | 3) Escolha do sample: |
|---|
| 110 | arquivo.wav -> arquivo WAV PCM 16bits, 44100kHz para execussao da linha definida |
|---|
| 111 | PADRAO: Agostinho-cell.wav |
|---|
| 112 | |
|---|
| 113 | 4) Modo de leitura do sample: |
|---|
| 114 | walk-sample, ws -> sample eh lido inteiramente e em loop. |
|---|
| 115 | walk-pattern, wp -> sample eh lido continuamente para o padrao, depois volta e se repete. |
|---|
| 116 | sonoridade igual para cada repeticao da celula. |
|---|
| 117 | always-rewind, ar -> leitura da amostra eh reiniciada a cada ataque. |
|---|
| 118 | PADRAO: walk-sample |
|---|
| 119 | |
|---|
| 120 | 4b) Modo de leitura do sample, tratamento dos silencios: |
|---|
| 121 | silence-rest, si -> nos silencios, a leitura da amostra continua (porem em com volume zero). |
|---|
| 122 | stop-rest, st -> nos silencios a leitura do sample para. |
|---|
| 123 | PADRAO: silence-rest |
|---|
| 124 | |
|---|
| 125 | 5) Ganho da linha: |
|---|
| 126 | g0.4 -> ganho de 0.4 |
|---|
| 127 | |
|---|
| 128 | 6) Variacao de ganho da linha: |
|---|
| 129 | vg.3 -> variacao de ganho da linha. |
|---|
| 130 | |
|---|
| 131 | 7) Velocidade de playback |
|---|
| 132 | r1 -> velocidade normal de playback do sample |
|---|
| 133 | |
|---|
| 134 | 8) Variacao da velocidade de playback do sample |
|---|
| 135 | vr0.2 -> [-0.2,+0.2] de velocidade de playback da amostra |
|---|
| 136 | |
|---|
| 137 | 9) Encaixe da amostra em número específico de tempos: |
|---|
| 138 | P4 -> a amostra será tocada como um todo em 4 tempos. |
|---|
| 139 | --------------------------------------------------------------- |
|---|
| 140 | Dicionario de atributos complementares definidos ou planejados para linhas ritmicas: |
|---|
| 141 | 1) Linha melodica: |
|---|
| 142 | 7 0 1 0 7 6 -> Definida atraves de uma relacao de semitons que implica em relacoes na velocidade de playback da amostra. |
|---|
| 143 | Cada nota especificada eh relacionada a um ataque do padrao ritmico. |
|---|
| 144 | |
|---|
| 145 | 2) Permutacao: (5) |
|---|
| 146 | perm ritmica (q opera sobre as celulas ou os tempos ritmicos). -> ainda nao implementado. |
|---|
| 147 | |
|---|
| 148 | --------------------------------------------------------------- |
|---|
| 149 | Notas de funcionamento: |
|---|
| 150 | |
|---|
| 151 | * Quando uma linha ritmica for diparada sem nenhuma especificacao (apenas acionando <enter>), |
|---|
| 152 | o ABT utilizara' a lista de auto identificadores. Esta se encontra na classe C do arquivo abt_data.py. |
|---|
| 153 | Note que se mais de 4 linhas ritmicas forem adicionadas desta forma, o ABT levantara' erro. |
|---|
| 154 | Para adicionar uma linha padrao, o melhor eh escrever o identificador seguido de um espaco " ". |
|---|
| 155 | |
|---|
| 156 | * o ABT distigue 3 tipos de comandos: |
|---|
| 157 | 1) Comandos primarios: de uma sso letra. estes sao os comandos primarios e devem ser chamados com uma unica letra, sem espaco, e <enter> |
|---|
| 158 | 2) Mudanca de variavel global: Comando unico. Comecam com uma ou duas letras a as quais se seguem um novo valor da variavel. |
|---|
| 159 | 3) Linha ritmica: Linha de comandos. Comecam com uma letra (identificador) seguida de espaco e das especificacoes da linha. |
|---|
| 160 | |
|---|
| 161 | Excessao: Remocao de linhas ritmicas. Sinal de menos "-" seguido de um ou mais caracteres identificadores de linha ritmica separados por espaco. |
|---|
| 162 | |
|---|
| 163 | Nota: Caso seja requisitado o comando nulo (simplesmente <enter>), o ABT dispara uma linha ritmica com todos os atributos padroes. |
|---|
| 164 | |
|---|
| 165 | * Multiplos comandos podem ser executados de uma so vez se separados pelo caracter "|". |
|---|
| 166 | |
|---|
| 167 | --------------------------------------------------------------- |
|---|
| 168 | Recentes: |
|---|
| 169 | 02/02/2010 |
|---|
| 170 | |
|---|
| 171 | adicionado comando PX (P2, P4) q faz a amostra inteira tocar, na duração exata de X pulsos. útil para encaixar amostras que já possuem um ritmo próprio e, além disso, possibilitando poliritmias diversas. |
|---|
| 172 | |
|---|
| 173 | adicionado recurso para escrever, carregar e disparar presets. arquivo de texto com os presets: presets.txt. formatação é auto-explicativa. qqr coisa me escreva. |
|---|
| 174 | |
|---|
| 175 | 20/02/2010 |
|---|
| 176 | o comando "s" agora lista os arquivos de áudio que podem ser carregados (presentes no diretório samples/) |
|---|
| 177 | |
|---|
| 178 | 24/04/2010 |
|---|
| 179 | Empreitada para usar somente OSC, sem recorrer mais ao bash. |
|---|
| 180 | |
|---|
| 181 | 1) Fazendo a comunicação via OSC e implementando o arquivo ABT.ck que possui todas as funcionalidades dos outros arquivos .ck, dispensando todo aquele monte de arquivos. |
|---|
| 182 | |
|---|
| 183 | 2) Alterando abt.py e abt_funcs.py |
|---|
| 184 | |
|---|
| 185 | |
|---|
| 186 | --------------------------------------------------------------- |
|---|
| 187 | ToDo: |
|---|
| 188 | |
|---|
| 189 | * Mecanismo de sincronizacao |
|---|
| 190 | |
|---|
| 191 | * Alteracao das linhas ritmicas. inclusive mutar, etc. |
|---|
| 192 | |
|---|
| 193 | * variável global índice de incidência. (individual tamb) |
|---|
| 194 | |
|---|
| 195 | * fazer um sampler para a função PX, pois se houver algum VR, o PX vai sair do sync. |
|---|
| 196 | --------------------------------------------------------------- |
|---|
| 197 | Notas Técnicas (20/02/2010): |
|---|
| 198 | |
|---|
| 199 | O ABT é constituído por poucos arquivos, a saber: |
|---|
| 200 | (obs: terminação ".py" arquivo python,terminação ".ck" arquivo ChucK, terminação ".txt" arquivo de texto) |
|---|
| 201 | 1) abt.py: inicializa o ABT e inicia o loop principal, que consiste em esperar comandos e acionar as funções do ABT de acordo com os comandos recebidos, encaminha o resultado para processamento no ChucK |
|---|
| 202 | 2) abt_funcs.py: possui todas as funções de execussão do ABT. Isso inclui o sistematizador das características de cada linha e as funções específicas para reconhecer e codificar cada linha. |
|---|
| 203 | 3) abt_data.py: declara a classe C que possui as variáveis do ABT utilizadas por diversas rotinas. Também carrega os presets. |
|---|
| 204 | |
|---|
| 205 | 4) scentral.ck: declara a classe pública SCentral que possui as variáveis utilizadas pelo arquivo sampler.ck e alteráveis via outros scripts. |
|---|
| 206 | 5) sampler.ck: é o tocador de arquivos de áudio utilizado pelo ABT. É capaz de desempacotar e interpretar as informações enviadas pelo abt.py e aplicá-las à linha rítmica. |
|---|
| 207 | 6) rec-auto.ck: grava automaticamente a execussão gerando um arquivo de áudio com a seguinte formatação: "chuck-session(Thu Feb 4 10h42m24 2010).wav" |
|---|
| 208 | 7) setG.ck, setR.ck, setT.ck, setVG.ck, setVR.ck, são utilizados para modificar o valor do ganho, da velocidade de playback, da duração do tempo, da variação do ganho, da variação da velocidade de playback respectivamente. |
|---|
| 209 | |
|---|
| 210 | 8) presets.txt: contém os presets já criados |
|---|
| 211 | 9) sessoes-memoraveis.txt: contém o registro escrito de algumas boas sessões. |
|---|
| 212 | |
|---|
| 213 | 10) samples/*: arquivos de áudio para serem utilizados nas execussões. (pode adicionar os arquivos que quiser) |
|---|
| 214 | 11) ABD/*: arquivos ligados à detecção de células rítmicas e pulsações. |
|---|