📄 midiprolog.pro
字号:
DOMAINSlistaInteiros = integer*PREDICATESnondeterm nota (string,integer).nondeterm tempo (string,integer).nondeterm insereElLista(integer,listaInteiros,listaInteiros).nondeterm concatena (listaInteiros,listaInteiros,listaInteiros).nondeterm contaElementos (listaInteiros,integer).nondeterm inicio.nondeterm criaArqMIDI(listaInteiros).nondeterm parar(char,listaInteiros).cabecalhoPrincipal (listaInteiros).cabecalhoTrack (listaInteiros).eventosConfig(listaInteiros)fimArquivo (listaInteiros).transInt4Bytes(integer,listaInteiros).volume(integer,integer).DATABASEarquivoMIDI(listaInteiros). %criado para o caso de se desejar modificar o formato ou a ppqCLAUSES%inicio inicia a lista do Arquivo MIDI formato 0 com o cabe鏰lho principal e o lable do trackinicio:- cabecalhoPrincipal(Mthd),cabecalhoTrack(Mtrk),concatena(Mthd,Mtrk,Cab),asserta(arquivoMIDI(Cab)),criaArqMIDI([]).criaArqMIDI(Mus):- write("Entre com uma nota musical de do5 a si5",'\n',"nota-> "), readln(Nota),nota(Nota,N1),nl, write("Entre com a figura musical da nota ", Nota,'\n',"figura musical-> "), readln(Figura),tempo(Figura,F1),nl, write("Entre com o volume da nota ", Nota,'\n',"volume(0 a 127)-> "), readInt(Volume),volume(Volume,VolumeCerto), concatena(Mus,[0,144,N1,VolumeCerto,F1,128,N1,0],MusNova),nl, write("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"),nl, write("Musica Atual = ",MusNova),nl, write("Deseja parar ?",'\n',"(s/n)-> "), readChar(C),nl, parar(C,MusNova).%para simplificar, esta se adotando que o track musical, incluindo os 4 Bytes do fim de track, n鉶 ultrapassem o valor 255.%Caso isto ocorra, dever-se-
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -