Generador de letras de reggaetón

Disclaimer: this is completely unrelated to computer science or VOIP :D.

Este post es mi respuesta a @mharcos y @markosbenitez quienes me desafiaron a hacer un programa que genere letras de reggaetón a partir de unas instrucciones (abajo) posteadas en facebook.

Con un script hecho en PHP fui capaz de generar letras como esta:

Gata yo quiero azotarte fuerte hasta manhana
Chica yo quiero cogerte lento hasta manhana
Chica vamos a castigarte duro hasta manhana
Perra vamos a cogerte fuerte hasta que salga el sol

[CORO]
azotarte azotarte azotarte, toda la noche, suave … x3

Perra vamos a castigarte duro todo el dia
Perra yo voy a castigarte duro hasta manhana
Gata vamos a cogerte suave todo el dia
Chica yo quiero encenderte rapido hasta el amanecer

[CORO]
azotarte azotarte azotarte, toda la noche, lento … x3

Perra yo quiero darte suave hasta manhana
Mami yo vengo a azotarte lento hasta que salga el sol
Chica yo voy a encenderte suave hasta el amanecer
Chica vamos a castigarte lento hasta el amanecer

[CORO]
darte darte darte, hasta que salga el sol, suave … x3

Con éste enlace podés generar más letras aleatorias. Con cada recarga se genera una nueva.

Para los entendidos del tema, acá les dejo el script.

[php]

define(‘RENGLONES_POR_ESTROFA’, 4);
define(‘MAXIMO_ESTROFAS’, 3);
define(‘NL_MARKER’, “n”);

$bloque_1 = array(‘Mami’, ‘Gata’, ‘Perra’, ‘Zorra’, ‘Chica’);
$bloque_2 = array(‘yo quiero’, ‘vamos a’, ‘yo voy a’, ‘yo quiero’, ‘yo vengo a’);
$bloque_3 = array(‘castigarte’, ‘cogerte’, ‘encenderte’, ‘darte’, ‘azotarte’);
$bloque_4 = array(‘duro’, ‘rapido’, ‘lento’, ‘suave’, ‘fuerte’);

$bloque_5 = array(‘hasta que salga el sol’,
‘toda la noche’,
‘hasta el amanecer’,
‘hasta manhana’,
‘todo el dia’);

$bloque_6 = array(‘sin miedo’,
‘sin anestesia’,
‘en el piso’,
‘contra la pared’,
‘sin compromiso’);

function GenerarLetra()
{
$estrofa = array();
$letra = array();

for ($i = 0; $i < MAXIMO_ESTROFAS; $i++)
{
$estrofa = array();

for ($j = 0; $j < RENGLONES_POR_ESTROFA; $j++)
array_push($estrofa, GenerarRenglon());

array_push($letra, implode(NL_MARKER, $estrofa).NL_MARKER);
array_push($letra, “[CORO]”);
array_push($letra, GenerarCoro().” … x3″.NL_MARKER);
}

print implode(NL_MARKER, $letra);
}

print GenerarLetra().”n”;

function GenerarRenglon()
{
global $bloque_1, $bloque_2, $bloque_3, $bloque_4, $bloque_5, $bloque_6;

return “{$bloque_1[rand() % count($bloque_1)]} “.
“{$bloque_2[rand() % count($bloque_2)]} “.
“{$bloque_3[rand() % count($bloque_3)]} “.
“{$bloque_4[rand() % count($bloque_4)]} “.
“{$bloque_5[rand() % count($bloque_5)]}”;
}

function GenerarCoro()
{
global $bloque_3, $bloque_4, $bloque_5;

$verbo = $bloque_3[rand() % count($bloque_3)];

return “$verbo $verbo $verbo, {$bloque_5[rand() % count($bloque_5)]}, {$bloque_4[rand() % count($bloque_4)]}”;

}

 

[/php]

Espero les sirva de algo xD

6 thoughts on “Generador de letras de reggaetón

  1. Fuckyou Caru, haz puesto en marcha el fin de los tiempos, los web crawlers de google van a tomar este codigo y empezar a integrarlo en los servidores en la nube y asi por tu culpa va nacer “Don Skynet”!!!!

    Oh shit!

  2. Esta es mi versión escrita en Python.

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import random

    cantidad_de_versos = 4
    cantidad_de_estrofas = 4

    frase1 = [“Mami”, “Gata”, “Perra”, “Zorra”, “Chica”]
    frase2 = [“yo quiero”, “vamos a”, “yo voy a”, “yo quiero”, “yo vengo a”]
    frase3 = [“castigarte”, “cogerte”, “encenderte”, “darte”, “azotarte”]
    frase4 = [“duro (MUY DURO),”, “rápido (FANTÁSTICO)”, “lento (Y NO MIENTO)”, “suave (MUY SUAVE)”, “fuerte (MÁS FUERTE)”]
    frase5 = [“hasta que salga el sol”, “toda la noche”, “hasta el amanecer”, “hasta mañana”, “todo el día”]
    frase6 = [“SIN MIEDO”, “SIN ANESTESIA”, “EN EL PISO”, “CONTRA LA PARED EH EH”, “SIN COMPROMISO”]

    def coro():
    random.shuffle(frase3)
    random.shuffle(frase4)
    random.shuffle(frase5)

    letra_del_coro = frase3[0] + “, ” + frase3[0] + “, ” + frase3[0] + “, ” + frase5[0] + ” ” + frase4[0] + “!”

    return letra_del_coro

    def verso():
    random.shuffle(frase1)
    random.shuffle(frase2)
    random.shuffle(frase3)
    random.shuffle(frase4)
    random.shuffle(frase5)
    random.shuffle(frase6)

    un_verso = frase1[0] + “: ” + frase2[0] + ” ” + frase3[0] + ” ” + frase4[0] + ” ” + frase5[0] + “, ” + frase6[0] + “!”

    return un_verso

    el_coro = coro()

    for i in range(cantidad_de_estrofas):
    for j in range(cantidad_de_estrofas):
    print verso()
    print “n” + el_coro + “n”

Leave a Reply

Your email address will not be published. Required fields are marked *