7
votes

Convertir Soundfont en fichiers .wav pour chaque note

Y a-t-il un moyen simple de convertir un fichier de police sonore vers .wav (ou tout format de musique commun, vraiment), séparé pour chaque note?

Alors disons que j'avais une police sonore A.SFZ ; Je tiens à en sortir une liste de fichiers a0.wav , a # 0.wav , b0.wav , C1.wav , c # 1.wav , etc.

en particulier, je veux avoir un .wav pour chaque note, ce qui me semble ne pas être quelque chose que la police sonore a par lui-même (il semble que cela n'a que des échantillons de quelques notes à part - - Je suppose que le logiciel est censé modifier la hauteur des échantillons contenus dans les polices de son pour obtenir les sons des notes restantes, mais j'aimerais générer des fichiers .wav pour toutes les notes directement, afin que je n'ai pas besoin de modifier la hauteur des échantillons de quelque manière que ce soit).

S'il y a un logiciel qui fait cela, parfait, veuillez fournir un lien, mais je n'ai trouvé aucun (tous ceux que j'ai trouvés uniquement générer .wav Fichiers quelques notes à part). Sinon, comment puis-je continuer à le faire par programme?


0 commentaires

5 Réponses :


0
votes

Vous pouvez écrire un programme pour le faire. Utilisez la bibliothèque RTAUDIO et FLUIDSYNTH pour générer de manière programmable tous les emplacements que vous souhaitez jouer. Lorsque ces emplacements sont générés, écrivez-les comme des fichiers d'ondes. Ce programme pourrait être réutilisé pour toute police sonore. Vous pouvez trouver les bibliothèques à l'aide de Google.


0 commentaires

1
votes

Sous Linux, vous pouvez utiliser Swami ( http://www.swamiproject.org/ ) pour gérer le Fichier Soundfont (au format SF2).


2 commentaires

Merci, cela a travaillé pour moi. J'ai essayé d'extraire les échantillons .wav des fils de son de musclus. Je n'ai pas réussi à le faire avec sf2extract mais je pourrais extraire tous les échantillons via l'interface graphique à Swami.


Heureux de savoir. Peut-être que vous pouvez uplifier ma réponse. ;-)



0
votes

Importer votre fichier SF dans Audacity comme importation> Données brutes.

Vous pouvez ensuite l'exporter comme un fichier audio tel qu'une WAV ou un MP3

J'ai de nouveaux correctifs audio qui étaient SF2 et mon logiciel de composition ne les a pas reconnus. A fait une recherche Internet et n'a rien eu. J'ai donc fait cette audace et cela a fonctionné pour moi. Spécifiquement à ce que vous avez demandé, mon fichier était une trompette qui joue une échelle de notes. J'ai supprimé toutes les notes mais la première et exportée cette seule note. J'ai copié l'exportation (WAV) dans mon dossier Soundbank et j'ai pu composer dans différents emplacements avec via un petit fichier. Et maintenant ... environ 30 autres instruments pour appliquer ceci à!


0 commentaires

0
votes

J'ai écrit un outil simple pour cela. Nœud.js est tenu d'être installé.

Instructions pour Linux (Adapter pour les autres OS): P>

  1. Créer un nouveau module NodeJS:
    for f in *.mid; do timidity $f -Ow -o ${f%.mid}.wav; done
    
  2. créer index.js code> avec le contenu suivant: p>

    const fs = require('fs');
    const MidiWriter = require('midi-writer-js');
    
    for (let octave = 0; octave <= 8; octave++) {
      for (const note of ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#',  'G', 'G#', 'A', 'A#', 'B']) {
        const track = new MidiWriter.Track();
        track.addEvent(new MidiWriter.ProgramChangeEvent({ instrument: 10 }));
        track.addEvent(new MidiWriter.NoteEvent({ pitch: [`${note}${octave}`], duration: '8', velocity: 100 }));
        fs.writeFileSync(`${note}${octave}.mid`, new MidiWriter.Writer(track).buildFile());
      }
    }
    
    
  3. N'hésitez pas à modifier la plage d'octave, le type d'instrument (pour correspondre à votre son de son), la durée et le volume (VELOCITY) LI>
  4. Exécuter nœud. code> li>
  5. Installez votre Soundfont Li>
  6. Convertissez des fichiers MIDI générés vers des fichiers WAV:
    mkdir midigen && cd midigen && npm init -y && npm i --save midi-writer-js
    


0 commentaires