jump to navigation

Video radioactivo enero 1, 2010

Posted by rtmex in Explicando la aplicación.
Tags: ,
add a comment

Hice un pequeño video para mostrar como funciona la programación automática de la aplicación y explicar rápidamente las otras opciones de programación (la programación manual, libre y de programa)

http://www.dailymotion.com/video/xbpbyn_music-scheduling-con-software-libre_tech

Opción de importación en el catálogo de canciones diciembre 27, 2009

Posted by rtmex in Explicando la aplicación.
Tags:
add a comment

La opción de importación en el catálogo de canciones permite extraer a partir de archivos ogg o mp3 el nombre de la canción, su duración, género, el álbum al que pertenece y el nombre del intérprete.

La importación genera dos archivos log, uno que indica los intérpretes, albums y canciones agregadas a sus respectivos catálogos (log_nuevos.txt) y otro que indica las canciones que no se agregaron al catálogo de canciones porque ya se encontraban registradas con ese intérprete (log_duplicados.txt).

Supongamos que en el catálogo de canciones ya existe la canción “Toda la vida” interpretada por Franco de Vita.

El proceso de importación se basa en el “tag” del archivo a importar para obtener el nombre de la canción, su duración, el intérprete, el nombre del álbum, etc.

Caso 1. El nombre del archivo seleccionado por el usuario para el proceso de importación es toda_la_vida.ogg y en su tag, el nombre de la canción es “Toda la vida” interpretada por Emmanuel, esta canción se agregará al catálogo de canciones debido a que ésta tiene un intérprete diferente al que indica la canción que ya se encuentra en el catálogo de canciones.

Caso 2. El nombre del archivo es toda_la_vida.mp3 y en su tag, el nombre de la canción es “Toda la vida (remix)” interpretada por Franco de Vita, esta canción se agregará al catálogo de canciones debido a que a pesar de que es el mismo intérprete que indica la canción “Toda la vida” que ya se encuentra en el catálogo de canciones, la canción a importar es diferente (“Toda la vida (remix)”).

Caso 3. El nombre del archivo es no_basta.ogg y en su tag, el nombre de la canción es “Toda la vida” interpretada por Franco de Vita, esta canción no se agregará al catálogo de canciones debido a que tanto el nombre de la canción como el del intérprete de la misma coinciden con la canción “Toda la vida” que ya se encuentra en el catálogo de canciones, recordemos que el proceso de importación se basa en el “tag” del archivo y no en el nombre de archivo.

La importación efectúa el siguiente proceso para cada archivo seleccionado:

  1. Busca el intérprete de la canción en el catálogo de intérpretes, si no lo encuentra, lo incluye en el log “log_nuevos.txt”, le asigna una clave de intérprete y lo inserta en el catálogo de intérpretes.
  2. Busca el álbum al que pertenece la canción en el catálogo de albums, si no lo encuentra, lo incluye en el log “log_nuevos.txt”, le asigna una clave de álbum y lo inserta en el catálogo de albums.
  3. Verifica si la canción ya se encuentra registrada con ese intérprete en el catálogo de canciones, de ser así, se incluye en el log “log_duplicados.txt” y no se agrega al catálogo de canciones. En caso contrario, se incluye en el log “log_nuevos.txt”, se le asigna una clave de canción y se agrega al catálogo de canciones.

Opciones de programación terminadas diciembre 16, 2009

Posted by rtmex in Avances.
Tags:
add a comment

El día 30 de Noviembre hice en el repositorio SVN del proyecto, el commit que incluye los módulos de programación libre, programación de programa, y el código correspondiente a la opción “guardar” en la programación automática.

Resumen de módulos terminados noviembre 13, 2009

Posted by rtmex in Avances.
Tags: ,
add a comment

Al momento ya están terminados los catálogos de:

  1. Estación
  2. Canción
  3. Género
  4. Categoría
  5. Identificación
  6. Anunciante
  7. Clasificación de Anuncio
  8. Anuncio
  9. Programa

Por ahora sólo he desarrollado los mantenimientos de estación, género y categoría.

Del menú de utilerías ya están listas las siguientes opciones:

  1. Seleccionar Estación
  2. Fórmula General
  3. Inventario de Canciones
  4. Inventario de Anuncios

Ya está terminada la opción de programación manual y actualmente estoy haciendo el módulo de programación libre para posteriormente empezar el módulo de programación de programas. A la programación automática sólo me falta programarle la opción de guardar la programación.

Les dejo una captura de pantalla de la programación automática

progauto

Estoy pensando incluir en todos los módulos desde donde se pueda generar una programación, una opción para generar un archivo ASCII que pueda utilizarse desde el programa IceCast. La idea es que se pueda automatizar una estación de radio con puro software libre utilizando Radioactivo para hacer el music scheduling (la programación) y IceCast para el streaming de audio (la transmisión).

Descripción del proyecto noviembre 12, 2009

Posted by rtmex in Uncategorized.
Tags: , ,
add a comment

Objetivo: Desarrollar un sistema que permita generar automáticamente la programación de una estación de radio.

Antecedentes
Las estaciones de radio tienen clasificadas las canciones que incluyen en su programación en:

  • Géneros. Son generalmente los que se manejan en la industria de la música en general (rock, pop, jazz, etc.).
  • Categorías. Son determinadas normalmente por el programador de la estación (se le llama programador a la persona que diseña la programación de la estación, es decir  que indica que canciones se van a transmitir y en que secuencia)

Esto significa que una misma canción puede pertenecer a una categoría llamada “80’s” en una estación y a una categoría llamada “oldies” en otra estación.

La información mínima que la estación de radio tiene sobre cada canción es el nombre de la canción, el nombre del intérprete, la duración de la canción, su género y su categoría.

Ejemplo:
Canción: In the name of love
Intérprete: U2
Duración: 3:46
Género: Rock
Categoría: Oldies

La programación no se diseña seleccionando canciones especificas una tras de otra, lo que se hace es diseñar una “fórmula” para la programación.
La fórmula consiste en definir el género y categoría al que debe pertenecer la canción que se pondrá en primer lugar, el género y categoría de la canción que se pondrá a continuación, etc.
La fórmula puede tener varios “renglones” y una vez procesado el último renglón, se vuelve a recorrer la fórmula desde el inicio y así sucesivamente hasta haber generado la programación para las horas requeridas.

Ejemplo de fórmula:

Renglón Género Categoría
1 Rock 80’s inglés
2 Rock Exito inglés
3 Pop Novedad
4 Hip Hop Exito
5 Rock 90’s español

Una vez que se ha definido la fórmula, el programador empieza a seleccionar las canciones que incluirá en la programación siguiendo la fórmula. Aunque esto pudiera parecer suficiente, normalmente los programadores
deben cuidar que no queden muy juntas 2 canciones del mismo intérprete, o que una canción no se vuelva a transmitir al poco tiempo de que fue transmitida.

Alcance
Algunas de las funciones con que contará el sistema una vez terminado son:

  1. Capacidad de manejar mas de una estación de radio
  2. Registro de canciones a través de:
    • Captura directa de la información
    • Extracción de la información a partir de archivos ogg o mp3. La información que se puede obtener de estos archivos es el nombre de la canción, intérprete, duración y género; posteriormente el usuario capturará la información faltante que se requiera de cada canción para poder incluir la canción en una programación (por ejemplo la categoría a la que pertenece).
  3. Catálogo general de canciones a partir del cual el usuario indicará qué canciones del catálogo estarán disponibles para cada estación de radio registrada. Una canción puede estar disponible para varias estaciones de radio.
  4. Catálogos generales de anunciantes, clasificaciones de anuncios, etc.
  5. Catálogos de géneros, categorías, etc. para cada estación
  6. Registro de programas predefinidos por cada estación incluyendo su horario de transmisión y su fórmula específica.
  7. Diferentes formas de generar una programación: automática, manual, libre y de programa.

Programación automática
Generará por completo la programación, para lo cual el usuario deberá introducir la siguiente información al sistema:

  1. Fórmula que desea utilizar para la programación (por default el sistema tomará la fórmula predefinida para la estación seleccionada).
  2. Fecha de la programación (cuando se pretende que se transmita la programación que se generará)
  3. Etiqueta de identificación para la programación (si no se indica, el sistema generará una automáticamente)
  4. Hora de inicio y hora de fin de la programación
  5. Número de temas por bloque de canciones (cuantas canciones consecutivas se deberán programar antes de el corte de anuncios)
  6. Duración del corte (cuanto tiempo durará cada corte de anuncios)
  7. Posición de la identificación de la estación (la identificación de la estación es el jingle que le indica al radio escucha que estación está sintonizando)
  8. Frecuencia de transmisión de la identificación de la estación (cada cuantos cortes se debe incluir la identificación de la estación, si no se indica, el sistema lo hará al azar)

Programación manual
A diferencia del método anterior, el usuario indicará la fórmula que desea utilizar para la programación y el sistema lo obligará a respetar dicha fórmula; sin embargo, se deberá seleccionar cada canción y la posición en que ésta será incluida en la programación, así como los anuncios y las posición de la identificación de la estación.
La información necesaria es la siguiente:

  1. Fórmula que desea utilizar para la programación (por default el sistema tomará la fórmula predefinida para la estación seleccionada).
  2. Fecha de la programación (cuando se pretende que se transmita la programación que se generará)
  3. Etiqueta de identificación para la programación (si no se indica, el sistema generará una automáticamente)
  4. Hora de inicio y hora de fin de la programación
  5. Número de temas por bloque de canciones y la duración del corte

Programación libre
Permitirá seleccionar arbitrariamente cada canción y la posición en que ésta será incluida en la programación, así como los anuncios y las posición de la identificación de la estación.
La información que se deberá introducir es la siguiente:

  1. Fecha de la programación (cuando se pretende que se transmita la programación que se generará)
  2. Etiqueta de identificación para la programación (si no se indica, el sistema generará una automáticamente)
  3. Hora de inicio y hora de fin de la programación

Programación de programa

Esta opción es para permitir al usuario hacer la programación de un programa determinado seleccionando las canciones, identificaciones y anuncios e indicando su posición en la programación. El sistema obligará al usuario a respetar la fórmula del programa, así como el número de temas por bloque y la duración del corte.

La información que se deberá introducir es la siguiente:

  1. Seleccionar de la lista de programas el programa para el cual desea generar la programación (sólo aparecerán aquellos para los cuales se haya definido una fórmula).
  2. Etiqueta de identificación para la programación

Herramientas utilizadas
Para el diseño de la base de datos se utiliza Power Architect 0.9.12 y como base de datos se utiliza PostgreSQL 8.3 .
La aplicación se está programando en C++, la interfaz gráfica se desarrolla con Qt 4.5, por lo que se utiliza el programa Qt SDK .
Para leer los tags de archivos Mp3 y Ogg se utiliza la librería TagLib 1.5

Páginas web de las herramientas utilizadas:

Herramienta URL
Power Architect http://www.sqlpower.ca/page/architect
PostgreSQL http://www.postgresql.org/
Qt SDK http://www.qtsoftware.com/
TagLib http://developer.kde.org/~wheeler/taglib.html
por default