Vraag Hoe kan ik converteren tussen midi naar wav / mp3 in c #?


Ik startte een klein project met inbegrip van het werken met MIDI-bestanden. Ik heb me afgevraagd: is er een code voor C # of VB.Net die de cast tussen MIDI- en WAV-bestanden uitvoert?


11
2017-07-26 19:52


oorsprong


antwoorden:


Je zou kunnen proberen om op de een of andere manier te communiceren met schroom, wat Open Source is:

TiMidity ++ is een software-synthesizer. Het kan MIDI-bestanden afspelen door ze om te zetten in PCM golfvormgegevens; geef het een MIDI-data samen met digitale instrumentgegevensbestanden, dan synthetiseert het ze in realtime en speelt. Het kan niet alleen geluiden spelen, maar ook de gegenereerde golfvormen opslaan in harde schijven als verschillende audiobestandsindelingen.

FluidSynth is een meer recentelijk bijgewerkt Open Source-project op dezelfde manier:

FluidSynth is een real-time software synthesizer op basis van de SoundFont 2-specificaties.

U kunt enkele gratis SoundFonts downloaden (de feitelijke PCM-gegevens die door deze synthesizers worden gebruikt om de MIDI-bestanden te "renderen") van de sites op deze lijst.


8
2017-07-26 20:23



MIDI-bestanden bevatten alleen noot- en controllerinformatie, geen geluiden. Om geluiden uit een MIDI-bestand te krijgen, moet je het bestand door een muzieksynthesizer of sampler sturen, die de noot- en controller-informatie omzet in echte geluiden.

In de praktijk betekent dit dat elk gegeven MIDI-bestand geen specifiek geluid heeft. Het geluid dat resulteert uit het converteren van een MIDI-bestand naar audio, is afhankelijk van de kwaliteit van de synthesizer of voorbeeldbibliotheek en de geluiden die zijn geselecteerd om de conversie uit te voeren.

Veel geluidskaarten hebben de mogelijkheid om geluid uit MIDI-bestanden te produceren. Ze kunnen dit doen omdat veel MIDI-bestanden een standaard volgen genaamd de Algemene MIDI-specificatie. De algemene MIDI-specificatie biedt een gestandaardiseerde manier om specifieke instrumenttoewijzingen in kaart te brengen. Als je MIDI-bestand voldoet aan deze standaard, kun je het afspelen via een General MIDI-geluidsgenerator en verwachten dat een snaredrum klinkt als een snaredrum en niet als een trompet.

Als je een geavanceerd muziekproductiepakket hebt zoals Cakewalk, je kunt er een MIDI-bestand in laden, en het zal zijn ingebouwde geluidsbibliotheken gebruiken om een ​​geluidsbestand voor je te renderen, en dit kan eigenlijk sneller dan real-time worden gedaan (dwz het hoeft niet het geluid af te spelen via de geluidskaart en neem de output op).

Ik denk dat ik probeer te zeggen dat er veel bewegende delen zijn. Er is geen enkel stuk code of een klassemodule die dit voor u doet.


8
2017-07-26 20:16



Er zijn een aantal programma's die je kunt kopen die dit doen (google "converteer midi naar WAV"), maar ik ben nog nooit tegengekomen openbare .Net-code die dit doet (ik denk dat sommige van deze programma's zijn geschreven. Net, maar de broncode is niet beschikbaar).

Ik heb een online vriend die werkt aan een commerciële MIDI-naar-WAV-converter, maar deze bevindt zich niet in .Net en is geen open source. Zoals Robert Harvey al zei, dit is helemaal geen eenvoudige taak, omdat het in feite gaat om het schrijven van je eigen software synthesizer (een taak naar mijn eigen hart).


0
2017-07-26 20:21