Salte la navegación

Hasta ahora no hemos hablado de una las decisiones principales del proyecto: la tecnología/s a utilizar.

Ya de partida suponemos que se van a utilizar varias, ya que hay partes muy distintas, así que la herramienta ha de ser potente, multiplataforma y versátil, es decir que permita comunicarse con otro tipo componentes escritos, quien sabe, en otro lenguaje más específico y mediante tecnologías muy diversas (servicios web, remoting…)

Con todo ello, para la creación del Core (que es la parte inicial del proyecto) hemos ido hacia dos posibilidades: plataforma Java y plataforma .Net/Mono.

Ambas son conocidas por todos y con multitud de herramientas y paquetes extras o extensiones, pero al final la opción elegida ha sido .Net/Mono. La razón: tiene toda la potencia que necesitamos, es una plataforma en la que ahora mismo nos encontramos más cómodos que en java y nos permite acceder a extensiones externas que hoy por hoy desconozco si existen en Java (como interfaces xaml). De todas maneras no me extrañaria la utilización de Java en algún otro lugar del sistema.

Para la programación sobre esta plataforma se va a utilizar c#. (lo de c++ en modo protegido es para locos, y lo de visual basic… no merece ni comentarlo :) )

Java | Java Developers

Mono | Proyecto mono

.Net | Microsoft .NET Framework

La idea del post es aclarar cuales son los posibles escenarios de trabajo de iValo, para definir su esquema funcional de conexiones y sus métodos de instalación.

Ni la base de datos ni, por supuesto, la biblioteca son tenidas en cuenta a la hora la definición de los escenarios, ya que pueden (o mejor dicho deben) existir fuera del ámbito directo de iValo, es decir, se puede acceder a ellas de manera aislada.

Escenarios

  • E1: instalación completa en estación de trabajo. [WC] Es el escenario más real, el que será más utilizado por un simple tema de recursos (es más complicado encontrar usuarios con un servidor dedicado en casa)
  • E2: instalación sin servidor web (sin control remoto) en estación de trabajo. [WP]. iValo pasaría a ser una especie de player completo. Evita la instalación de un servidor http y su funcionamiento como servicio
  • E3: instalación en modo cliente – servidor [CS]. Es la instalación idónea, la más cercana al objetivo que se quiere conseguir de un sistema doméstico de audición.

En cualquiera de los escenarios, será necesaria la instalación obligatoria del player en cada una de las máquinas existentes.

Como de todo se aprende, a partir de hoy vamos a ir incluyendo posts que muestren soluciones “parecidas” a lo que pretendemos obtener, ya sean software, aparatos electrónicos, altavoces, … a las que normalmente les falta algo o son muy caras, y de la que, como no, pretendemos sacar ideas :)

Opun No4

Para empezar un servidor de música, Opus No4. Es un aparato basado en un disco duro de hasta 1 TB de capacidad, con un lector de CD para introducr la música y una patalla para poder seleccionar lo que queremos oir. La música la emite via Wifi al Melody No2, al que podremos conectar unos altavoces.

De partida, lo primero a decir es que es bastante caro, alrededor de 1600$. Además estéticamente no me convence demasiado, las canciones aparentemente sólo pueden introducirse ripeando los CD y las posibilidades de selección de la música o creación de playlists parecen limitadas.

Visto en | Xataka
+Info | Olive

En este gráfico se puede observar un esquema general del funcionamiento de iValo

Esquema general iValo

(pincha en la imagen para verla más grande)

donde se muestran:

  • Conexiones con volúmenes donde se almacena la discoteca. Estos volúmenes pueden ser internos o externos
  • Sincronización con dispositivos portatiles de audio
  • Conexión con CD/DVD/BlueRay para la creación/restauración de copias de seguridad o conversión automática de CD-Audio a mp3/ogg
  • Salida a servidor web para el uso vía wifi del sistema mediante dispositivo móviles (funcionalidad mando a distancia)
  • Conexión a Internet para la obtención de datos sobre las canciones: letras, CDDB para la automatización del ripeo, escucha de emisoras de radio
  • Salida de audio para al escucha de la música

Además se modeliza iValo en cuatro bloques:

  • iCore: kernel del sistema. Soporta todas las funcionalidades comunes
  • iWeb: gestiona la web interna para la conexión con dispositivos externos
  • iCM: programa cliente que permite la gestión y configuración de todo el sistema
  • iRobot: robot que realiza las labores de mantenimiento de la discoteca

El primer paso a dar es definir cuales van a ser las especificaciones de iValo: que es lo que pretendemos que haga y como queremos que funcione.

  • Reproducción de audio digital en formato .mp3 y .ogg
  • Reproducción de radio por internet
  • Discoteca almacenada en uno o varios dispositivos (discos duros)
  • Control con un alto grado de automatización de inserciones, borrados y ediciones de elementos de biblioteca (canciones)
  • Control de la información mediante base de datos
  • Gestor de la base de datos para la búsqueda detallada de música
  • Gestión de listas de reproducción, tanto manuales como inteligentes
  • Sincronización con dispositivos DAP (reproductores digitales portátiles de música…)
  • Reproducción de distintos canales simultáneamente
  • Control inalámbrico del sistema mediante dispositivos móviles
  • Mantenimiento de copias de seguridad de los dispositivos de almacenamiento
  • Coste material reducido
  • Sistema software multiplataforma (GNU/Linx, MacOS, Windows)
  • Multilenguaje
  • Importación listas de reproducción de otros sistemas
  • “Sincronización” con otros sistema iValo
  • Escalabilidad mediante add-ons/plug-in

Más o menos estas van ser las especificaciones generales y de las que esperamos no salirnos (el tiempo nos dirá :) ). Cada vez que entremos en uno de los módulos de desarrollo ya iremos detallando las de cada uno en particular con un grado de detalle mayor. Toda sugerencia o idea será bien recibida :)

Este va a ser a partir de hoy un blog dedicado exclusivamente al desarrollo de iValo, un gestor de contenidos musicales (GCM). El objetivo es doble: crear un sistema informático que no sólo pueda reproducir música (los hay a cientos y muy buenos), sino que además pueda realizar muchas de las operaciones necesarias para el manteniemto y manejo de una buena y amplia discoteca (¿o debería decir mp3teca? ;) ; y por otra parte aprender todo lo que podamos en el desarrollo.

Obviamente existen muchos sistemas informáticos/electrónicos que cubren muchas de las especificaciones que en un futuro post detallaremos, pero creemos que no hay ninguna que las cubra todas… y además a buen precio. Ya iremos posteando posibilidades comerciales (o libres) que vayan apareciendo en el mercado.

A través de esta página esperamos poder ir mostrando los avances, pero también las ideas, las dudas, el proceso interno de desarrollo, y otras muchas cosas relacionados con la creación de la aplicación y de sus componentes físicos. Y por supuesto esperamos comentarios, ideas y ayuda para poder hacer una aplicación que cubra las necesidad de la mayor gente posible.

Por supuesto esto lo hacemos por amor al arte, así que sabemos cuando empezamos… pero no cuando acabaremos… si es que acabamos algún dia ;) (más nos vale porque somos los primeros interesados en usarlo)

Seguir

Get every new post delivered to your Inbox.