Este número de controle estava sem função até o início dos anos 90. No passado, os idealizadores do MIDI não previram que os instrumentos poderiam chegar a ter centenas de timbres (programas) armazenados em sua memória interna (na época, os sintetizadores continham 16, no máximo 32 timbres). Por isso, a especificação original prevê um total de apenas 128 timbres possíveis de serem selecionados via mensagens de program change. Com o surgimento de instrumentos com enorme capacidade de armazenamento interno (alguns hoje com mais de 500 timbres!), houve a necessidade de se ampliar a possibilidade de seleção além de 128. Esse problema foi contornado com a criação da mensagem de seleção de banco de timbres (bank select), através da qual pode-se selecionar via MIDI um banco específico de timbres e então, no banco selecionado, escolher qual dos 128 timbres dele se deseja selecionar.
Para se codificar este comando, aproveitou-se a mensagem de control change nº 0, até então ainda vaga (sem utilidade), e deu-se a ela o nome de Bank Select. Essa mensagem só tem efeito se em seguida for enviada uma mensagem de program change.
Como a mensagem de bank select pode conter duas partes (veja tópico anterior sobre MSB e LSB), tem-se a possibilidade de se selecionar via MIDI um total de 16.384 bancos diferentes de timbres. Considerando que em cada banco pode-se ter até 128 timbres, então o MIDI atual permite ao músico selecionar um dentre 2.097.152 timbres diferentes!
O fato de se poder usar apenas uma (MSB) ou então duas partes (MSB e LSB) para se codificar o número do banco selecionado tem causado bastante confusão entre os usuários. Alguns equipamentos usam somente o MSB, como é o caso dos Roland JV-80, JV-880 e SC-55. Outros, como o JV-90, usam as duas partes (MSB e LSB). Dessa forma, é importante verificar exatamente como devem ser enviadas essas mensagens pelo seqüenciador, quando se quiser trocar os timbres dos instrumentos em uma música seqüenciada.
Exemplo 1: No Roland JV-90, para selecionar o timbre C67 Velocifex localizado no banco Preset D, é necessário selecionar primeiramente esse banco, e depois o timbre C67 (que é o 47º timbre do banco; program change = 47). O banco em questão pode ser selecionado via MIDI usando-se as mensagem de bank select MSB=81 e LSB=2. O MSB deve ser enviado pelo control change 0, enquanto o LSB deve ser enviado pelo control change 32. Na realidade, o número verdadeiro do banco é 10.370, que pode ser calculado da seguinte forma: MSBx128 + LSB, que dá 81x128 + 2 = 10.370. Em seqüenciadores onde o bank select é indicado por eventos diferentes para MSB e LSB, deve-se inserir os seguintes eventos:
| control change 0 | 81 |
| control change 32 | 2 |
| program change | 47 |
O primeiro evento define a parte alta do número do banco de timbres; o segundo a parte baixa do número do banco de timbres; e o terceiro define o número do timbre, de 1 a 128. No caso de seqüenciadores onde o bank select pode ser indicado por um único evento (contendo tanto o MSB quanto o LSB), o usuário deve inserir os seguintes eventos:
| bank number | 10370 |
| program change | 47 |
O primeiro evento define o número verdadeiro do banco de timbres; o segundo define o número do timbre, de 1 a 128.
Exemplo 2: No Roland Sound Canvas, para selecionar o timbre Ukulele, o nº 25 do banco de Variations nº 8, é necessário selecionar primeiramente esse banco, e depois o timbre 25 (program change = 25). O banco em questão pode ser selecionado via MIDI usando-se apenas a mensagem de bank select MSB=8, que pode ser enviado somente pelo control change 0. Na realidade, o número verdadeiro do banco é 1.024, que pode ser calculado da seguinte forma: MSBx128 + LSB, que dá 8x128 + 0 = 1.024. Em seqüenciadores onde o bank select é indicado por eventos diferentes para MSB e LSB, o usuário deve inserir os seguintes eventos (o control change 32 não é necessário):
| control change 0 | 8 |
| program change | 25 |
O primeiro evento define a parte alta do número do banco de timbres, e o segundo define o número do timbre, de 1 a 128.
No caso de seqüenciadores onde o bank select deve ser indicado por um único evento (contendo tanto o MSB quanto o LSB), o usuário deve inserir os seguintes eventos:
| bank number | 1024 |
| program change | 25 |
O primeiro evento determina o número verdadeiro do banco de timbres, e o segundo determina o número do timbre, de 1 a 128. Na realidade, muitos fabricantes usam apenas o MSB (control change nº 0), como forma de reduzir a seleção de banco a uma única mensagem. Usando apenas o control change nº 0, temos os seguintes números verdadeiros de bancos:
| control chge 0 | no. do banco |
| 0 | 0 |
| 1 | 128 |
| 2 | 256 |
| 3 | 384 |
| : | : |
| 80 | 10.240 |
| 81 | 10.368 |
Dessa forma, quando o manual de um equipamento menciona banco 80 e define que este é selecionado apenas por uma mensagem de bank select MSB = 80, na realidade, o número verdadeiro do banco não é 80, mas sim 80x128 = 10.240. Essa prática, porém, tem se tornado muito comum, e por isso o usuário deve estar ciente do processo de representação e cálculo do número do banco, para poder efetuá-lo corretamente em seu seqüenciador. Alguns seqüenciadores, como o Cakewalk, facilitam para o usuário, permitindo que este defina se seu instrumento trabalha com o bank select completo (control change 0 e 32), o que é designado por Normal, ou se ele usa apenas o MSB (control change 0) ou apenas o LSB (control change 32).
Em tempo: em alguns manuais, o comando de bank select é designado pela sigla CC0 (control change 0).
Texto publicado no Informus no.11 em mai/95
Este artigo foi publicado no music-center.com.br em 1996