
Sintetizador de Cassetes
Gosto de projetos musicais incomuns. Por exemplo, lancei um álbum baseado em gravações feitas pela NASA durante a missão Apollo 12. E recentemente usei meu próprio coração para controlar o ritmo da música. Você pode encontrar os resultados dos meus experimentos musicais aqui .
Recentemente, fiz um sintetizador controlado por MIDI a partir de um velho toca-fitas que lembra o Walkman da Sony. Para fazer isso, eu precisava de uma placa Arduino e alguns códigos. O que aconteceu pode ser chamado de "sintetizador de cassete".
Um sintetizador de cassete funciona reproduzindo um som monótono (uma nota) previamente gravado numa cassete. O pitch pode ser controlado, depende da velocidade da fita. O projeto Onde Magnétique me levou à ideia de criar um sintetizador de cassete , e os criadores desse projeto se inspiraram na ideia do Mellotron .
Aqui está um vídeo me mostrando tocando um sintetizador de fita cassete usando um teclado MIDI.
A vantagem desse sintetizador é que ele produz um som muito "analógico" ao mudar as notas. Ou seja, a afinação freqüentemente muda suavemente ao passar de nota para nota, o som, como resultado, torna-se muito interessante (isto é, na música tocada neste sintetizador, o efeito de portamento é freqüentemente encontrado). Além disso, absolutamente qualquer som pode ser gravado em fita, então meu sintetizador acabou sendo bastante versátil.
Criação de um sintetizador de cassete
Na verdade, criar esse sintetizador é muito simples. Encontrei um bom vídeo sobre como modificar um toca-fitas para que a velocidade de reprodução da fita possa ser controlada por meio de um regulador de voltagem. Eu modifiquei meu player existente de forma semelhante. Também criei, com base em um navegador, um controlador MIDI simples projetado para obter as notas desejadas modificando a voltagem.
As instruções abaixo enfocam o hardware do sintetizador, representado pelo player e o Arduino, e o software, que é tocado pelo controlador MIDI.
Materiais
- GE 3-5362A Cassette Player (US $ 15, muito no eBay)
- Arduino ($ 23).
- DAC MCP4725 ($ 11).
- 3,5 ($8).
- ( , $5).
- , ($25, ).
GE 3-5362A
Observe que você não precisa usar o reprodutor GE 3-5362A. Qualquer reprodutor que suporte velocidade de reprodução variável serve. Se você vai fazer um sintetizador de cassete baseado em outro player, você só precisa descobrir sua estrutura interna e onde soldar os fios correspondentes.
Vamos começar abrindo o corpo do jogador. Para fazer isso, você precisa desapertar os quatro parafusos localizados na parte traseira do dispositivo. Você não precisa fazer muito esforço aqui - apenas desparafuse os parafusos e abra o gabinete com cuidado. Observe que as partes traseira e frontal da unidade são conectadas por fios que fornecem energia para os componentes eletrônicos do reprodutor. Não corte esses fios.

Player desmontado que já foi modificado
Para transformar o player em um sintetizador de cassete, precisamos soldar dois novos componentes nele. O primeiro é um fio conectado
Vin
, com o qual podemos controlar a velocidade de reprodução da fita usando um regulador de tensão. O segundo é um divisor de áudio conectado aoLine in
, que nos permitirá gravar sons em uma fita cassete (útil para quem não possui gravador).
Se você não sabe soldar, não se preocupe. É simples. Veja este video. Com ele, você aprenderá a soldar fios em almofadas.
Conectando-se ao Vin e organizando o controle de velocidade da fita
Encontre a roda denominada Reprodução de velocidade variável no dispositivo. É aqui que soldaremos alguns fios. Eu prefiro usar o fio vermelho para o positivo e o marrom ou verde para o negativo. Portanto, soldamos o fio vermelho à almofada VS + e o outro fio colorido à almofada localizada imediatamente abaixo de B +.

Fios soldados ao pad VS + e ao pad localizado perto de B +
Observe que eu uso cabos com conectores fêmea em uma extremidade em situações como esta. É muito conveniente conectar algo a eles.
Conexão com Line in para organizar a gravação de som em uma fita cassete
Agora você precisa encontrar os pads MIC- e MIC +, aos quais os fios vermelho e preto do microfone são soldados. Você pode simplesmente dessoldar esses fios e soldar os fios do cabo de áudio a esses pads. Vermelho para MIC +, preto para MIC-.

Fios soldados a MIC- e MIC +
Gravando som monótono em uma fita cassete
Agora você pode inserir a fita no reprodutor e gravar som conectando-se a
Line in
! Você pode gravar o som de qualquer nota. Como regra, você pode iniciar experimentos com a nota "C". A gravação deve ser longa o suficiente - 30 minutos ou mais (aqui, a propósito, uma fita com um loop de fita seria útil). Observe que apenas um tom precisa ser gravado na fita, uma vez que é o tom desse tom que vamos alterar controlando a velocidade de reprodução da gravação.

