Dude (musical)

Dude (musical)

Dude
Original Broadway Playbill
Music Galt MacDermot
Lyrics Gerome Ragni
Book Gerome Ragni
Productions 1972 Broadway

Dude (The Highway Life) is a rock musical with a book and lyrics by Gerome Ragni and music by Galt MacDermot. It is an allegory about good and evil, the conflict between mankind's creative and destructive urges, the power of love, and the joy to be found in simple pleasures. Dude is an Everyman who loses his innocence and fights to regain it.

Contents

  • Background 1
  • Production 2
  • Synopsis 3
  • Song list 4
  • Notes 5
  • References 6
  • External links 7

Background

As soon as the musical Hair opened, Ragni began to work on Dude. MacDermot was busy with Two Gentlemen of Verona but finally began to compose the music. In March 1972, their studio cast album, Salome Bey Sings Songs from Dude, was recorded and released on Kilmarnock Records. The music was more influenced by country music than their previous musical, Hair.[1]

The rehearsal period was plagued with problems: Kevin Geer, the actor who had been cast in the leading role, Dude, was unable to sing the role acceptably and had to be replaced; the script (such as it was) was far from finished; Ragni's requests of the producers were bizarre (for example, 100 butterflies to be released at the beginning of each performance); and the cast threatened to walk out.[2]

Production

In The Broadway Theatre, the musicians were divided, with brass and woodwinds against the wall of one side of the playing area and strings at the other. To accommodate the multimedia presentation, the theatre was gutted and reconverted, at a cost of $800,000, into a circus-like arena in the center (a theatre in the round) filled with fake dirt (real dirt had caused dust; wetting it had caused mud), ramps, runways, catwalks, columns, trapezes, trapdoors, bleachers, and various mechanical and electronic gear. Performers moved freely between the round playing area, representing "Earth", and the audience, seated in flanking "valleys and foothills," with "mountains and mountain tops" beyond and "tree tops and trees" (mezzanine) above. "Heaven and hell" were also represented. The overall effect was of a circus being performed in a primeval forest.[2]

The previews were disastrous, as the audience could not hear with the orchestra scattered around the edges of the theatre. Despite attempts at amplification, the acoustics were still bad in the hollowed out theatre. The director and choreographer resigned, to be replaced by Jesus Christ Superstar. Previews were shut down, and the show went back into rehearsal. Some cast changes were made, and flamboyant visual effects were added. The director and cast confronted Ragni and forced him to rewrite scenes, including most of the second act. Actors wrote some of their own dialogue. The script finally settled down, mostly, by the second to last preview.[2]

After sixteen previews, the Nell Carter, Rae Allen, Salome Bey, and Ralph Carter, who won the Drama Desk Award for Most Promising Performer.

Ralph Carter, an 11-year-old African-American, replaced Kevin Geer, a white 23-year-old, who was originally slated to play "Dude", due to Carter's age, Nat Morris was cast as "Big Dude" in order to still use the more mature songs.[3] Despite leaving the show, Geer's image, with his back facing the camera was used for the show's poster.[4]

Only five weeks after Dude closed, MacDermot experienced another major failure with the flop musical Via Galactica.

Synopsis

Reba and Harold, actors who believe they have been cast in Richard III, instead find themselves portraying Adam and Eve in a Garden of Eden-like setting, where they are tempted by Zero (the devil) and give birth to son Dude. The forces of Good (#33, Bread, Susie Moon, Mother Earth, and the Shubert Angels) and Evil (Zero, Nero, Esso, Extra, and Sissy) try to gain control of Dude's soul. Dude grows up and succumbs to the temptations of bizarre sexual practices and illicit drugs, leaving his parents guilt-ridden, until Guide #33 (God) assures them that life is merely show business and everything has a happy ending.

Song list

Notes


-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
  1. ^ Information from Allmusic
  2. ^ a b c Bosworth, Patricia. "Dude - An $800,000 Disaster. Where Did They Go Wrong?", The New York Times - October 22, 1972
  3. ^
  4. ^ http://www.orlok.com/hair/holding/photographs/dude/Dudead1.html

References

  • Broadway Musicals: A Hundred Year History by David H. Lewis, published by McFarland & Company (2002), page 104 (ISBN 0-786-41269-0)
  • Not Since Carrie: Forty Years of Broadway Musical Flops by Ken Mandelbaum, published by St. Martin's Press (1998), pages 22–24 (ISBN 0-312-08273-8)
  • Information about the musical

External links

  • Internet Broadway Database listing
  • Index to articles about, and reviews of, Dude
  • The Dude Photo index