Esta parte do fluxus é responsável por capturar o som entrando, e processar ele em dados harmonicos, usando fft (Fast Fourier Transform). As harmonicas são bandas de frequência em que o som é dividido, dando alguma indicação da qualidade do som. É o mesmo que você ve num equalisador gráfico - de fato, um dos scripts de exemplo (bars.scm) age como tal, e pode ser usado para testar se o áudio está funcionando.
(start-audio "alsa_pcm:capture_1" 1024 44100) (define (animate) (colour (vector (gh 1) (gh 2) (gh 3))) ; make a colour from the harmonics, and set it to be the current colour (draw-cube)) ; draw a cube with this colour (every-frame (animate))
Returns void
Inicia o áudio com as configurações específicadas, você precisa chamar isto primeiro, ou colocar isto em $HOME/.fluxus.scm para chamar automaticamente na inícialização. Tenha a porta do jack como uma string vazia ("") e ele não vai tentar conectar em nada para você. Que pode então usar qjackctrl ou equivalente para fazer a conexão manualmente. Fluxus lè uma única fonte mono.
Example
(start-audio "alsa_pcm:capture_1" 1024 44100)
Returns void
Fluxus converte áudio entrando em frequências harmônicas, que pode então ser ligada em suas animações através desse comando. Existem 16 bandas harmônicas disponiveis, o argumento do valor-harmônico vai ser arredondado se maior ou menor que 16, então você pode usar esse comando sem se preocupar sobre erros fora do alcance.
Example
(define (animate) (colour (vector (gh 1) (gh 2) (gh 3))) ; make a colour from the harmonics, and set it to be the current colour (draw-cube)) ; draw a cube with this colour (every-frame (animate))
Returns vetor-buffer-audio
Retorna o conteúdo do buffer de audio atual.
Example
(clear) (define p (build-ribbon 128)) (with-primitive p (hint-unlit) (pdata-map! (lambda (w) .1) "w")) (every-frame (let ([a (ga)]) (with-primitive p (pdata-index-map! (lambda (i p) (vector (* .25 (- i (/ (pdata-size) 2))) (* 10 (vector-ref a i)) 0)) "p"))))
Returns void
Ajusta o nível de amplificação para o som fft, é 1 por padrão.
Example
(gain 100) ; muito quieto?!
Returns void
Este comando desativa temporariamente a leitura em tempo real da entrada da pista de áudio e lê um arquivo wav ao invés. Para usar com o comando framedump para processar audio offline para fazer videos musicais. A vantagem disto é que ele trava a taxa de quadros então a quantidade certa de áudio é lida para cada quadro - fazendo com que a sincrônia entre quadros e audio seja possível.
Example
(process "somemusic.wav") ; read a precorded audio file
Returns void
Uma espécie de média balanceada para as bandas harmônicas que as acalmam com o tempo. Esta opção é por padrão definida como 1.5. O melhor valor realmente depende da qualidade da música, e do tamanho do buffer, e varia de 0 -> 2. Fica mais óbvio se você tentar com o script bars.scm
Example
(smoothing-bias 0) ; no smoothing
Returns void
Atualiza o subsistema de áudio. Esta função é chamada para você (por frame) no fluxus-canvas.ss
Example
(update-audio)