Gravando som em uma fita cassete com o OP-1
Preparando o Arduino para uso como interface MIDI
O Arduino atua como um intermediário entre a interface MIDI e o conversor digital para analógico, que é responsável por alterar a voltagem. O teclado MIDI está conectado ao computador. Os sinais do teclado são recebidos por um programa em execução no Chrome. Ele se dirige ao servidor, que envia dados sobre a mudança de voltagem para o Arduino, e o Arduino transmite os sinais correspondentes para o conversor digital para analógico, que controla a velocidade de reprodução da fita no reprodutor.

Conectando o Conversor D / A MCP4725 ao Arduino
Primeiro, você precisa conectar o MCP4725 ao Arduino usando o diagrama acima. O MCP4725 é um conversor digital para analógico que pode ser controlado a partir do Arduino. O terminal OUT do conversor deve ser conectado ao fio vermelho que soldamos anteriormente ao reprodutor. O outro fio precisa ser conectado ao pino GND no Arduino.
O código que se comunica entre o computador e o Arduino se comunica com o dispositivo, enviando informações sobre como alterar a tensão. Por exemplo, se o Arduino receber um comando
dac.setVoltage(newVolts, 1)
, o MCP4725 emitirá uma tensãonewVolts
. Aqui está o código:
#include <Wire.h>
#include <Adafruit_MCP4725.h>
Adafruit_MCP4725 dac;
String sdata = ""; // .
bool started = false;
void setup(void) {
Serial.begin(9600);
// Adafruit MCP4725A1 - 0x62 ( ) 0x63 ( ADDR VCC)
// MCP4725A0 - 0x60 0x61
// MCP4725A2 - 0x64 0x65
dac.begin(0x62);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
Serial.println("Begin");
}
void loop(void) {
if (started == false) {
started = true;
dac.setVoltage(0, 1);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
byte ch;
if (Serial.available()) {
ch = Serial.read();
sdata += (char)ch;
if (ch == '\n') {
sdata.trim();
if (sdata.indexOf("voltage") > -1) {
sdata.remove(0, 7);
float newVal = sdata.toFloat();
//
float newVoltage = round(910.0 * newVal);
if (newVoltage > 4095) {
newVoltage = 4095;
}
uint16_t newVolts = uint16_t(newVoltage);
dac.setVoltage(newVolts, 1);
Serial.print("volts: ");
Serial.println(newVolts);
} else {
Serial.println("?");
}
sdata = "";
}
}
}
Servidor usado para enviar comandos ao Arduino
Para controlar o Arduino, você pode usar um servidor simples que envia comandos para a placa que mudam a tensão. O código relevante pode ser encontrado aqui . Para que o servidor funcione, você precisa do Golang . Veja como colocar seu servidor em funcionamento:
$ git clone https://github.com/schollz/tape-synth
$ cd tape-synth
$ go build
$ ./tape-synth -com ARDUINOCOM
Se estiver usando Linux, você precisará usar o comando para organizar o trabalho com a porta USB
sudo
. ARDUINOCOM
É uma porta COM para uma placa Arduino conectada a um computador via USB. Isso é comum no Windows COM4
.
A página é usada para gerenciar o servidor
index.html
. Para abri-lo no Chrome, você precisa ir ao endereço localhost:8080
. Em seguida, você pode conectar um teclado MIDI e enviar comandos do Arduino (o Chrome é o navegador mais popular que oferece suporte a MIDI ).
Construindo o sistema e tocando o sintetizador
Para tocar o sintetizador de cassete, você precisa iniciar o servidor, conectar um teclado MIDI e ir para o Chrome em
localhost:8080
. Agora você pode ligar o player e começar a jogar! A nota que está sendo tocada no teclado deve ser tocada pelo jogador.
Configuração do sintetizador
Estamos lidando com um sistema mecânico que muda o tom mudando a velocidade da fita. Portanto, nosso sintetizador precisa de ajuste. Para fazer isso, abra
index.html
e edite as propriedades do objeto voltageMap
. Cada nota deve receber uma voltagem (entre 0 e 3) correspondente ao seu tom.
var voltageMap = {
"C": 0,
"C#": 0.7,
"D": 0.9,
"D#": 1.2,
"E": 1.4,
"F": 1.62,
"F#": 1.85,
"G": 2.25,
"G#": 2.6,
"A": 3.0,
"A#": 0,
"B": 0,
}
Resultado
Se eu expliquei algo incompreensivelmente (eu suspeito que seja) - faça perguntas no Twitter ou Instagram .
Você está planejando construir seu próprio sintetizador de cassete?

