Home - kyv/rockola GitHub Wiki
Proyecto Rockola Radiofonica
I. Origin
Despues algun tiempo de estar grabando musica en colaboracion con las radios comunitarias de oaxaca, principalmente de la sierra norte, eventualmente si surgio la necesidad de subir estos audios a alguna lugar en el internet para socializar acesso a ellos. En su primer encarnacion la rockola consistia de una lista de reproduccion que transmistia esta audios por internet. Esta radio por internet era y es uno de varios que si hospedaba en radio.flujos.org y que si encuentra listado en la misma pagina.
Posteriormente dudas empezaban surgir en cuanto a esta transmission por internet de la rockola. Como era publicamente acessible, si recibio preguntas de donde estaba esta radio. Quien era el resposable. Y finalmente como uno podria contribuir sus audios a la rockola. A partir de estas preguntas si empezaba definir las metas para un siguiente fase de trabajo en la creacion de un radio por internet virtual sustenido para un comunidad de uso. Esta radio tendra su enfoque en la musica regional de oaxaca, para empezar, y mexico en general.
II. Metas
Aun que La Rockolateca Radiofonica esta abierta y su desarollo podrá tomar distintos formas, hay un numero de objetivos que son centrales y prioritarios.
- En lo mas basico, consiste en una reproductor de audio con una lista de reprodoccion igual o aparecido a lo que generalmente si utiliza en la programacion de contenidos en un estacion de radio (la cola de reproduccion).
- Es una biblioteca. Si puede buscar audio en la biblioteca y agregarlo a la lista.
- Si puede subir audio a la rockola desde cualcuier computadora conectado al internet.
- Si puede programar la rockola, crear listas proprios, y calendarizar su reproduccion.
- Si puede programar otras radios por internet en la rockola.
- Soporte para una sistema de etiquetas libres para la categorizacion y navegacion de la biblioteca.
- Una listado de radios de internet de radios participantes o afines.
- Soporte para la automatizacion de grabacion de emisiones en vivo y su insercion en la biblioteca y calandarizacion en la programacion de la rockola.
- La rockola es una plantilla que podrá servir a otros proyectos de radio. Entonces debe de reutilizable y relativamente facil implementar para terceras. Ademas debe de soportar la mayoria de los aspectos que estamos acosombrado encontrar en un blog, textos, imagenes, etc.
- Software libre. El codigo si mantenga bajo una licencia que permite mejoras desde su communidad de uso y debe de soportar formatos de audio libres.
- Por seguridad intercambio de datos debe de ocurrir sobre un conexcion cifrado.
- Tanto su interfaz como sus contenidos debe ser clonables, por ejemplo para utilizar la bilioteca de audio fuera de linea en una radio comunitaria. Por lo mismo promovemos licencias abiertos de contenidos, creative commons y lo demas, pero dejamos el opcion a usuario elijir si quire compartir sus contenidos o no.
Por su diversidad y complejidad de metas hemos dividido el proyecto en fases de trabajo, cada uno coresponde a un mes de trabajo. El primer fase coresponde a diseño y elaboracion del base y fundacion del trabajo. El segundo fase a mejores de usabilidad, interfaz, documentacion, y seguridad y el tercer fase a optimizacion, interactacion con git y mas documentacion.
III. Diseño
En su forma mas sencillo la Rockola Radiofonica consiste en una oja de html, un sencillo API escrito en ruby a treves de lo cual uno puede interactuar con la biblioteca de musica del lado del servidor, y un monton de javascript que proporciona un interfaz para controlar el API en el navegador. Aun que lo cosideramos fuera del alcanze de esta proyecto, esta diseño facilitaria el diseño de las puertas abiertas a otros interfaz que podria interactuar con el API de la rockola.
Por ejemplo, a pedir de la rockola su cola la cola de reproduccion, nos devuelva la cola en formato json:
https://rockola.flujos.org/cola => json: [{ rola_actual, cola_rola_1, cola_rola_1 }]
El mismo codigo que propociona el API de la rockola trabaja en conjunto con el modulo de subidos de nginx para propocionar subidos de audio velozes y de alta confianza.
IV. Fase Primaria
El primer objetivo es de proporcionar interactivo con usuarios atreves del web. En principio para poder visualizar la lista de reproducción, y permitir que contribuye audio a la rockola. En especifico:
- Crear un reproductor de audio tomando las sugerencias de los mejores opciones que hay hoy en dia. Este reproductor debe de soportar formatos libres y debe de funcionar como cualcuier reproductor, con una lista de reprouccion que uno puede editar.
- En seguida diseñamos un estilo sencillo pero atractivo para la pagina utilizando puro css segun los estandares de usabilidad.
- Incluir presentacion de radios por internet afines en la rockola. Estos aparecen como una listdo de los nombres de los radios y cuando si hace click si cargan en el reproductor.
- Diseñar sistema de etiquetas y presentarlos como nube, donde las etiquetas mas usados son los mas grandes, en la pagina.
- Crear un buscador que permite buscar en la biblioteca y agregar entradas a la lista de reproduccion.
- Implementar un sistema de registro de usuarios.
- Implementar subida de audio para usuarios registrados.
- Permitir la creación de listas de reproducción del parte del usuario.
- Permitir que el usuario registrado edita los datos de sus audios y los borra de la sistema.
- Habilitar conexión cifrado sobre ssl.
V. Fase Secundaria
Una vez que hemos construido los bases sobre lo cuales vamos a trabajar, vuelva necesario tomar un momento de reflexión para contemplar el uso de la rockola. De que forma podemos mejorarlo? Estos mejoras vienen tanto en la forma de cambios en diseño como en trabajo en el API de la rockola.
- En la listada de radios por Internet no debe de aparecer duplicados donde un radio transmite en varios formatos. Sino, mientras que sean los mismos contenidos, deben de ser combinados, con enlaces hacia las distintas formatos.
- El reproductor debe de no presentar audios que el navegador no puede reproductor, evitando confusión del parte del usuario de porque no puede reproducir tal audio.
- El buscador debe de presentar artista y nombre en respuesta a una búsqueda en lugar del nombre del fichero, o en todos casos todos estos detalles.
- Los botones del reproductor deben de moverse a la columna derecho, dejando la columna central para las listas de reproducción, entradas del blog, galerías de imágenes y textos de ayuda.
- Soporte para múltiples subidas en el mismo formulario.
- Mostrar progreso de subidas en tiempo real.
- Soporte para subida de imágenes y asociación de imagen a un audio.
- Soporte para subida de textos, estilo blog y/o wiki.
- La CAPTCHA debe de cargarse atreves del API, para que los datos si cargan por conexión cifrada.
- Mejoras de detección de tipos de audio, para prevenir subidas de otros formatos.
- Implementar barra programática de forma que las listas de usuarios pueden ser programados para reproducción a una fecha y hora especifico.
- Mostrar como fondo de la pagina el imagen asociado con el canción actual.
- Implementar Iframe(s) para compartir audios y listas en otros sitios.
- Agregar campo para elegir licencia de contenidos.
VI. Fase Terciaria
El tercer fase si dedica a funcionalidades mas avanzadas y el brillo del proyecto. Los contenidos serian integrados en un repositorio de git, permitiendo que la biblioteca si clonea en un jalon. A demas si tomaria surgerencias de su comunidad que si han acercados en los primeros fases.
- Integrar API de git, todos contenidos 'libres' pueden ser clonados.
- Agregar campo para el usuario elegir si sus contenidos son 'libres' on no.
- Implementar grabacion de radios por internet y la inclusion de estos grabaciones en las audiotecas de los usuarios.
- Sistema de ratings (de 0 a 5 estrellas).
- Adaptar programacion automatizado para tomar en cuenta los ratings.
- Facilitar el uso de la rockola como plantilla para paginas de radios comunitarias.
- Implementar comparticion de audios con otros usuarios, a decir, permitir otros usuarios editar los etiquetas de los mios.
- Implementar API de mapas (google, openstreetmaps, etc). para visualizar los origenes de la musica.
- Implementar API de musicbrainz para rastreo de audios atreves de sus huellas acusticas.
- Permitir edicion sencillo de audio en linea, limitado a principio o fin. A decir, si quisiera que el audio no empieza al principio sino despues de unos segundos y si termina de reproducir antes del final del fichero.
- Interactuar con sitios populares, face, twitter, etc