imprimir

Freecycle




Editor de loops, com detector de bpm, que permite atribuir recortes de uma batida em teclas MIDI e trabalhar com camadas diferentes de recortes. Pode ser usado para adaptar batidas a diferentes b.p.m e para improvisos em performances ao vivo.




Pacotes de instalação e fontes:
http://freecycle.redsteamrecords.com/?page_id=4

Para instalar em sistemas baseados em Debian (como Demudi ,Ubuntu ou Kurumin):
Adicione as seguintes linhas em seu arquivo /etc/apt/sources.list

# test packages at piem.org
deb http://piem.org/debian all/
deb http://piem.org/debian $(ARCH)/
deb-src http://piem.org/debian source/

Depois

apt-get update

Em seguida

apt-get install freecycle



Conteúdo








1.Introdução



Freecycle é um "cortador de batidas" rodando em GNU/Linux desenvolvido com QT, provendo algoritmos "zero crossing" de detecção de batidas e pulsos em domínios de amplitude e de freqüência.

Ele exporta pedaço de áudio recortados e gera arquivos MIDI os quais podem ser usados para tocar loops recortados, ou com os quais você pode improvisar dividindo os recordes pela extensão de m teclado MIDI.

Freecycle também exporta AKAI S5000/S6000/Z4/Z8 .AKP para serem usados com seu sampler favorito, e suporta arrastar e soltar de aplicações e seu desktop.

Ele também processa entrada de áudio usando efeitos LADSPA, assim como aplica envelopes para pedaços em separado.



2. Beatslicing (Retalhando Batidas)



Beatslicing é o processo de dividir um loop em sessões discretas baseadas em mudanças transientes na amplitude ou na freqüência que então podem ser reusadas independentemente de seu tempo original, com isto mantendo seu groove. Isto é arquivado por uma combinação de auto detecção e seleção de pontos da batida, que são então exportados como secções separadas do áudio, juntamente com um arquivo MIDI com sua informação posicional, fazendo com que o loop possa ser reconstruído no sequencer. Não há necessidade de estender o tempo original do loop para pequenas criações de tempo, mas o Freecycle tem um extensor de tempo baseado em BPM (batidas por minuto) para completa flexibilidade.

2.1 Algoritmos


O primeiro algoritmo (padrão) - aplicado ao tempo - detecta batidas comparando a energia instantânea ( número de samples configurados como tamanho de buffer de energia instantânea em Configuration->Configure Amplitude Domain)com a energia média (número de samples configurados como buffer de energia média em Configuration->Configure Amplitude Domain). Se a diferença exceder algum limite sensível computado internamente e baseado na variância do sinal, então a linha da batida é colocada na posição ( bem, é um pouco mais complicado que isso por que o freecycle aplica " zero-crossing", mas você deve ter entendido a idéia )...

O segundo algoritmo - aplicado a freqüência - faz a mesma coisa, mas o sinal e dividido em múltiplas bandas e os algoritmos comparam a energia instantânea com cada faixa de freqüência e a energia média da faixa. Isso possibilita adequar a batida do sinal com amplitude contínua, mas freqüência variada (ex: uma flauta tocando notas ligadas).
Configuration->Configure FFT-> Beatmatching FFT te dá os parâmetros para este algoritmo. A Janela é equivalente ao tamanho de buffer da energia instantânea. A energia média definida e de 44032 frames.

Se você quer conhecer pouco melhor os algoritmos acima, por favor, leia o pdf seguinte que serviu de base para suas implementações.

Os algoritmos aubio são bem conhecidos pelos experts em DSP, algo que não sou. Por favor, procure na web se você quer mais algumas informações detalhadas sobre estes. Sinta-se livre para postar seus achados para usuários do freecycle :)




3.Gerenciamento de Arquivos



Todo gerenciamento de arquivos é feito através do menu padrão arquivo.




Freecycle usa seu próprio formato nativo para gravar seus projetos (*.frc.tgz).
Quando um projeto é salvado desta maneira todas as linhas de batida, configurações de envelope, atribuições MIDI e efeitos são também salvos, podendo ser restaurados em qualquer ponto do futuro.


3.1 Carregando


Freecycle pode correntemente importar arquivos de áudio do tipo *.wav e *.aiff assim como seus próprios projetos *.frc.tgz. Quando o Freecycle é inicialmente lançado o único menu de opções disponível é "Open Wave" e "Load Project". Ambas destas opções abrem um navegador de arquivos padrão e você pode selecionar o arquivo que você quer trabalhar.


