Porfolio

Datune

2017 - Actualidad

Conjunto librerías multipaquete para el análisis y la composición musical. Entre los varios paquetes, destacan:
  • Core: definición de estructuras musicales y sus operaciones. Notas, escalas, tonalidades, acordes, funciones tonales, ritmos, SPN, sistemas de afinación, perspectiva cromática y diatónica, etc.
  • A. I.: Generación de músicas por inteligencia artificial por backtracking y redes bayesianas, desde un enfoque de música tonal y modal.
  • Analyzer: Estima abstracciones musicales complejas a partir de una secuencia de notas musicales.
  • MIDI: Carga, guardado y tratamiento de archivos y mensajes MIDI.

MCenter

2021 - Actualidad

Multimedia Center. Servicio de gestión de contenidos multimedia, con una interfaz web de usuario. Se puede gestionar fácilmente una colección de contenidos multimedia, como videos, música, documentos, imágenes, etc. Utiliza un mismo marco normalizado de urls para acceder directamente a cada recurso, además de un API REST para poder gestionar sus metadatos. Permite la creación de grupos de recursos (como si fueran playlists), que a su vez pueden contener otros grupos.
Incluye y generaliza la funcionalidad del proyecto Music Library.

Backups

2021

TypeScript
TypeScript
Node.js
Node.js
Jest
Jest
Herramienta de consola para la generación de backups de archivos y carpetas. Es capaz de comprimir los backups en formatos ZIP e ISO, y también de generar una lista de archivos a incluir en el backup. Comprueba la integridad de los archivos y carpetas.

Datils Node

2021 - 2022

TypeScript
TypeScript
Node.js
Node.js
Jest
Jest
Conjunto de utilidades para Node y JavaScript/TypeScript en general. Utilidades para Docker, Bases de Datos, Shell, etc.

NPGen

2021

TypeScript
TypeScript
Node.js
Node.js
Jest
Jest
Node Project Generator (NPGen). Generador de proyectos Node.js. Genera un proyecto de Node.js con una estructura de directorios y archivos predeterminada en función de la plantilla elegida. Instala y configura todas las dependencias de un proyecto completo (testing, linters, scripts...) de forma automática. También permite configurar plantillas para flexbilizar la generación de proyectos.

Music Library

2021

Gestor backend para la reproducción de música. Permite la gestión de música en una base de datos MongoDB, y la reproducción de música mediante una API REST. También permite la gestión de usuarios y permisos de acceso.
Nota: el proyecto ha sido integrado posteriormente en MCenter y el repositorio ha sido archivado y marcado como privado.
Código fuente
Logo GitHubGitHubmuslib

date-ops

2021

TypeScript
TypeScript
Jest
Jest
Operaciones avanzadas y simples con fechas y calendarios. Utiliza Luxon para representar fechas y horas.
Los calendarios permiten añadir días laborales, no laborales, fiesta pública, etc. y comprobar si una fecha dada cumple alguna de estas condiciones. Permite añadir festividades que varían según el año (como por ejemplo, Pascua)
Entre las operaciones con fechas, destacan la búsqueda del n-gésimo día de la semana en un mes, encontrar el siguiente o anterior día de la semana dada una fecha.
Incluye también la recuperación de algunas fechas variables dado un año: día de la madre, pascua y día de acción de gracias.

rand-picker

2021

TypeScript
TypeScript
Jest
Jest
Un poderoso seleccionador de elementos aleatorios con gran variedad de opciones. Fácil de usar.
Incluye algunas operaciones básicas como dada una lista de elementos, escoger uno o más elementos aleatoriamente. Puede configurarse si los elementos escogidos desaparecen de la lista o no.
Permite opciones más avanzadas como dar un peso a cada elemento escogiendo los elementos aleatoriamente con la probabilidad dada. También permite escoger elementos únicos sin eliminarlos de la lista. Tiene además una opción para escoger grupos secuenciales de elementos. Puede hacerse una composición de seleccionadores (uno dentro de otro).
Si la aleatoriedad de Math.rand no fuera suficiente, incluye un modo más seguro para generar números aleatorios.

math-fx

2021

TypeScript
TypeScript
Jest
Jest
Un evaluador de funciones matemáticas. Por defecto permite definir polinomios y funciones definidas por partes, pero permite definir funciones personalizadas. Permite evaluar todo tipo de funciones.

Datune4j

2017 - 2020

Java
Java
JUnit
JUnit
Librería para el análisis y la composición musical. Destacan la definición de estructuras musicales y sus operaciones.
Notas, escalas, tonalidades, acordes, funciones tonales, ritmos, SPN, sistemas de afinación, perspectiva cromática y diatónica, etc.
Analiza y estima abstracciones musicales complejas a partir de una secuencia de notas musicales.
Permite la carga, guardado y tratamiento de archivos y mensajes MIDI.

Nota: Este proyecto fue abandonado en Java y transformado en Datune en TypeScript.

Datils4j

2019 - 2020

Java
Java
JUnit
JUnit
Conjunto de utilidades para Java (y Kotlin). Utilidades para Arrays, Hashing, estructuras de datos (Trees, Maps, Lists, Sets), archivos (texto y binarios), logging, funciones matemáticas, strings, fechas, números aleatorios, etc.

Random

2019

Java
Java
JUnit
JUnit
Un seleccionador de elementos aleatorios de varios tipos. Fácil de usar.
Incluye algunas operaciones básicas como dada una lista de elementos, escoger un elemento aleatoriamente. Puede personalizarse para que ocurra algo después de que el elemento sea escogido (listener).
Un tipo más avanzado de seleccionador permite asignar un peso a cada elemento escogiendo los elementos aleatoriamente con la probabilidad dada.
Si la aleatoriedad de java.util.Random no fuera suficiente, incluye un modo más seguro para generar números aleatorios con java.security.SecureRandom.

