source: ABeatDetector/README_ABT.txt @ 385

Revision 332, 9.5 KB checked in by ttm, 9 years ago (diff)

ABT agora roda com OSC, melhor sincronia e capacidades. nova fase de testes iniciada.

M abt_data.py
M abt_funcs.py
M abt.py
M README_ABT.txt
M ABT.ck

Line 
1Inicialize o ABT em 2 passos:
2
31) Inicie o ChucK em loop no diretorio do ABT:
4# chuck --loop
5
62) Em outro terminal, inicie o ABeatTracker:
7
8# python abt.py
9
10ou, preferencialmente, utilize o ipython para que tenhamos facilidades como recorrer a comandos anteriores:
11
12# ipython abt.py
13
14
15O ABT deve estar pronto para disparar as macros.
16Basta apertar <enter> para que o ABT inicie o playback de alguma macro padrao.
17
18------------------------------------------------------------------------
19Especificacao:
20
21O ABT eh um aplicativo dedicado `a execussao ritmica de samples.
22
23Conceitualmente, o ABT executa linhas ritmicas definidas atraves de macros.
24Estas macros sao escolhidas em tempo real atraves de um interpretador interativo Python que
25recodifica estas escolhas para execussao atraves de scripts ChucK, uma linguagem dedicada a execussao
26de audio em tempo real.
27
28Cada linha ritmica eh definida por uma sequencia de caracteres que especificam seus atributos.
29Estes nao precisam ser especificados individualmente, sendo utilizada a opcao padrao para
30cada atributo nao especificado.
31
32Para mais informacoes, veja os dicionarios de comandos a seguir e as notas de funcionamento abaixo.
33
34------------------------------------------------------------------------
35Dicionario de comandos primarios:
36
371) Sair do ABT:
38q -> sai do ABT
39
402) Ajuda:
41h -> printa o menu de comandos
42
433) Sincronizacao:
44s -> sincroniza o ABT com alguma pulsacao especifica.
45
464) Remover todas as linhas ritmicas:
47r -> remove todas as linhas ritmicas.
48
495) Consulta das linhas em execussao:
50l -> printa as linhas em execussao e seus atributos.
51
526) Consulta estado da execussao:
53e -> printa a duracao de cada tempo e o numero de BPM.
54o ganho RMS utilizado.
55a variacao do ganho RMS.
56a variacao da velocidade de playback.
57o numero de linhas.
58o tempo decorrido de execussao.
59
607) Consulta contagem de shreds:
61p -> printa a contagem de shreds. isso eh especifico da linguagem ChucK e a principio nao precisa ser entendido ou
62utilizado. Este recurso cabe aqui mais como um recurso para debug e acompanhamento do funcionamento.
63------------------------------------------------------------------------
64Dicionario de atributos globais da execussao:
65
661) Pulsacao, pulso ou duracao de cada tempo:
67T200 -> cada tempo tera a duracao em milisegundos que segue a letra T (no caso 200 milisegundos)
68B70 -> 70 BPM.
69
702) Ambito de variacao randomica de ganho:
71VG0.2 -> variacao randomica uniforme no intervalo de [-0.2,0.2] para o ganho.
72
733) Ambito de variacao randomica de velocidade de playback dos samples:
74VR0.2 -> variacao randomica uniforme no intervalo de [-0.2,0.2] para a velocidade de playback dos samples.
75
764) Ganho:
77G0.8 -> volume de 0.8 peak.
78
795) Velocidade de playback:
80R1.3 -> velocidade de playback de 1.3
81
826) 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
867) listagem dos samples prontos para serem carregados:
87s -> lista os samples
88 
89------------------------------------------------------------------------
90Dicionario de atributos basicos definidos ou planejados para linhas ritmicas:
91
920) Identificacao da linha:
93a..z, A..Z -> qualquer caracter ascii pode ser utilizado como identificador da linha.
94Caso a linha ja tenha sido definida anteriormente, so serao alterados os atributos especificados.
95PADRAO: Z
96obs: este eh o unico atributo que requer entrada ordenada. Ele deve encabecar um comando que se remete a uma linha ritmica.
97Os outros atributos podem vir em quaisquer ordem.
98
991) Padrao Ritmico:
100aapa ap a a -> "a" para ataque, "p" para pausa, " " separa os tempos.
101adicao posterior de "-" para continuar a nota sem que ocorra um novo ataque.
102PADRAO: a
103
1042) Numero de execussoes da celula:
1051...100 -> quantas vezes a celula deve ser executada.
106loop, l -> loop infinito.
107PADRAO: loop
108
1093) Escolha do sample:
110arquivo.wav -> arquivo WAV PCM 16bits, 44100kHz para execussao da linha definida
111PADRAO: Agostinho-cell.wav
112
1134) Modo de leitura do sample:
114walk-sample, ws -> sample eh lido inteiramente e em loop.
115walk-pattern, wp -> sample eh lido continuamente para o padrao, depois volta e se repete.
116sonoridade igual para cada repeticao da celula.
117always-rewind, ar -> leitura da amostra eh reiniciada a cada ataque.
118PADRAO: walk-sample
119
1204b) Modo de leitura do sample, tratamento dos silencios:
121silence-rest, si -> nos silencios, a leitura da amostra continua (porem em com volume zero).
122stop-rest, st -> nos silencios a leitura do sample para.
123PADRAO: silence-rest
124
1255) Ganho da linha:
126g0.4 -> ganho de 0.4
127
1286) Variacao de ganho da linha:
129vg.3 -> variacao de ganho da linha.
130
1317) Velocidade de playback
132r1 -> velocidade normal de playback do sample
133
1348) Variacao da velocidade de playback do sample
135vr0.2 -> [-0.2,+0.2] de velocidade de playback da amostra
136
1379) Encaixe da amostra em número específico de tempos:
138P4 -> a amostra será tocada como um todo em 4 tempos.
139---------------------------------------------------------------
140Dicionario de atributos complementares definidos ou planejados para linhas ritmicas:
1411) Linha melodica:
1427 0 1 0 7 6 -> Definida atraves de uma relacao de semitons que implica em relacoes na velocidade de playback da amostra.
143Cada nota especificada eh relacionada a um ataque do padrao ritmico.
144
1452) Permutacao: (5)
146perm ritmica (q opera sobre as celulas ou os tempos ritmicos). -> ainda nao implementado.
147
148---------------------------------------------------------------
149Notas de funcionamento:
150
151* Quando uma linha ritmica for diparada sem nenhuma especificacao (apenas acionando <enter>),
152o ABT utilizara' a lista de auto identificadores. Esta se encontra na classe C do arquivo abt_data.py.
153Note que se mais de 4 linhas ritmicas forem adicionadas desta forma, o ABT levantara' erro.
154Para adicionar uma linha padrao, o melhor eh escrever o identificador seguido de um espaco " ".
155
156* o ABT distigue 3 tipos de comandos:
1571) Comandos primarios: de uma sso letra. estes sao os comandos primarios e devem ser chamados com uma unica letra, sem espaco, e <enter>
1582) Mudanca de variavel global: Comando unico. Comecam com uma ou duas letras a as quais se seguem um novo valor da variavel.
1593) Linha ritmica: Linha de comandos. Comecam com uma letra (identificador) seguida de espaco e das especificacoes da linha.
160
161Excessao: Remocao de linhas ritmicas. Sinal de menos "-" seguido de um ou mais caracteres identificadores de linha ritmica separados por espaco.
162
163Nota: 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---------------------------------------------------------------
168Recentes:
16902/02/2010
170
171adicionado 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
173adicionado recurso para escrever, carregar e disparar presets. arquivo de texto com os presets: presets.txt. formatação é auto-explicativa. qqr coisa me escreva.
174
17520/02/2010
176o comando "s" agora lista os arquivos de áudio que podem ser carregados (presentes no diretório samples/)
177
17824/04/2010
179Empreitada para usar somente OSC, sem recorrer mais ao bash.
180
1811) 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
1832) Alterando abt.py e abt_funcs.py
184
185
186---------------------------------------------------------------
187ToDo:
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---------------------------------------------------------------
197Notas Técnicas (20/02/2010):
198
199O 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)
2011) 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
2022) 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.
2033) abt_data.py: declara a classe C que possui as variáveis do ABT utilizadas por diversas rotinas. Também carrega os presets.
204
2054) scentral.ck: declara a classe pública SCentral que possui as variáveis utilizadas pelo arquivo sampler.ck e alteráveis via outros scripts.
2065) 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.
2076) 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"
2087) 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
2108) presets.txt: contém os presets já criados
2119) sessoes-memoraveis.txt: contém o registro escrito de algumas boas sessões.
212
21310) samples/*: arquivos de áudio para serem utilizados nas execussões. (pode adicionar os arquivos que quiser)
21411) ABD/*: arquivos ligados à detecção de células rítmicas e pulsações.
Note: See TracBrowser for help on using the repository browser.