Obrigado a Julio Marchi pelo espaço cedido na MSX All
 

MSX Digitized Sound Generator

  Ferramenta para conversão de sons do PC (samples) para rodar no PSG do MSX. Digitalize vozes e coloque no seu programa!
Como converter sons do PC para o MSX   Roteiro para a conversão de sons do PC para o MSX:
  1. Editando o som no PC
  2. Convertendo para o formato PCM de 8 bits
  3. Convertendo para o MSX
  4. Players
  5. Ajustes nos players
  O MSX DSG trabalha em conjunto com qualquer editor de sons para PC. Isso, poque para esta parte da tarefa já existem bons programas, inclusive gratuitos. Nós escolhemos o programa Audacity [1] porque, além de ser um excelente editor de sons para PC, é livre, gratuito e multiplataforma.
1. Editando o som no PC   O primeiro passo é a edição do som. Antes de converter o som para o MSX, necessitamos realizar alguns ajustes como transformar de estéreo para mono, selecionar um trecho do som e ajustar a freqüência.
Abrindo um arquivo de som no Audacity   Abra um arquivo de som no Audacity para converter para o MSX. Ele trabalha com diversos formatos, incluindo WAV, MP3 e até MP4 (onde extrai o som).
  Na barra de menu superior, clique em "Ficheiro" (arquivo) e "Abrir". É possível também arrastar o arquivo para dentro da aplicação para abri-lo.
  Uma vez aberto o arquivo, podemos ver o formato de onda de todo o arquivo. Se ele tiver apenas um gráfico de onda, é mono. Caso tenha dois gráficos de onda como na imagem acima, é estéreo.
Convertendo para mono   Os formatos do MSX são mono. Assim, caso nosso arquivo de som seja estéreo, devemos convertê-lo para mono.
  Na barra de menu superior, clique em "Faixas", "Misturar" e "Faixa estéreo para mono". No Audacity mais antigo o caminho é "Faixas" e "Faixa estéreo para mono".
Selecionando o trecho da música   Devido ao fato do arquivo de som ser grande, há limitações quanto à duração dele. No caso do delay 14 do Video Hits, podemos ter até 12 segundos por cada bloco de 16 KB.
  O MSX DSG, para os formatos SND e S4b, é capaz de dividir o som em blocos de 16 KB. Entretanto, os players somente podem reproduzir 2 blocos.
  No painel "MSX Player" do MSX DSG, podemos calcular a freqüência e a duração máxima para cada bloco de 16 KB, de acordo com um determinado player e um delay.
  Uma vez determinada a máxima duração do som, devemos nos basear nesse tempo para selecionar o trecho do arquivo de som. Podemos obviamente selecionar menos tempo que a máxima duração. Entretanto, se selecionarmos um tempo maior, podemos cortar o excedente quando salvarmos o arquivo no MSX DSG em blocos de 16 KB.

  Para selecionarmos um trecho do som, devemos descartar o que vem antes de depois dele. Assim, clique na posição inicial do trecho, conforme mostra a seta amarela e o retângulo vermelho da imagem abaixo.   Você pode arrastar o mouse até o inicio do arquivo. Entretanto, tecle SHIFT + HOME para selecionar desse trecho até o inicio.   Após selecionar o trecho para apagar (marcado com um sombreamento cinza), pressione a tecla DELETE. O trecho será apagado.   Após apagar a parte inicial, todo o arquivo de som resultante é deslocado para o inicio.
  O próximo passo é selecionar o fim do nosso arquivo de som. Clique na posição desejada, conforme ilustra a imagem a seguir.   Selecione dessa parte até o fim, pressionando as teclas SHIFT + END.   Apague esse trecho, com a tecla DELETE.
  Pronto, o nosso trecho de música está selecionado.   Nota: caso desejemos utilizar dois blocos de 16 KB para o som no MSX, podemos selecionar o dobro do tempo indicado no MSX DSG, pois o programa é capaz de dividir os dados em blocos. Ajustando a freqüência do som   O último passo antes de exportar o arquivo é ajustar a freqüência do som.
  Com ajuda do MSX DSG, iremos determinar qual é freqüência do arquivo, pois depende do player do MSX e do delay adotado. Assim, iremos convertê-lo na freqüência desejada no Audacity em dois passos.
  O primeiro consiste em alterar a freqüência do projeto para a freqüência desejada. No rodapé da janela do programa Audacity podemos ver a "Taxa do projeto (Hz)".   Altere o valor contido ali para o valor obtido no MSX DSG.
  O segundo passo consiste em reamostrar o arquivo de som. Para isso, na barra de menu superior, clique em "Faixas" e "Mudar taxa de amostragem". Mantenha o valor que aparece ali, que deverá ser igual à nova taxa do projeto. Clique em Ok.   O arquivo de som está pronto para ser exportado. 2. Convertendo para o formato PCM de 8 bits   Ainda no Audacity, clique na barra de menu superior na opção "Ficheiro" (arquivo) e "Exportar" (também SHIFT + CONTROL + E).
  No diálogo de salvar, temos o "tipo de arquivo" (assinalado com o retângulo vermelho) e "opções" (assinalado com o retângulo verde).   Selecione a opção de arquivo "Outros ficheiros sem compressão". Em seguida, clique em opções.   Escolha o cabeçalho "RAW (header-less)" e a codificação "Unsigned 8-bit PCM".
  Finalmente, exporte o arquivo com essas opções. Use a exrensão ".raw". 3. Convertendo para o MSX   Agora que convertermos nosso arquivo de som para o formato PCM 8 bits não-sinalizado, podemos utilizar o MSX DSG para converter para um dos formatos do MSX.   Escolha a opção "PC PCM 16-bit" em "File type". Clique no botão de carregar .
  Ao carregar, as seguintes informações do arquivo são exibidas:
  • File - nome do arquivo carregado na memória.
  • Type - tipo de arquivo carregado na memória.
  • Bitstreams - Número de amostras que contém o arquivo de som.
  • Size - tamanho do arquivo em bytes.
  • Time - tempo de duração, de acordo com o player e delay selecionados no painel "MSX Player".
  Selecione agora um formato de arquivo para salvar em "File type". Clique no botão para salvar no formato escolhido.

  Nota: lembre-se de que a freqüência do som já foi determinada lá na conversão do Audacity. Dessa forma, alterá-la agora NÃO irá influenciar qualquer coisa no arquivo convertido.

  A partir da versão 1.1, o painel do som foi dividido em som de origem e som de destino. Além disso, foi introduzido o botão de play para ouvir tanto o som original como o convertido. Clique novamente nesse botão durante a execução do som para pará-lo.

  Para cada tipo de arquivo, temos as seguintes políticas:
  • SND - Pergunta se deseja criar o arquivo em blocos de 16 KB, independente do tamanho. Se responder sim, caso seja menor que 16 KB, preenche o restante do arquivo com zeros. Caso seja maior que 16 KB, cria diversos blocos. Se responder não, salva o arquivo do tamanho dele.
  • FRED - Salva até 16 KB de arquivo. Caso seja maior, descarta.
  • S4b - O mesmo que o SND.
  • PCM 8 bits - Salva do tamanho do arquivo.
  Nota importante: para os players fornecidos no projeto, não devemos exceder 16 KB por bloco, pois dessa forma os dados invadiriam a área dos players na memória.