3.1.1 Carregando o projeto...

Quando um projeto é carregado todos os parâmetros de freecycle são restaurados do arquivo projeto.

3.1.2 Abrindo a onda...

Quando um *.wav ou *aiff é aberto todos os parâmetros do freecycle são resetados em seus padrões.


3.2 Salvando

Freecycle pode salvar um projeto inteiro, um arquivo wav completo com efeitos e processos de envelope localizados, pedaços de áudio separados, arquivos MIDI e arquivos para AKAI.

3.2.1 Salvando o Projeto


Salva o corrente arquivo Freecycle, incluindo linhas de batida, parâmetros de envelope, atribuições MIDI e configurações de efeitos LADSPA usando o formato *.frc.tgz.

3.2.2 Salvando Projeto Como


Como "Salvar Projeto", mas usando um novo nome.

3.2.3 Salvando a Onda ( Save Wave)

Salva a secção completa de áudio com todos efeitos e envelopes aplicados nela.


3.2.4 Salvando a onda como ( Save Wave as )


Como 'Save Wave...', mas usando um nome.

3.2.5 Salvando pedaços de áudio (áudio chunks)


Salva cada pedaço de áudio trancado dentro de um folder selecionado.
A caixa de exportação tem opções para criar arquivos MIDI e arquivos AKP para tocar arquivos executando as secções em sequencers ou hardware samples.
Ele também pode criar arquivos soundfont2 para que os samples recortados possam ser carregados numa placa de som um tocador de soundfonts ( como o qsynth ou qualquer software baseado em fluidsynth ).
E finalmente existe uma opção para exportar todos os recortes ou simplesmente aqueles entre os pontos de loop.





3.2.6 Exportar arquivo loop MIDI



Exporta arquivos MIDI para tocar com os recortes atualmente trancados.



4.Controles de transporte



Assim como os controles de transporte básicos, o Freecycle suporta playback instantâneo clicando com o botão esquerdo no topo da área de visão de onda, onde o Freecycle irá tocar do ponto até que o mouse seja solto, e tocar entre duas linhas de batidas por clicar com botão direito no mesmo lugar. Freecycle também suporta conectividade JACK.

4.1 Play



Toca o loop do ponto mais à esquerda, ao menos no modo cycle, quando toca desde o localizador esquerdo.
atalho: barra de espaço


4.2 Pause


Para o playback. Pressionando play, continuará tocando de onde parou.
atalho : barra de espaço

4.3 Stop


Para o playback. Pressionando play, continuará do localizador esquerdo.


4.4 Cycle

Muda entre direita e esquerda nos marcadores (liga / desliga )
atalho : /

4.5 Localizadores direitos e esquerdos



Para setar os localizadores use crtl & botões esquerdo ou direito na área de visão de onda.
Enquanto você segura a tecla crtl e o botão do mouse você pode também deslizar localizador, e você vai ver uma barra sobre a onda mostrando de quantas batidas está composto o loop.
(pelo menos duas linhas de batidas devem ser detectadas para isto funcionar).
Localizadores podem também ser movidos clicando botão direito e arrastando. Se o localizador passa sobre uma linha de batida seja cuidadoso clicando com o botão direito sobre o localizador fora das zonas "lock","move" ou "delete".






5. Visão da Onda


A visão de onda é a área principal de trabalho do Freecycle.
Mostra uma representação do arquivo de onda nos modos de freqüência e amplitude, linhas de batida, localizadores de loop e atribuições MIDI assim como permissão para seleção de regiões para recorte (cropping) e zoom.


5.1 Selecionando regiões


A região é selecionada clicando com o botão esquerdo do mouse no ponto da onda segurando o botão e movendo até o ponto desejado e soltando o mouse.
Clicando com o botão esquerdo e arrastando em ambas bordas permite redimensionar a região.


A área selecionada é mostrada como uma sobrecamada cinza com um interior cinza escuro que pode ser usado para deslizar a seleção para a direita ou esquerda.
A primeira imagem mostra uma seleção sendo feita.



A segunda imagem mostra a seleção aproximada para preencher a área.




As regiões podem também ser cortadas pelo menu "Edit" onde tudo fora da seleção é jogado fora.

5.2 Zoom

A área de visão de onda pode ser aproximada dentro e fora para uma posição precisa das linhas de batida.



