1.2 Introdução ao objeto Player🔗
Escolher um som🔗
Quando o FoxDot é iniciado, ele reserva todos os nomes de variáveis com duas letras minúsculas, por exemplo, aa, p1 e bd, para serem usados como "players". Estes são os objetos que reproduzem sons para nós com base nas instruções que lhes damos. A primeira instrução que damos é dizer-lhe qual instrumento (sintetizador) tocar. Para ver uma lista de todos os sintetizadores disponíveis, execute o seguinte:
Esta é a abreviação de Synth Definition (Definição de Sintetizador). Escolha uma e atribua-a a um objeto FoxDot player usando dois sinais de "maior que", também conhecidos como "seta dupla". Se meu SynthDef escolhido fosse "pluck" e o meu objeto player escolhido fosse p1, então eu atribuiria "pluck" a p1 da seguinte forma:
Certifique-se de incluir os parênteses no final de "pluck", caso contrário não funcionará. Para parar um objeto player individual, basta executar p1.stop(). Para parar todos os objetos player, pode pressionar Ctrl+., que é um atalho para o comando Clock.clear().
Instruções para atribuição🔗
O >> em Python é normalmente reservado para um tipo de operação, tal como o símbolo + é usado para adição, mas não é esse o caso no FoxDot, e a razão ficará clara em breve. Ao adicionar parâmetros entre parênteses, você pode alterar as notas que estão sendo reproduzidas. O primeiro parâmetro, o tom da nota (às vezes chamado de grau), não precisa ser nomeado explicitamente, mas você precisará especificar outros atributos (como duração) se quiser alterá-los. Esses valores podem ser um único valor ou uma lista de valores que o reprodutor tocará sucessivamente. Por exemplo, o código abaixo toca três notas sucessivamente até que p1 seja interrompido:
O primeiro parâmetro é o tom da nota que queremos tocar, que é uma lista de 3 números: 0, 2 e 4. O player tocará cada um deles por vez. Por padrão, todos os reprodutores usarão a escala C-Maior, que podemos considerar como uma lista Python:
Os números que usamos para o tom referem-se ao índice das notas que queremos escolher nesta escala. Assim, com a nossa lista de tons [0, 2, 4], as nossas notas seriam:
A duração dessas notas é derivada do parâmetro nomeado dur, que também é uma lista de três números: 1, 1/2 e 1/2. A posição desses valores está relacionada à posição dos valores que fornecemos para o tom. Portanto, a primeira nota durará 1 batida e as duas notas seguintes durarão metade de 1 batida. O último parâmetro nomeado, amp, é usado para definir a amplitude (volume) da nota, onde 0 é silencioso e 1 é mais alto. Poderá descobrir outras palavras-chave que pode usar na secção Atributos dos Players.
Você também pode adicionar valores ao Player para criar variações nas suas sequências ou até mesmo tocar acordes. Por exemplo, o código abaixo tocará cada 3 notas 4 tons mais altos:
Para criar acordes, use uma tupla em vez de uma lista. O código abaixo adicionará uma tríade básica a cada nota tocada:
Tocando Samples🔗
FoxDot também pode reproduzir samples, como percussão, usando um SynthDef especial chamado play. Em vez de receber uma lista de números como primeiro parâmetro, ele recebe uma string de caracteres, em que cada caractere corresponde a um som diferente. Aqui está um exemplo de um padrão de bateria muito básico:
A string também pode conter informações sobre como a sequência deve ser reproduzida, o que é feito usando diferentes tipos de parênteses. Colocar dois ou mais caracteres entre parênteses alternará o som a ser reproduzido em cada loop da sequência:
Colocar vários caracteres entre colchetes irá reproduzi-los sucessivamente no espaço de um passo. Este exemplo reproduz um trio de hi-hats durante o seu quarto passo:
Você também pode usar chaves para escolher um som aleatoriamente, para adicionar um pouco de variedade à sua sequência:
Todos eles podem ser usados e combinados para criar padrões complexos: