Need a library that generates WAVE from Midi

I have about 80 songs written in MIDI, and I want to convert them to WAVE using a sound library. Thus, they can be played on all computers and sound the same. Is there a library that can automate this?

Preferably in C #, but other programming languages ​​are good too.

+4
source share
6 answers

This is what is called Soft Synth , you will also need a set of sample instruments if you want the sound to be the same on all machines.

You may find that you will save memory if you simply convert them all to wave files once and send wave files. A set of high quality tools can be quite large, and most of them are protected by copyright.

+3
source

I used Timidity for this, but that was many years ago on Linux as well.

+3
source

Quick answer - look at FluidSynth. This is a software synthesizer that uses sound banks in the SoundFont format. It also has its own library, which can be used to "render" a MIDI file.

A bank with a set of General MIDI sounds can be found, for example, at http://www.hammersound.com , for example http://www.hammersound.com/cgi-bin/soundlink.pl?action=view_viewload_page;ID=407;SoundFont_Location_Selected = Download; SoundFont_Filename_Selected = http: //www.jchyun.com/~sonic/sf2/hubbe/Hubbe64%20GM%20v2.50.zip .

You can do it differently - you can just play them through your device, run the software for recording sound, enter the input into “what you hear”, record it and then cut it.

Longer answer. The question is, what are your needs and the purpose of this procedure?

If you prefer the same sound from MIDI files on different computers, you have the following options:

  • Use only MIDI. MIDI sounds are standardized, although there may be differences from the samples in your sound card. Do you have special sounds you want to use?
  • Use a card that supports SoundFonts — for example, SoundBlaster AWE 32 and above, set the recording input to “what you hear,” and record the sounds.
  • Convert MIDI files to tracker format. This format saves notes as midi, but also allows you to save sound samples in a single file. Although the conversion will take some work. Module files contain so-called templates that can be played back in the requested order. This would be an ideal example for games where you could easily put together one song. The advantage is the same sound on every computer and its small size. A disadvantage can be a loss of quality, because selective resins are shifted up and down to create different tones. If you use multi-sampled instruments, this will not be your problem. If you prefer this path, I suggest you look at IT (ImpulseTracker) and mo3 formats. You can use OpenMPT as the tracker editor. It also allows you to import and export MIDI files. You can use the MikMod library or the FMOD library (commercial) to play these files.
  • Use a software synthesizer that uses sound banks. An example of such a synthesizer is FluidSynth. If this music needs to be embedded in some program, this can be a good alternative.
  • Use an external MIDI sound module, such as Roland SonicCell or any good sound keyboard, like my favorite Korg M50, connect the output of this module to your sound card, set a playlist on some MIDI player, select this device, start recording software from connected audio input, recording and cutting.

PS Sorry for the lack of links, as I'm new here, there can only be two links in my answer.

+2
source

If these are midi static circuits, you can use DAW with some plugins with soft synthesis (for example, http://www.cockos.com/reaper/ Cubase etc. and just supply wavs \ mp3s with your application ...?

0
source

PistonSofts Direct MIDI to MP3 Converter. I do not think this is a library as such, but it has a command line interface.

0
source

You can use FFMPEG to process conversions of both movies and audio, including, in my opinion, MIDI for Wave. http://ffmpeg.arrozcru.org/wiki/index.php?title=Links contains some basic information about the process, but basically after installation you can just start the command line process in the background thread of the process and raise the event completed.

http://code.google.com/p/ffmpeg-sharp/ is a wrapper created for FFMPEG and .net. I'm sure maybe more

0
source

Source: https://habr.com/ru/post/1302172/


All Articles