Movendo o slider para a direita aproxima zoom e para esquerda afasta.
A ferramenta de lupa esquerda aproxima para caber numa área disponível.
A ferramenta de lupa direita retorna a visão de fora novamente.
Também é possível trocar a mudança de zoom clicando nas bordas fora da área de visão geral.


5.3 Amplitude view vs. Spectrogram view

Já que a maioria dos loops rítmicos tem transientes distintos no domínio da amplitude, às vezes uma técnica diferente é necessária para extrair pontos de acerto (hitpoints) precisamente, especialmente no caso de áudio altamente comprimido.
A visão da amplitude deve ser familiar, e é configurada em Configuration -> Configure amplitude domain.
A linha vermelha rodando através da forma de onda mostra seu RMS (potência média).





Os parâmetros disponíveis para ajuste são:

  • 1. Instant energy buffer size (tamanho de buffer da energia instantânea)
    • 1. A energia instantânea é calculada da soma de todas amplitudes com a seleção de tamanho de buffer. Se o sampler inteiro é de 25600 samples e a energia instantânea do tamanho de buffer (ou janela) é de 256 samples então o sample vai ser dividido em 1000 secções e cada secção será comparada com a média. Quanto mais baixo este número, melhor a resolução, mas também a chance de "double hits" (batidas duplas)


  • 2. Average energy buffer size (média do tamanho de buffer)
    • 1. A média do tamanho de buffer nunca é calculada para o sampler completo, mas é de preferência baseada na média de amplitude de uma janela mais larga cercando o buffer da energia Instantânea corrente que está sendo analisado.


Um beat é detectado quando o nível de energia instantânea excede o nível de energia médio.



A análise de freqüência começa pelo mesmo processo criando buffers de energia Instantânea e Média, então isto é passado através de um cálculo de Fourier (FFT - Fast Fourier Transform), então ao invés de ter um tamanho de sample x, nós agora temos o espectro de banda de freqüência x que mostra o formato de onda em termos de energia.
Esta imagem é o mesmo formato de onda que a amplitude vista acima, usando análise de freqüência.




A configuração do FFT é divida em 3 partes, uma seção de adequação de batida (beatmatching), uma secção similar para renderização visual (espectrograma) e uma outra secção para tipo de janela.
Os parâmetros comuns para beatmatching e espectrograma são

  • 1. Largura FFT (FFT width)
    • 1. Este parâmetro configura o número de samples pegos para computar o FFT. Quanto maior este valor, melhor a resolução de freqüência que você vai atingir.

  • 2. Janela (Window)
    • 1. Este parâmetro configura o montante de samples que o "FFT width" vai avançar a cada passo. Isto vai configurar o máximo de resolução/precisão "temporal" do algoritmo beatmatching. A diferença entre "FFT width" (maior) e "Window" (menor) é preenchido com "Sinal" ou "Zeros".


  • 3. Número de bandas (Number of bands)
    • 1 Este parâmetro controla quantas sub-bandas de freqüências vai dividir o sample para a análise. (Esta é a configuração que mais afeta a precisão, e conseqüentemente influi diretamente na performance). Estas bandas são obtidas por somar o montante correspondente de valores numa FFT resultante.

  • 4. Padding
    • 1. Padding é usado para preencher os valores FFT vindo *depois* que a janela de samples é capturada. Ela pode continuar a ser capturada do sinal (ao aumentar a resolução das baixas freqüências), ou pode ser preenchido com zeros (dando uma melhor resolução em freqüências médio-agudas).

A secção do espectrograma também tem opções para linkar-se aos parâmetros de detecção de batida (beatmatching), em tal caso as configurações são sobrescritas pela secção logo acima,e a opção de Normalize ( normalização) dentro do campo deste espectro, que vai encontrar a o ponto mais agudo de energia do sample e aumentar a energia por todo o sample até o campo máximo para um demonstração clara.

A janela options (opções) seleciona um algoritmo de suavização usado para reduzir "imperfeições" (aliasing) antes que o dado seja passado pelo FFT. O FFT assume que cada pedaço de dados mandado é reconhecível (o valor inicial casa com o valor final). Os algoritmos deste tipo (windowning) agem como se o foramatodor do envelope de amplitude suavizasse os transientes? maiores.

  • Rectangle é a mais cru e rápida com pouca ou nenhuma suavização
  • Hanning é sinusoidal básica, performance razoável.
  • Gaussian é o melhor filtro, mas envolve processamento pesado




5.4 Barra Overview (visão geral)

A secção de visão geral contém um osciloscópio em temo real, uma visão em escala da onda corrente e medidor de freqüência em tempo real.




  • Osciloscópio em tempo real
    • Mostra a forma de onde enquanto está tocando

  • Visão da Onda em escala
    • Mostra a forma de onda em escala para caber na janela.
    • A área em destaque mostra a secção que é visível na janela da onda e seu tamanho em frames.
      • O nível de zoom da onda pode ser ajustado deste lugar clicando com o botão esquerdo e arrastando a borda da área em destaque.
      • A área visível da onda pode ser mudada clicando com o botão esquerdo dentro da área em destaque e movendo-a.

  • Medidor de freqüência em tempo real
    • Mostra as características da freqüência da onda corrente enquanto toca.




6.Linhas de Batida ( Beatlines)


O núcleo de funcionalidade do Freecycle gira em torno da descoberta e manipulação das linhas de batida (Beatlines).
As Beatlines recortam a forma de onda em pedaços baseados em transições de ritmo e freqüência, permitindo ao usuário reordenar partes de um loop existente de novas maneiras, ou usar um b.p.m fixo num estilo de tempos variantes com isso mantendo um groove original.
Desta maneira o Freecycle tenta automatizar a detecção de beatlines ao máximo possível, e ainda permite sua criação manual, apagar e mover quando necessário.
A maioria das operações com beatlines são acessadas através do botão direito do mouse.



6.1 Configuração Threshold (sensibilidade da detecção)

O freecycle vai detectar batidas para você derivadas de sua configuração de sensibilidade (threshold).
O slide para controle de threshlold trabalha em tempo real, mostrando as beatlines descobertas com o ajuste do threshold.
O controle de threshold vai do mais sensitivo na esquerda até o menos sensitivo na direita.



6.2 Trancando/Destrancando

As Beatlines tem dois estados, trancado e destrancado, com a maioria dos processos e operações sendo aplicados aos recortes entre as linhas, com a maioria dos processos e operações sendo aplicados em pedaços entre as beatlines trancadas, com a exceção dos efeitos, que serão aplicados em toda a forma de onda.
Para rapidamente trancar ou destrancar todas as beatlines visíveis use os cadeados fechados ou abertos.
Quando uma beatline esta trancada ela tem um pequeno símbolo de cadeado trancado em cima dela e um símbolo de teclado em cima para a atribuição MIDI.
Quando destrancada terá o símbolo de um cadeado aberto e uma cruz vermelha.
A tela abaixo mostra beatlines trancadas e destrancadas.



6.3 Operações em linhas de Batida não-trancadas


Existem 3 operações básicas que podem ser executadas com beatlines destrancadas.

  • 1.Move
    • Para mover um beatline destrancado coloque o mouse sobre as pequenas setas verdes, clique com o botão direito e arraste.

  • 2. Remove
    • Para remover uma beatline destrancada clique com o botão direito sobre sua cruz vermelha.

  • 3. Tranca
    • Para trancar uma beatline clique com o botão direito no cadeado aberto.


6.4 Operações em linhas de Batida trancadas

Uma vez que você tem algumas beatlines alinhadas e trancadas você pode começar a se divertir um pouco. :)
Freecycle permite você atribuir diferentes teclas MIDI para cada batida trancada através de um painel teclado e então você pode improvisar com as batidas diretamente por um instrumento MIDI conectado no computador, através de um sequencer, além de permitir que você clique e arraste os recortes das batidas deslocando uns sobre os outros, na mesma onda ou de uma outra instancia do Freecycle, para reordenar o loop instantaneamente.
Para notas sobre a configuração de seu setup MIDI de uma olhada aqui.



6.4.1 Atribuição MIDI


Um pequeno ícone de teclado sobre cada beatline trancada abre com um clique do botão esquerdo para utilizar a interface de atribuição MIDI, associando notas MIDI para cata batida recortada.
Uma batida não atribuída tem um teclado preto e branco, um recorte já atribuído tem um teclado vermelho e o recorte em foco tem um teclado azul.

6.4.1.1 Keyboard widget (painel teclado)

