[WIP] Trumpet

Para os mais especializados em mecânica e electrónica em LEGO.
Responder
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4311
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

[WIP] Trumpet

Mensagem por CyberX »

E na senda da Harpa Laser e do Grand Piano decidi passar dos instrumentos de cordas aos de sopro:



Depois hei-de publicar mais detalhes, à medida que for melhorando. Mas por agora a descrição da coisa:

O MINDSTORMS EV3 usa um sensor de pressão "pneumático" ao qual está ligado um tubo LEGO pneumático por onde sopro. Usa ainda 3 sensores de toque para emular os 3 pistões ou válvulas ou lá como se diz de um trompete. Calha bem o trompete justamente por isso - uma flauta por exemplo não seria possível sem alguma engenhoquice maior porque tem bem mais do que 3 furos.

Há ainda um controlador USB MIDI que o linux detecta automaticamente de modo que o EV3 fica com 2 portas MIDI (uma de entrada, outra de saída que é a que me interessa).

Um script micropython (pybricks) mede a pressão relativa em milibars e a posição dos pistões gerando uma nota MIDI com uma amplitude ("velocidade") proporcional à pressão portanto ao sopro do artista. 3 pistões abertos ou fechados permitem 8 combinações logo 8 notas distintas, mais ou menos as convencionais para um trompete (na verdade, consoante a posição dos lábios, um trompetista consegue fazer cerca de 3x mais combinaçoes).

A saída MIDI está ligada a um sintetizador MIDI por sua vez ligado a uma coluna de som. Desta vez optei por usar um cabo USB para pdoer ligar a um sistema MIDI convencional mas era possível usar a implementaçao rtpMIDI que usei anteriormente e dispensar o controlador USB, indo tudo por Wi-Fi para um sistema MIDI compatível... que ainda não tenho sem ser o meu computador, lá havemos de chegar um dia.

O script notifica o sintetizador MIDI que é um trompete (instrumento 57 da norma General MIDI usual embora nem todos os sintetizadores a honrem). As notas perduram enquanto o artista soprar, ajustando-se o volume à intensidade do sopro - isto é importante, já que se alterar o script para se identificar como um piano a intensidade das notas decai até a nota terminar, tal como as teclas de um piano, sendo a intensidade do sopro ignorada por completo depois da nota ser gerada (as coisas que um gajo aprende com LEGO, linux e python).

Para referência dois trompetes MINDSTORMS, ambos NXT e da autoria de dois grandes ROBOTMAK3RS onde me inspirei:

Imagem
Daniel Benedettelli
https://robotics.benedettelli.com/lego-trumpet/

ImagemSNC00128 by Jetro, on Flickr
Jetro de Château
https://www.flickr.com/photos/22831437@ ... 893929282/

O primeiro, bastante recente, envia mensagens por Bluetooth para um Arduino que as converte para MIDI.
O segundo, já com 10 anos, apenas produz beeps (penso que com o NXT-G).
Nenhum deles reage ao sopro - ambos reagem à pressão do queixo, o do Daniel penso que meramente ON/OFF enquanto que o do Jetro mede a pressão mecânica por meio de um pistão pneumático Technic acoplado a um sensor de pressão semelhante ao que uso (mas da Dexter em vez da mindensors).
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4311
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: [WIP] Trumpet

Mensagem por CyberX »

Isto parece uma grande confusao mas tem a sua lógica:
Imagem

Em cima, à direita, o Trompete MINDSTORMS EV3.

Por baixo dele um teclado MIDI M-Audio Keystation 61es que ofereci à marida há uns 14 anos para ela poder gerar pautas a partir das músicas que ensaiava para o coro infantil de que na altura era maestrina (arranjei na altura um PC com Ubuntu Studio, ela tocava e um programa muito fixe chamado Rosegarden capturava as notas e no final exportava uma pauta catita).
O teclado tem duas interfaces: USB e MIDI clássica (ficha DIN de 5 pinos).

Ao centro, ligeiramente por baixo do teclado, azul, um MiDiPLUS miniEngine. No fundo um sintetizador MIDI.

Um pouco à esquerda e acima uma coluna ligado à saído áudio do sintetizador.

Um pouco mais à esquerda, preto, um M-Audio midiman que é um Merger MIDI - tem 2 entradas MIDI e funde as mensagens que por lá entrarem num único sinal MIDI. Ligado as entradas temos:
- o teclado MIDI
- o Trompete MINDSTORMS EV3
a saída do Merger liga ao sintetizador MIDI (por USB neste caso porque ambos o permitem mas podia ser por uma ligaçao com um cabo MIDI convencional)

o resto da confusão é um Hub USB para poder ter Wi-Fi no MINDSTORMS EV3 e um adaptador USB-MIDI para poder ter uma saída MIDI convencional no EV3 (futuramente quando o dinheiro e o tempo o permitirem tentarei eliminar a confusão de cabos usando rtpMIDI de modo a ter um Trompete wireless)

A configuraçao em termos de estúdio MIDI:
- o teclado está configurado para o canal #2 e instrumento #0 (Acoustic Grand Piano)
- o trompete está configurado para o canal #1 e o instrumento #56 (Trompet)

Posso por isso tocar ambos os instrumentos ao mesmo tempo e controlar o volume de ambos independentemente (se os colocasse no mesmo canal saoavam ambos como Trompete ou ambos como Piano e o controlo de volume do piano afectava ambos assim como a pressão com que sopro no trompete).

Roadmap:
- melhorar o aspecto LEGO do Trompete
- juntar a Harpa Laser e a pianola baseada no Grand Piano
- fazer uma banda de garagem
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
gads
Administrator
Administrator
Mensagens: 6355
Registado: 11 set 2006, 23:58
Localização: Oeiras

Re: [WIP] Trumpet

Mensagem por gads »

Isto parece uma grande confusao mas tem a sua lógica:
Naaaaa.... parece lá agora ;D
Guilherme Santos
www.historybricks.com
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4311
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: [WIP] Trumpet

Mensagem por CyberX »

gads Escreveu: 06 jan 2021, 19:54
Isto parece uma grande confusao mas tem a sua lógica:
Naaaaa.... parece lá agora ;D
se calhar não é uma boa altura para falar na utilização de logaritmos em micropython para tentar tornar mais natural o resultado do meu sopro?
:D
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Responder