Questions

2019

Java
Java
JUnit
JUnit
Un complejo sistema de Pregunta-Respuesta desarrollado en Java.
Es un sistema abstracto al que a cada pregunta se le asigna una solución. Al usuario se le muestra una pregunta del tipo que sea y éste debe introducir una respuesta del tipo que permita la pregunta. La solución de la pregunta comprueba si la respuesta es válida (una misma solución puede tener varias respuestas válidas).
Incluye ya programadas las preguntas y respuestas de texto básicas, de regex y de tipo test.
La capacidad de abstracción de esta librería permite que se pueda extender a cualquier tipo de preguntas, soluciones o respuestas, pudiéndose incluso extender para que puedan utilizarse imágenes, audios u otros archivos multimedia como preguntas.

Mario EaselJS

2017

JavaScript
JavaScript
EaselJS
EaselJS
Videojuego de Super Mario en EaselJS creado durante el Máster Universitario en Ingeniería de Servicios y Aplicaciones Web (ISAW) en la Universidad de Valencia.

PBF

2015

C++
C++
OpenGL
OpenGL
Simulación en tiempo real de la técnica de Position Based Fluids (PBF) en OpenGL mediante shaders. Además, la visualización del fluido está realizada mediante la técnica de Screen Space Fluid Rendering con Curvature Flow.
Fue desarrollado durante el Grado en Ingeniería Multimedia en la Universidad de Valencia.

Proyecto Animación

2013-2014

C++
C++
OpenGL
OpenGL
Se trata de un pequeño juego de plataformas 3D desarrollado con OpenGL nativo donde se muestran diversas técnicas en el campo de la animación como la interpolación slerp, las curvas spline o los cuaterniones. Existe un vídeo explicativo más técnico donde se explican los diversos aspectos de implementación matemática con mayor nivel de detalle.
Fue desarrollado como proyecto final de la asignatura Animación durante el Grado en Ingeniería Multimedia en la Universidad de Valencia.
Nota: Los binarios descargables sólo funcionan en Windows.

Tríos, tríos everywhere

2012-2013

Java
Java
Basado en el juego clásico de emparejados. El usuario deberá encontrar parejas de cartas iguales, las cuales sólo son visibles cuando se eleccionan. El juego termina cuando todas las cartas han sido emparejadas.
Tiene una amplia variedad de configuraciones y modos. Se puede configurar para que el conjunto de cartas iguales sean tríos, cuartetos o parejas. Se puede ajustar el nivel de dificultad. Se puede seleccionar el idioma (castellano, valenciano o inglés). También se puede elegir la baraja de cartas (Colores, Dragon Ball, Pokémon, Los Simpson). Entre otras opciones.
Fue desarrollado como proyecto final de la asignatura Animación durante el Grado en Ingeniería Multimedia en la Universidad de Valencia.
Nota: Los binarios descargables sólo funcionan en Windows.

Los juegos de ByDSA

2012

Game Maker
Game Maker
Consiste en un juego de tres minijuegos desarrollados con Game Maker 8.1:
  • Arkanoid: Mediante el ratón o las flechas de dirección se desplaza una barra en la que rebota una pelota. El objetivo es, con ayuda de esta pelota, destruir todos los bloques.
  • Maze - Packman, el hombre de los paquetes: El hombre de los paquetes deberá recorrer una serie de laberintos sorteando enemigos y recogiendo todos los paquetes que haya en el escenario.
  • Plataformas - Las aventuras de Chorromán: Chorromán deberá eliminar a todos los enemigos del escenario mediante su chorro con diferentes niveles de poder.

Fue desarrollado como proyecto final de la asignatura Comunicación Interactiva durante el Grado en Ingeniería Multimedia en la Universidad de Valencia.
Nota: Los binarios descargables sólo funcionan en Windows.

Pokéman (2009)

2009

Game Maker
Game Maker
Se trata de la culminación de un proyecto descontinuado en 2004. Con un sistema de movimiento, combates, sonido y menús totalmente renovado.
Juego basado en el fanfic propio Pokéman que trata sobre niños que se transforman en Pokémon. Una aventura RPG basada en los gráficos y mecánicas de los juegos de Pokémon de Game Boy Advance en la que un grupo de niños intenta batir a los malos que quieren gobernar el Mundo Pokémon.
Nota: Los binarios descargables sólo funcionan en Windows.

Pokéman (2004)

2004

Game Maker
Game Maker
Juego basado en el fanfic propio Pokéman que trata sobre niños que se transforman en Pokémon. Una aventura RPG basada en los gráficos y mecánicas de los juegos de Pokémon de Game Boy Advance en la que un grupo de niños intenta batir a los malos que quieren gobernar el Mundo Pokémon.
El proyecto fue abandonado a causa a falta de capacidades técnicas de desarrollo y posteriormente rehecho en otro proyecto.
Nota: Los binarios descargables sólo funcionan en Windows.

Pokéman (Primer Intento)

2004

Game Maker
Game Maker
Juego basado en el fanfic propio Pokéman que trata sobre niños que se transforman en Pokémon. Una aventura RPG basada en los gráficos y mecánicas de los juegos de Pokémon de Game Boy Advance en la que un grupo de niños intenta batir a los malos que quieren gobernar el Mundo Pokémon.
Éste fue el primer intento de desarrollo. El proyecto fue abandonado a causa a falta de capacidades técnicas de desarrollo y posteriormente rehecho en otro proyecto.
Nota: Los binarios descargables sólo funcionan en Windows.