[rec.humor.funny] How to write a Rap/House/Disco song

brendan@otc.otca.oz.au (06/08/90)

How To Write a Rap / House(glorified disco) / Disco Song
--------------------------------------------------------

LYRICS:
Simply take one word or phrase from each of the three columns below, in order
to make one line.  Repeat randomly four times.  Repeat process again twice
to make chorus.  Repeat last line 17 times.  Don't worry if they don't make
sense.

Column 1		Column 2		Column 3

Move it			Triple Beat		The City Streets
Get Up			Body Heat		You'll be Humpin
Pump It Up		Feel the Beat		Before the Night is Over
Get Down		Get Around		Shake your Meat
Shake it		The Joint Is Jumpin	Bustin Loose
Pump the Jam		Feet are Stompin	Disco Heat

BACKBEAT:
Program a drum machine in neverending 4/4 time.  Add occasional snare.

BODY:
Add monotonous bass in one key.  Overlay with puncy sounding synth.  Get
previously unknown singer to talk the lyrics so as not to test the range
of the vocal chords.

PRODUCTION:
Put above ingredients together on master tape.  Press discs.  Give the label
a suitably techno-funk sounding name, like "Mixmastermeatbeaters".  Sell 5
million copies to unsuspecting public.  Win MTV Award.


The sad thing is the public will *think* you've been creative...  

Better still, this process can be automated via a lyric C program, a random 
synth base and music generator, and the discs mastered directly by computer
control.

This relieves the composer of decisions regarding which phrases and notes
to use in production.  By pressing the <RET> key, more than 100 CD's a week
can be generated.

This I have done, below is a sample composition guaranteed to make megabucks:

-----
"Get down" by Mixmastermeatbeaters

Get down the joint is jumpin' you'll be humpin'
Shake it feet are stompin' in the city streets
Pump the jam feel the beat with disco heat
Move it get around 'til the night is over

(chorus)
Get down to triple beat shake your meat
Pump it up get around in the city streets

Pump the jam to triple beat you'll be humpin'
Shake it get body heat 'til the night is over
Get up the joint is jumpin' you'll be humpin'
Pump it up feet are stompin' I'm bustin loose

(chorus)
Get down to triple beat shake your meat
Pump it up get around in the city streets

Pump it up get around in the city streets
Pump it up get around in the city streets
Pump it up get around in the city streets
etc..
-----

Note that this is indistinguishable from the human generated version.

For those who wish to compose themselves, the program appears in the next
posting.  I hope for a cut in the royalties :-)

!-----------------------------------------------------------------------

#include <stdio.h>
#include <time.h>
#include <ctype.h>

static char     col1[6][30] = {
	"Move it",
	"Get up",
	"Pump it up",
	"Get down",
	"Shake it",
	"Pump the jam"
};

static char     col2[6][30] = {
	" to triple beat ",
	" get body heat ",
	" feel the beat ",
	" get around ",
	" the joint is jumpin' ",
	" feet are stompin' "
};

static char     col3[6][30] = {
	"in the city streets\n",
	"you'll be humpin'\n",
	"'til the night is over\n",
	"shake your meat\n",
	"I'm bustin loose\n",
	"with disco heat\n"
};

main()
{
	int	chor[2][3];
        int     i,j,getpid();
        long   	now;

/* Generate random seed */

        now = time(&now) / rand();
        srand(getpid() + (int)((now >> 16) + now + time(&now)));

/* Generate chorus and title */

	for (i = 0; i < 2; i++)
		for (j = 0; j < 3; j++)
			chor[i][j] = rand() % 6;
	printf ("\n\"%s\" by Mixmastermeatbeaters\n\n",col1[(chor[0][0])]);

/* Print out song */

	verse();
	chorus(chor);
	verse();
	chorus(chor);
	lastline(chor);
	printf("-----\n");
}

chorus(chor)
int	chor[2][3];
{
	int	i;

	printf("\n(chorus)\n");
	for (i = 0; i < 2; i++) {
		printf("%s",col1[(chor[i][0])]);
		printf("%s",col2[(chor[i][1])]);
		printf("%s",col3[(chor[i][2])]);
        }
	printf("\n");
}

verse()
{
	int	i;

	for (i = 0; i < 4; i++) {
		printf("%s",col1[rand()%6]);
		printf("%s",col2[rand()%6]);
		printf("%s",col3[rand()%6]);
        }
}

lastline(chor)
int	chor[2][3];
{
	int	i;

	for (i = 0; i < 17; i++) {
		printf("%s",col1[chor[1][0]]);
		printf("%s",col2[chor[1][1]]);
		printf("%s",col3[chor[1][2]]);
        }
	printf("\n");
}

!-----------------------------------------------------------------------

Brendan Jones			ACSnet:  brendan@otc.otca.oz
R&D Contractor			  UUCP:  {uunet,mcvax}!otc.otca.oz!brendan
Services R&D			 Phone:  (02)2874676   Fax:  (02)2874990
|||| OTC ||	 		 Snail:  GPO Box 7000, Sydney  2001, AUSTRALIA
--
Edited by Brad Templeton.  MAIL your jokes (jokes ONLY) to funny@looking.ON.CA
Attribute the joke's source if at all possible.  A Daemon will auto-reply.

Jokes ABOUT major current events should be sent to topical@looking.on.ca
Anything that is not a joke submission goes to funny-request@looking.on.ca