Convert midi to mp3

可紊 提交于 2020-12-25 00:03:41

问题


I have got one midi file and i want to play that file on web page, currently i am using midi.js player for playing but it is not working on mobile browsers.

Please guide me how to play that file or else how can i play midi or convert it into mp3

Here is my code

  $data = fopen ($midi, 'rb');
 $size= filesize($midi);
 $contents = fread ($data, $size);
 fclose($data);
 $encoded= base64_encode($contents);

 $encode = "'data:audio/midi;base64,".$encoded."=='";

and finally passing base64 value to midi.js


回答1:


Guessing you're on a linux machine... The simplest way is to play it with timidity and pipe the output ffmpeg:

timidity song.mid -Ow -o - | ffmpeg -i - -acodec libmp3lame -ab 64k song.mp3



回答2:


I ran into a similar issue with MIDI.js not working in a mobile browser. It turned out that I had included the ogg files but was missing the mp3s (for some reason the MIDI.js only provides ogg versions of synth_drum).

Instrument files for all 128 General MIDI sounds can be found at https://github.com/gleitz/midi-js-soundfonts.




回答3:


If you're using Linux, use avconv instead of ffmpeg because ffmpeg is being deprecated:

timidity input.midi -Ow -o - | avconv -i - -acodec libmp3lame -b 64k output.mp3

Or lame:

timidity -Ow -o - input.midi | lame - output.mp3



回答4:


FluidSynth + FFmpeg

An alternative to timidity:

fluidsynth -a alsa -T raw -F - /usr/share/sounds/sf2/FluidR3_GM.sf2 MIDI_sample.mid |
  ffmpeg -f s32le -i - MIDI_sample.mp3

Tested on Ubuntu 20.04, FluidSynth 2.1.1-2, and this MIDI file: https://en.wikipedia.org/wiki/File:MIDI_sample.mid

Related: https://softwarerecs.stackexchange.com/questions/10915/automatically-turn-midi-files-into-wav-or-mp3/76955#76955




回答5:


Audacity is an open-source audio converter.



来源:https://stackoverflow.com/questions/16295459/convert-midi-to-mp3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!