O painel teclado MIDI é usado como um teclado virtual.
Teclas vermelhas mostram as notas já atribuídas, a nota azul á a atribuição da beatline em foco.
Notas são atribuídas e canceladas nas beatlines com um clique do botão esquerdo.
uma vez que a nota é atribuída ela pode ser transposta semitonalmente ou por oitavas usando o "Transpose Note" que fica sobre este painel(widget).
A área visível do teclado pode também ser transposta clicando com o botão esquerdo sobre as setas azuis nos cantos do teclado.
Todas as notas atribuídas podem ser clareadas clicando caixa "Clear".
A maneira mais rápida de atribuir notas MIDI para todas as batidas trancadas é abrir o painel de teclado área cada beatline trancada, selecionando a nota inicial para o primeiro recorte de áudio e então clicar com o botão esquerdo na caixa "For All".
Isto vai automaticamente alocar um semtom separado para cada recorte.
As opções "Loop" e "For All" aplicam sua configuração para todas as beatlines trancadas, ou aquelas entre os localizadores direito e esquerdo.
Para fechar o painel de teclado clique com o botão esquerdo em qualquer ligar fora da área de visão da onda.





6.4.2 Retângulo da Batida

O retângulo da batida é o espaço entre duas beatlines trancadas.
Estes limites são denotados pela linha setada roxa, com um ponto verde no meio.
A maioria das operações do retângulo da batida são acessíveis através de um clique com o botão direito do mouse.




6.4.2.1 Arrastar e Soltar

O Freecycle suporta arrastar e soltar internamente, com desktop e com outras instâncias do Freecycle.
Ações de arrastar e soltar são iniciadas ao apertar o botão direito do mouse sobre o ponto verde.
É possível arrastar um arquivo wav do desktop ou de uma pasta, onde o recorte será salvo como wav.
Para inserir uma secção de áudio arraste um arquivo wav do seu desktop ou pasta para dentro de um retângulo de batida e solte, o novo pedaço será adicionado numa pilha de ondas para aquele recorte e substituirá a onda corrente.
Arrastar e soltar entre instâncias do freecycle funcionam da mesma maneira, usando o botão direito.


6.4.2.2 Substituindo pilhas de ondas

Os recortes de áudio são arrastados e soltos dentro de diferentes posições, sendo usados em pilhas.
Estas camadas podem ser atribuídas para "cenas" permitindo durante performance rearranjar o loop com um único clique,
As camadas são mostradas na área como um grande número em círculos coloridos com pequenos círculos dentro.
Os números dentro dos círculos grandes denotam a posição na pilha (e contam desde zero), os números dentro dos círculos pequenos denotam qual cena esta atribuída ao foco atual ( zero significando não-atribuído, 1 a 6 atribuições).
Você pode ter quantas camadas desejar para cada recorte de áudio, mas pode ter apenas 6 cenas.
Para selecionar uma camada em um recorte clique com o botão direito dentro do círculo com o grande número e o círculo se torna marrom.
Para deletar uma camada de uma pilha clique com o botão direito no pequeno círculo vermelho focalizando soltando a camada em foco.
Para atribuir uma cena a um recorte clique no pequeno círculo branco. Cada clique passa para o próximo canal.





Para mudar entre as cenas clique no grande círculo controlador da cena.
Para configurar todos itens as pilhas selecionadas para uma cena específica clique nas cenas desejadas no pequeno círculo.






7.Envelope



O Freecycle tem um envelope de 5 estágios em tempo real que pode ser aplicado em cada recorte de sample, o resultado da aplicação deles pode ser visto na área de visão de onda.




7.1 On / Off

Seleciona o envelope como ligado / desligado.


7.2 Parameters

O envelope é feito de 5 estágios ajustáveis.
Quadrados podem ser movidos par direita e esquerda clicando com botão esquerdo sobre eles, círculos podem mover-se em qualquer direção, mas não podem cruzar a linha vertical para a outra secção.

7.2.1 Attack

O tempo levado desde seu início até que atinja sua máxima amplitude.

7.2.2 Hold

O tempo máximo em que amplitude se mantém constante.


7.2.3 Decay

O tempo levado da queda da amplitude até seu nível sustain.

7.2.4 Sustain

O tempo que evento toma corpo e caminha para sua finalização antes da queda de amplitude final.


7.2.5 Release

O tempo em que o corpo do envelope começa a decair até zero.


7.3 Duration

Este parâmetro controla a duração inteira do envelope desde o início da beatline trancada.
ele é a soma dos estágios A+D+S+R, ou em termos tradicionais e a duração da nota mais seu tempo release (queda final de amplitude).

7.4 Resolution

Este parâmetro controla a resolução do envelope em termos de frames ( qual a rapidez que a curva do envelope será atribuída) e é normalmente trancada em 100 frames.


7.5 Modifiers

Como o Freecycle não tem mapeamento de eventos noteon e noteoff MIDI para trigar o envelope, modificadores extra serão providenciados para ajudar a emular isso.


7.5.1 End

Depois que a duração do envelope está completa o envelope é cancelado e o pedaço vai tocar não-processado.




7.5.2 Continue

Depois da duração do envelope, este ficará do mesmo nível até o fim do recorte.
Se o nível do release foi configurado então ele ficará no nível de release,




De outra maneira ele ficará no nível do sustain.





7.5.3 Next


O envelope vai através dos estágios Atack-Máximo-Decay? e então fica no nível Sustain até logo antes da próxima beatline trancada, e então vai até Release.






8. Efeitos LADSPA


O freecycle suporta a arquitetura de plugins LADSPA para processamento de efeitos em linha.

Configurações de efeitos são salvas com o projeto.
Ele ainda é considerado "EXPERIMENTAL" por uma razão: plugins com problema irão travar o Freecycle,
portanto salve seu projeto antes de tentar um novo plugin. :)


8.1 Adicionando, configurando e removendo efeitos

A área de efeitos só se torna visível quando um efeito LADSPA for ativado.
Efeitos são adicionados e removidos do menu de efeitos.
Somente um efeito pode ser usado de cada vez.
A área do grid superior da janela plugin LADSPA mostra todos os plugins encontrados em seu sistema.
Clicando com botão esquerdo trás suas entradas e saídas para a área abaixo.
dependendo do efeito e se a onda é modo ou estéreo faça conexões cabíveis e pressione "apply".






8.2 Selecionando parâmetros e desenhando valores


A edição dos efeitos é feita configurando os valores para um parâmetro em um ponto específico da forma de onda.


A resolução ou zoom na área de desenho do efeito espelha a visão de onda, então você pode ver exatamente à parte da forma de onda para qual você quer configurar o efeito.

Para selecionar um parâmetro ou editar o efeito corrente, clique com o botão esquerdo no item com o nome do efeito e todas as opções de configuração aparecem para você.

Existem dois métodos para aplicar as mudanças aos valores, uma delas assim que solta o botão (default) ou em tempo real assim que você desenha.

Para mudar entre estes módulos use o botão "Execute".




8.2.1 Freehand (mão livre)

Segure o botão esquerdo do mouse continuamente enquanto você move e cada linha vertical será desenhada sob o ponteiro do mouse.



8.2.2 Line (linha)

Segure o botão esquerdo do mouse e mova o ponteiro até o ponto de destino. Quando o Botão do mouse é solto uma linha cortará os dois pontos.




8.2.3 Polyline ( múltiplas linhas)


Cada clique com o botão esquerdo marca um novo ponto. Linhas retas são desenhadas cortando entre cada ponto. Os pontos podem ser movidos clicando e arrastando.





8.2.4 Spline (linhas curvas)


Similar a "polyline", mas com curvas suaves desenhadas entre cada ponto.
A mesma regra pode ser aplicada para mover ou deletar pontos, com exceção dos pequenos pontos amarelos que podem ser movidos clicando no botão esquerdo e arrastando para alterar o formato da curva.







9. Saídas de Áudio


O Freecycle atualmente suporta o subsistema do servidor de áudio JACK, e pode ser interligado com qualquer outro software conectado ao JACK.
Para mais informação sobre o jack veja: http://jackit.sourceforge.net/.

O Freecycle também usa a biblioteca portaudio se você não estiver usando JACK (n.t: útil para o OSx, principalmente).
mais informação sobre portaudio: http://www.portaudio.com/.





10. subsistema MIDI


Freecycle também faz uso da biblioteca portmidi, parte da suíte portmusic.
para mais informação: http://www.cs.cmu.edu/~music/portmusic/portmidi/portmidi.h





Documentação por P.Viceic and M. Rowlands - Tradução Glerm Soares

original em: http://freecycle.redsteamrecords.com/doc_freecycle/

licença: http://creativecommons.org/licenses/by-nc-sa/2.5/



Última alteração: 13/09/2006 às 01:21, por: glerm