aquí está el estado de avance)
Las único que me ha costado solucionar es el tema de los nombres de archivo, que en Linux, como sabemos se distingue entre mayúsculas y minúsculas.
Al final lo que hice fue crear el siguiente script:
Hay que guardarlo en la misma carpeta donde están los archivos sfz, darle permiso de ejecución y luego ejecutarlo.
Los archivos modificados se guardan en un directorio nuevo llamado "modificados", originalmente quería
Sobre el script, cabe señalar que hay que afinar algunos detalles, por ejemplo, al principio cree un montón de variables que resultaron no ser necesarias. También quería chequear la capitalización de todos los archivos y no sólo las carpetas que los contienen, pero me da flojera terminarlo.
En términos generales funciona y hace lo que se supone que debe hacer que es corregir la capitalización de los nombres de archivo en los sfz de la Sonatina Symphonic Orchestra. He probado varias muestras al azar y todas funcionan.
De todos modos hay por ahí por Internet versiones de la SSO con la capitalización previamente corregidas, lo que haría innecesario este script. Pero de todos modos considero que es preferible bajar la SSO de la página oficial y corregir la capitalización uno mismo ya que muchas de estas versiones corregidas son versiones más antiguas y les faltan algunas cosas.
En fin. Espero que a alguien le sirva.
Llevo bastante tiempo usando samples sfz en LinuxSampler, con resultados bastante satisfactorios. Independiente del hecho que la implementación del formato todavía está incompleta (
Las único que me ha costado solucionar es el tema de los nombres de archivo, que en Linux, como sabemos se distingue entre mayúsculas y minúsculas.
Al final lo que hice fue crear el siguiente script:
Alguien escribió:#!/bin/bash
mkdir modificados
touch sampledb
for file in Samples/*
do
echo -n $file: >> sampledb
echo `ls "$file"` >> sampledb
done
for file in *.sfz
do
samples=$(cat "$file" | grep "^sample")
echo "== Archivo: $file =="
original=$(cat << EOF | head -n 1 | sed 's/^\([a-z]*=\)\([a-zA-Z1-9 ]*\\[a-zA-Z1-9 ]*\)\\\(.*\)$/\2/g'
$samples
EOF
)
reemplazo=$(cat sampledb | grep -i "$(echo $original | sed 's:\\:/:g')" | head -n 1 | cut -d ":" -f 1)
echo Es necesario reemplazar $original por $reemplazo
oo1=$(echo $original | cut -d '\' -f 1)
rr1=$(echo $reemplazo | cut -d '/' -f 1)
oo2=$(echo $original | cut -d '\' -f 2)
rr2=$(echo $reemplazo | cut -d '/' -f 2)
cat "$file" | sed -r 's/'"$oo1"'\\'"$oo2"'/'"$rr1"'\\'"$rr2/g" > "modificados/$file"
done
rm sampledb
Hay que guardarlo en la misma carpeta donde están los archivos sfz, darle permiso de ejecución y luego ejecutarlo.
Los archivos modificados se guardan en un directorio nuevo llamado "modificados", originalmente quería
Sobre el script, cabe señalar que hay que afinar algunos detalles, por ejemplo, al principio cree un montón de variables que resultaron no ser necesarias. También quería chequear la capitalización de todos los archivos y no sólo las carpetas que los contienen, pero me da flojera terminarlo.
En términos generales funciona y hace lo que se supone que debe hacer que es corregir la capitalización de los nombres de archivo en los sfz de la Sonatina Symphonic Orchestra. He probado varias muestras al azar y todas funcionan.
De todos modos hay por ahí por Internet versiones de la SSO con la capitalización previamente corregidas, lo que haría innecesario este script. Pero de todos modos considero que es preferible bajar la SSO de la página oficial y corregir la capitalización uno mismo ya que muchas de estas versiones corregidas son versiones más antiguas y les faltan algunas cosas.
En fin. Espero que a alguien le sirva.