gentoo linux, java, software libre y otras hierbas
oct, 11 2008 - 10:53 am

Cambiar canales de audio de estéreo a mono [ffmpeg]

ffmpeg además te permite cambiar el número de canales de salida de un archivo de audio. Supongamos entonces que tenemos una canción en MP3 en estéreo, y deseamos pasarla a mono, basta con ejecutar este comando:

ffmpeg -i estereo.mp3 -ac 1 mono.mp3

Explicación y aclaración…

  • -i estereo.mp3, indica el archivo de entrada
  • -ac 1, indica que el número de canales de audio del archivo resultantes será uno, o sea mono
  • NO es posible pasar de mono a estereo: cuando decimos que el sonido es mono, estamos diciendo que se SUMARON el canal derecho y el canal izquierdo: M = L + R, donde M es mono, L es el canal izquierdo y R el canal derecho. Y bien, no soy un experto en matemáticas, pero si quisieramos pasar de mono a estéreo deberíamos conocer almenos dos datos por separado, cosa que no sabemos puesto que solo disponemos de un canal (una variable).
    Lo explico mas que nada porque hay gente que ha tratado de contradecirme; si estoy equivocado, que alguien me lo haga saber.

13 Comentarios | deja el tuyo

jul, 24 2008 - 1:02 pm

Números aleatorios en C#

La generación de números aleatoreos es una de las prácticas más importantes en cualquier lenguaje de programación, sobre todo cuando deseamos desarrollar juegos, por ejemplo. Para usar números aleatorios en C# podemos utilizar la clase Random del namespace System, de la siguiente manera:

Random objeto = new Random();
int numero = objeto.Next();

El método Next de la clase Random genera y devuelve un número aleatorio entre 0 y la constante Int32.MaxValue (2,147,483,647). El número es generado después de (como decía mi profesora de matemáticas) complejos procesos matemáticos, y como en casi todos los lenguajes necesitan de una semilla (seed) para ser generados, que por defecto es la hora del sistema.

Aún así, muchas veces necesitamos que el número sea generado en un rango específico de valores. Por ejemplo, para una aplicación que simule el lanzamiento de un dado de seis caras necesitamos generar números entre 1 y 6. Para lograr esto, el método Next puede recibir además un entero que indica el rango máximo del número aleatorio. Por ejemplo, el código:

Random objeto = new Random();
int numero = objeto.Next(6);

generaría un número aleatorio entre 0 y 7 (pero no 6), es decir, seis posibles números. Pero, si desearamos algún rango más exacto, podríamos hacer algo como:

Random objeto = new Random();
int numero = objeto.Next(1, 7);

lo que generaría números entre 1 y 7 (pero no 7), de nuevo seis números posibles.

Ejemplo completo…

En el siguiente ejemplo se utilizará la clase Random para generar una serie de números aleatorios cada vez que se presiona un botón:

pantallazo numero aleatorio

El código lo pongo para su descarga abajo, ya que lo hice con Gtk# usando MonoDevelop, y sería engorroso poner todo el código. Así que solo pondré la parte del código que nos interesa:

    private Random obj = new Random();
    //Método ejecutado al presionar el botón
    protected virtual void generar_Click (object sender, System.EventArgs e)
    {
        etiqueta.Text = "";
        for(int i = 0; i < 4 ; i++)
        {
            for(int j = 0; j < 4 ; j++)
                etiqueta.Text += obj.Next(1, 10) +"\t\t";
            etiqueta.Text += "\n\n";
        }
    }

Enlaces y descargas

16 Comentarios | deja el tuyo

jun, 22 2008 - 8:38 am

Un Linuxero probando Windows

Tomado de: MonoNeurona

Generalmente tenemos que chutarnos revisiones de los quejiques usuarios de Windows que intentan instalar Linux, muchas de las ventajas que provienen de Windows se deben más al hecho de que ha estado más tiempo en el mercado que una excelencia intrínseca del sistema operativo. ¿Pero qué pasaría si Linux fuese el SO dominante y un linuxero intentáse usar Windows? Esta sería una evaluación:

Por estos días tranquilos de fin de año he decidido darle un vistazo a ese nuevo sistema operativo de nombre poco original sobre el cual la gente está hablando, “Windows”, de la empresa Microsoft de Oregon. Alguien me pasó un CD y he intentado instalarlo en el equipo de mi oficina, una Pentium IV HT con 512 en RAM y disco duro SATA de 160 GB.

Lo primero que me provocó confusión es que no hay un Windows sino muchos, hay uno que se llama “XP”, uno “2003″ y otro “Vista” al parecer esté último es el más moderno y el que intenté instalar. Existe un Windows “ME” que parece es una distribución diferente a la de Microsoft y que al parecer no funcionó bien porque ya nadie lo usa.

Lo primero que debo decir es que este sistema operativo “Vista”, es que es enorme. Mi equipo usa SUSE 10 maravillosamente rápido pero “Vista” tardó más de una hora en instalarse. Luego de la instalación básica, que fue bastante sencilla, pude ver el escritorio de Vista, el cual es muy limitado pues sólo tiene un escritoio de modo que uno no puede dividir las aplicaciones y todas se amontonan en el único escritorio, algo que no se antoja muy práctico. No sé quien tuvo la absurda idea de colocar por default el menú de inicio y la barra de tareas en la zona inferior de la pantalla , lo cual es absurdo pues el menú de todos los programas y los botones de las ventanas están en la parte superior y uno tiene que estar bajando cientos de veces el cursor del mouse por todo lo alto de la pantalla, algo sin duda molesto. Afortunadamente Vista permite mover el panel a la parte superior, donde debe estar. Leer el resto de la entrada…

8 Comentarios | deja el tuyo

« Entradas anteriores
Entradas recientes »