4. Players MarMSX SND Player   O player SND roda formatos de som de 1 bit. Ele é composto pelos arquivos "snd.bin" e "mvdata.bin".
  O seguinte arquivo em Basic carrega os dados da música, move para a página 0 e roda.
10 ' SND player MarMSX 2020
20 SCREEN 0:WIDTH40:COLOR 15,0,0:KEY OFF
30 PRINT"MarMSX SND player"
40 PRINT"-----------------"
50 PRINT:PRINT"Loading SND file ... ";
60 BLOAD"arquivo.snd"
70 PRINT"Ok":PRINT"Starting routine to move data ... ";
80 BLOAD"mvdata.bin"
90 DEFUSR=&HD100
100 X=USR(0)
110 PRINT"Ok":PRINT"Sound starts!"
120 BLOAD"snd.bin"
130 DEFUSR=&HD000
140 X=USR(0)
  O delay padrão do MarMSX SND player é 14. Veja na seção "ajuste nos players" como alterar o delay. MarMSX S4b Player   O player S4b roda formatos de som de 4 bits. Ele é composto pelos arquivos "s4b.bin" e "mvdata.bin".
  O seguinte arquivo em Basic carrega os dados da música, move para a página 0 e roda.
10 ' S4b player MarMSX 2020
20 SCREEN 0:WIDTH40:COLOR 15,0,0:KEY OFF
30 PRINT"MarMSX S4b player"
40 PRINT"-----------------"
50 PRINT:PRINT"Loading S4b file ... ";
60 BLOAD"arquivo.s4b"
70 PRINT"Ok":PRINT"Starting routine to move data ... ";
80 BLOAD"mvdata.bin"
90 DEFUSR=&HD100
100 X=USR(0)
110 PRINT"Ok":PRINT"Sound starts!"
120 BLOAD"s4b.bin"
130 DEFUSR=&HD000
140 X=USR(0)
  O delay padrão do MarMSX S4b player é 22. Veja na seção "ajuste nos players" como alterar o delay. 5. Ajuste nos players Move data   Podemos alterar o move data para carregar dados na página 1 da RAM. Para isso, entre as linhas 80 e 90 adicione:
85 POKE &H&HD112,&H40
  Isso é útil para podermos carregar dois blocos de arquivo na memória, dobrando a capacidade de execução de som. Entretanto, devemos também alterar o endereço final de execução da música nos players. MarMSX SND Player   Para alterarmos as opções dos players, devemos inserir pokes após o carregamento do programa na memória e antes de sua execução em X=USR(0).
  Alterações possíveis:
  • &hD00E - Parte baixa do endereço inicial.
  • &hD00F - Parte alta do endereço inicial.
  • &hD022 - Altera o valor do delay. Não use 0, pois vale como 256.
  • &hD02B - Parte alta do endereço final.
  O exemplo a seguir altera o valor do delay para 13.
135 POKE &H&HD022,13
MarMSX S4b Player   Para alterarmos as opções dos players, devemos inserir pokes após o carregamento do programa na memória e antes de sua execução em X=USR(0).
  Alterações possíveis:
  • &hD024 - Parte baixa do endereço inicial.
  • &hD025 - Parte alta do endereço inicial.
  • &hD035 - Altera o valor do delay. Não use 0, pois vale como 256.
  • &hD040 - Parte alta do endereço final.
  O exemplo a seguir altera o endereço final para &H8000. Assim, podemos tocar 2 blocos de som.
135 POKE &H&HD040,&h80



  Referências:

  1. Audacity. Em: https://www.audacityteam.org
  2. Manual do Audacity. Em https://manual.audacityteam.org


Marcelo Silveira
Engenheiro de Sistemas e Computação
Especialista em Processamento de Imagens e Inteligência Artificial
© MarMSX 1999-2020