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:

Daniel Benedettelli
https://robotics.benedettelli.com/lego-trumpet/
SNC00128 by Jetro, on FlickrJetro 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).


