quinta-feira, 18 de outubro de 2018

Midi2PLAY - Convert MIDI files to BASIC language




   I made this post to tell about "Midi2PLAY" (for Windows 32/64, binaries source code available here), a program I developed that assists in the process of converting MIDI files (.mid) to the syntax accepted by the PLAY command of MSX-BASIC

As I will explain below, Midi2PLAY does not do the conversion alone, it depends on another program (3ML Editor) to intermediate the process. But it's all very simple and in the end you will have a BASIC music program practically ready to run on MSX.

About Midi2PLAY

The main purpose was to develop a converter parser that generates code compatible with all versions of MSX (from MSX1), without the need for additional hardware such as MSX-Audio, MSX-Music or FM-Pac. That is, the syntax generated by "Midi2PLAY" can be executed on any MSX.
The program is still in development but I already offer the executable and the code (in C++) for those who want to use it. Follow the download link:

https://github.com/rodrivas78/Midi2PLAY


 I will now make a quick summary of how the program works:

 Following up on what I said earlier, Midi2PLAY does not directly convert MIDI files (.mid). For this it depends on another program: the 3ML Editor.

The 3ML Editor is free and can be downloaded at: http://3ml.jp/download.html

See below how the conversion process works and what the function of each application is:

 MIDI file -> 3ML Editor -> MML file (.txt) -> Midi2PLAY -> .BAS file

Step by step:

  • Import the MIDI file into the 3ML Editor.
  • Still in the 3ML Editor: export the MML file. (Save as "mml.txt")
  • Run the "Midi2PLAY" (with the "mml.txt" properly formatted in your folder)
  • The "play.txt" file will be generated. Just save it as ".BAS" and use it in MSX.


What we see above is a summary, for the correct use of the program it is necessary to read the Midi2PLAY manual, since there are some non-automated processes. In the program folder, along with the manual, there are images and sample files that will help you to quickly understand what should be done to make everything work correctly.

 Addendum

   It is understood that Midi2PLAY could (or should!) be called mml2play, but as the "MML" format is not so well known and for the program function to become self explanatory, I chose the current name.

  As I mentioned earlier, the program still needs some improvement. For example: the user needs to perform a few steps manually, so that the document (mml) is properly formatted so that the conversion is correct. I intend to automate some of these steps in future releases.
    
  If you used the program I will be happy to hear your feedback.

 I have not had time to perform all the necessary tests, so if possible help by reporting any bug. Reviews and suggestions are also welcomed!


keywords: Midi2Basic, MIDI to BASIC


quarta-feira, 17 de outubro de 2018

Midi2PLAY - Converta arquivos MIDI para o MSX-BASIC




   


  Faço este post falar do "Midi2PLAY" (p/ Windows 32/64), programa que desenvolvi que auxilia no processo de conversão de arquivos MIDI (.mid) para a sintaxe aceita pelo comando PLAY do MSX-BASIC.

Conforme explicarei abaixo o Midi2PLAY não faz a conversão sozinho, depende de outro programa (3ML Editor) para intermediar o processo. Mas é tudo bem simples e ao final você terá um programa musical em BASIC praticamente pronto para rodar no MSX.

Sobre o Midi2PLAY

O intuito principal foi desenvolver um parser conversor que gere código compatível com todas as versões de MSX (desde o MSX1), sem a necessidade de harware adicional como MSX-Audio, MSX-Music ou FM-Pac. Isto é, a sintaxe gerada pelo "Midi2PLAY" pode ser executada em qualquer MSX. 

O programa ainda está em desenvolvimento porém já disponibilizo os binários para quem queira ir utilizando-o. 

Segue o link para download:
https://github.com/rodrivas78/Midi2PLAY

 Farei agora um rápido resumo de como o programa funciona: 

 Dando seguimento ao que eu disse anteriormente, o Midi2PLAY não converte diretamente os arquivos MIDI (.mid). Para isso ele depende de outro programa: o 3ML Editor. 

O 3ML Editor é gratuito e pode ser baixado no link:  http://3ml.jp/download.html     

Veja abaixo como funciona o processo de conversão e qual a função de cada aplicação:

 Arquivo MIDI --> 3ML Editor --> Arquivo MML(.txt) --> Midi2PLAY -->  Arquivo .BAS  

