En las últimas semanas he estado experimentando con el código fuente de UltraStar WorldParty, y hasta me he animado a intentar añadir (con más éxito del que me esperaba) una función que echaba en falta desde hacía mucho, pero he tenido un pequeño problema por el camino:
(Parte de compilar alfa desde fuente)
Al intentar compilar el código fuente de la versión alfa del juego tal y como está en el repositorio de GitHub, recibo una excepción en la línea 101 de "src\base\UAvatars.pas":
Código: Seleccionar todo
UAvatars.pas(101,28) Error: Ordinal expression expected
Código: Seleccionar todo
for Extension in ['jpg', 'png'] do // esta línea da el error
begin
Iterator := UFilesystem.FileSystem.FileFind(UPathUtils.AvatarsPath.Append('*.' + Extension), 0);
while Iterator.HasNext() do
begin
FileInfo := Iterator.Next();
Avatar := TAvatar.Create();
Avatar.Id := I;
Path := UPathUtils.AvatarsPath.Append(FileInfo.Name);
Avatar.MD5 := MD5Print(MD5File(Path.ToNative()));
Avatar.Texture := UTexture.Texture.LoadTexture(Path);
Self.Avatars.Add(Avatar);
Inc(I);
end;
end;
Yo lo he solucionado por mi cuenta en mi copia local deshaciendo el bucle así:
Código: Seleccionar todo
Extension := 'jpg';
{el código interior del bucle}
Extension := 'png';
{el código interior del bucle de nuevo}
(Parte de propuesta de característica)
Dicho esto, una vez "trucado" ese bucle para que me compilase, me he animado a añadir una función, porque siempre me ha fastidiado que podemos pulsar F7 para activar el filtro que intenta quitar la voz de la canción, pero con algunas canciones no lo consigue y con otras silencia la canción entera en lugar de sólo la voz (aunque, todo sea dicho, con algunas el resultado es sorprendentemente bueno).
Por eso, pensé que por qué no permitir poner con la canción un segundo archivo de audio que fuera el instrumental, y he conseguido añadir un nuevo parámetro a los txt de las canciones (lo he llamado "#INSTRUM") al que le puedes poner ese archivo de audio, y si este parámetro existe y se encuentra el archivo al que señala, al pulsar F7 en lugar de aplicar el filtro sobre el audio principal, se reproduce el instrumental sin filtro.
Lo he encontrado bastante útil para las canciones de las que sí existe un instrumental oficial, como muchas de las que vienen de películas, por ejemplo, y que, con asegurarse de que el instrumental empieza a la vez que el mp3 principal, se gana bastante calidad respecto al filtro.
Lo he probado bastante, y si una canción con este parámetro se mete en una versión que no lo entienda (como la 21.02), simplemente se ignora el parámetro (la canción funciona), y si una canción no lo tiene en una versión nueva no cambia nada respecto a cómo funcionaba el juego antes (F7 activa el filtro y como si este parámetro no existiese en el juego).
Como digo, lo tengo programado, probado y funcionando sin problemas sobre la última commit que hay en la alfa de GitHub ahora mismo, así que me encantaría compartíroslo para que pudieseis incorporarlo al juego, porque creo que es una función muy útil para los que nos gusta el reto de cantar sin la letra de fondo, y para quien no la vaya a usar, no le rompe nada ni le molesta en absoluto. Sólo es un pequeño plus para quien la quiera usar.
¿Cómo lo hacéis cuando alguien quiere contribuir con una característica? ¿Mediante una Pull Request de GitHub directamente?
Muchas gracias por todo, y un saludo.
Dragón Groar