Generazione automatizzata di file audio per singole note musicali su un Mac


1

Ho un compito specifico che voglio svolgere ... Sto cercando di capire se esiste un modo per farlo. Fondamentalmente, per un progetto a cui sto lavorando, voglio creare file audio per singole note musicali.

Quindi, ad esempio, un piano che suona un singolo suono "A" sarebbe un file. Un piano che suona un suono "B" sarebbe un altro file.

Vorrei farlo per un gran numero di strumenti. So che Mac OS ha strumenti MIDI integrati. Sono stato in grado di creare manualmente i tipi di file che sto cercando in Garage Band suonando uno strumento software, salvando il file e modificando il tono.

Ciò richiede tempo, tuttavia, e penso che il processo potrebbe essere automatizzato. Forse se potessi creare un file MIDI con la riga di comando e poi convertire quel file MIDI in un file audio, potrei farlo con uno script di shell?

Qualcuno ha qualche consiglio per mettermi sulla buona strada?

Risposte:


1

La soluzione che ho usato riguardava abc2midi e Amadeus Pro, anche se sembra che avrei potuto usare FluidSynth se avessi voluto passare alla riga di comando completa. Fondamentalmente, ho creato un file abc modello simile a questo

X:1
M:4/4
K:C
%%MIDI program number
note z

poi ho sostituito "numero" e "nota" con uno script shell simile a questo

#/bin/sh

for i in {0..127}
do
    for j in C ^C D ^D E F ^F G ^F A ^A B c ^c d ^d e f ^f g ^g a ^a b c\'
    do
        sed "s/number/$i/g" template | sed "s/note/$j/g" > $i$j.abc
    done
done

for file in *.abc
do
    abc2midi $file
done

A quel punto, questo in pratica mi ha dato una cartella piena di file MIDI che avrei potuto usare un sintetizzatore per trasformarli in file WAV. Qui, li ho elaborati in batch con Amadeus Pro (che è un'applicazione commerciale).

Capisco che anche un sintetizzatore a riga di comando come FluidSynth avrebbe funzionato, ma questo era solo un (piccolo) passo nel mio progetto e stavo cercando di farlo nel modo più veloce possibile, non di creare la soluzione più elegante, quindi non l'ho fatto t prenditi il ​​tempo per farlo funzionare e aggiungilo al mio script di shell.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.