Passo a passo:

  • Importar o arquivo MIDI no 3ML Editor. 
  • Ainda no 3ML Editor: exportar o arquivo MML. (Salvar como "mml.txt")
  • Executar o "Midi2PLAY" (com o "mml.txt" devidamente formatado, em sua pasta)
  • Será gerado o aquivo "play.txt". Basta salvá-lo como ".BAS" e utilizá-lo no MSX. 


O que vemos acima é um resumo, para a correta utilização do programa faz-se necessária a leitura do manual do Midi2PLAY, visto que há alguns processos não automatizados. Na pasta do programa, juntamente com o manual, há imagens e arquivos de exemplo que o ajudarão a entender rapidamente o que deve ser feito para tudo funcionar corretamente.

  Adendo

   Fica-se compreendido que o Midi2PLAY poderia (ou deveria!) se chamar "mml2play, mas como o formato "mml" não é tão conhecido e para que a função do programa torne-se auto-explicativa, optei pelo nome atual. 

  Conforme mencionei anteriormente, o programa ainda precisa de algumas melhorias. Por exemplo: o usuário precisa efetuar alguns passos manualmente (não automáticos) para que o documento (mml) fique devidamente formatado e assim haja uma correta conversão. Pretendo automatizar alguns destes passos nas próximas versões. 
    
   Sobre a publicação do código, assim que possível, ou melhor, após uma devida "limpada", vou disponibilizá-lo no GitHub.

Se utilizar o programa ficarei feliz em ouvir o seu feedback.


Até a próxima!

keywords: MIDI para BASIC


segunda-feira, 1 de outubro de 2018

O programa da revista MAD - versão p/ MSX



         
         Em 1985, a revista MAD (e antes que me perguntem, já respondo: sim, eu lia essa eca! E pior, gostava...*) americana, mostrando-se antenada com a (então recente) febre dos computadores pessoais, fez uma edição com capa e algum conteúdo voltado à computação. 



Nos anos 80 a febre dos "personal computers" invadia tudo, até revistas de humor


    O tal conteúdo até que foi legal: além dos excelentes quadrinhos do mestre Aragonés, um programa em BASIC (basicamente uma rotina gráfica que plota o Alfred Newman na tela), com quatro versões diferentes, uma para cada um dos quatro computadores pessoais mais populares de então (nos EUA):  Apple II, Atari, Commodore 64 e IBM/PC.
  
     Como o MSX não atingiu muita popularidade na terra do tio Sam, é obvio não houve listagem pra a ele...mas não fique desapontado, já providenciamos uma (link ao fim da postagem)

    Na verdade, apenas o início do programa é específico para cada computador, o restante (da linha 500 ao fim) é código comum às quatro máquinas. Esse "restante" nada mais são que 129 linhas "DATA", que continham as coordenadas para que o desenho fosse traçado. 


   Reproduzo abaixo as páginas da revista que contém os códigos:

      


Digite, imprima e mande uma cópia pra revista (veja no canto direito). Naquela época havia tempo de sobra!




        Talvez como tentativa de estimular a sacal tarefa de digitar o código, é solicitado ao fim da 4a página, que os leitores enviem uma impressão da tela para a redação da revista. Apesar de tal empreitada (de digitar esse monstro) ser evidentemente demorada e trabalhosa, acredito que muitos dos leitores encararam o desafio. (Naquela época não havia ainda youtube, whatsapp, instagram e etc, ou seja sobrava tempo..)

    A conversão para MSX não deu trabalho, visto que podemos utilizar a versão para IBM com mínimas alterações. Na verdade, apenas uma alteração significativa: para que a string "What, me worry?" seja impressa em modo gráfico (SCREEN 2) no MSX, basta utilizar o comando OPEN":GRP", como vemos abaixo:

..
120 OPEN"GRP:" AS#1
130 PSET(67,178)
140 PRINT#1,"WHAT, ME WORRY?"
..

 Segue vídeo do programa rodando em um MSX1 (BlueMSX):






DOWNLOAD


      Você encontra aqui o código e o arquivo DSK. E aqui uma versão em Applesoft BASIC.


Até a próxima!


*publicaram um desenho meu na edição 87 (veja a capa abaixo). Não tenho mais a revista, se alguém a tiver me avise!






BASIC 10-Liners Contest 2020