# Copyright (C) 2002-2004 gregoire HUBERT.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Author : gregoire HUBERT
#
# XML_node.objet
#
# This object is an XML node representation
#
# /- name (string)
# xml_node --- attributes (array)
# \- children (array) or value (string)
class xml_node {
var $name;
var $attributes = array();
var $children = array();
var $value = "";
function xml_node($name,$attributes,$children=array(),$value="") {
$this->name = $name;
if (is_array($attributes)) {
$this->attributes = $attributes;
}
$this->children = $children;
$this->value = $value;
}
}
# Copyright (C) 2003-2004 gregoire HUBERT.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Author : gregoire HUBERT
#
# xml_tree class
#
# This object parses an XML stream and offers a tree composed by xml_nodes
#
class xml_tree {
var $xml_stream;
var $current_node;
var $root_node;
var $index;
var $value;
function xml_tree() {
$this->root_node = new xml_node("__ROOT_NODE",array());
$this->current_node = $this->root_node;
}
function add_tree($xml_stream) {
# Managing the parser
$this->xml_stream = $xml_stream;
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1);
if (!xml_parse_into_struct($xml_parser,$this->xml_stream,$this->value,$this->index)) {
xml_parser_free($xml_parser);
die("XML Parse error");
}
xml_parser_free($xml_parser);
# Now, $this->value and $this->index are informed, we can use the get_node methode.
$tab_result = $this->get_node(0,count($this->value) - 1);
$this->root_node->children[] = $tab_result[0];
$this->current_node = $this->root_node;
}
function get_node($index_start,$index_stop) {
#echo " \n";
#echo "GET-NODE($index_start,$index_stop) \n";
# What we are going to return is an array of xml_nodes
$return_tab = array();
# depth is only here to check if everything is all right
$tab_node = $this->value[$index_start];
$depth = $tab_node["level"]-1;
# Now we have to be sure we do not forget a single node
for ($index = $index_start;$index <= $index_stop;$index++) {
#echo "\$index = $index ";
# get the current node
$tab_node = $this->value[$index];
# what type of node is it ?
switch($tab_node["type"]) {
case "complete" :
# Depth integrity check
if ($tab_node["level"] != $depth+1) {
die("ERREUR # contrainte d'intégrité au noeud complet $index, niveau $depth + 1 au lieu de ".$tab_node["level"]);
}
#echo "Noeud complet trouvé position $index TAG ".$tab_node["tag"]." \n";
# Easy one, no children to manage, only a value...
$return_tab[] = new xml_node($tab_node["tag"],$tab_node["attributes"],"",$tab_node["value"]);
break;
case "open" :
# Depth integrity check
if ($tab_node["level"] != $depth +1 ) {
die("ERREUR # contrainte d'intégrité au noeud ouvert $index, niveau $depth au lieu de ".$tab_node["level"]);
}
# Open tag, we re-use this methode to return its children
# Where is the correspondong close tag ?
$node_index = $this->index[$tab_node["tag"]];
$flipped_node_index = array_flip($node_index);
#echo "This ".$tab_node["tag"]." is at coords ".$flipped_node_index[$index]." ";
$i=1;
do {
$next_index = $node_index[$flipped_node_index[$index] + $i++];
$next_tag=$this->value[$next_index];
}
while ($next_tag["level"]!=$tab_node["level"]);
#echo "Ouverture de noeud détectée pos $index TAG ".$tab_node["tag"]." \n Parcours jusqu au $next_index \n";
# good, we can now instanciate our node
$return_tab[] = new xml_node($tab_node["tag"],$tab_node["attributes"],$this->get_node($index+1,$next_index),"");
# As we called the get_node methode, we are sure that nodes have been parsed to the corresponding close tag
$index = $next_index;
break;
case "close" :
# Depth integrity check
if ($tab_node["level"] != $depth ){
die("ERREUR # contrainte d'intégrité au noeud fermé $index, niveau $depth au lieu de ".$tab_node["level"]);
}
#echo "Fermeture de noeud detectée pos $index TAG ".$tab_node["tag"]."
\n";
# This ugly thing is useless because reaching a close tag means that $index==$index_stop but who knows ? =)
# it will be skipped soon
$index = $index_stop;
break;
default:
die("Erreur de type de TAG non déterminé :'".$tab_node["type"]."'");
}
}
# We are out ... returns the array with collected children...
return ($return_tab);
}
# this function browse the xml tree and set the current node to the selected node
function give_node($path) {
if ($path[0]=="/") {
$current_node=$this->root_node;
$path=substr($path,1);
#echo "ABSOLUTE PATH GIVEN=$path ";
}
else {
$current_node = $this->current_node;
}
#echo "PATH GIVEN=$path ";
$tab_path = split("/",$path);
foreach ($tab_path as $node_expr) {
#echo "STUDYING EXPR='$node_expr' ";
$node = $current_node;
$expr_tab = split("\?",$node_expr);
$node_name = $expr_tab[0];
$attr_tab = 0;
if (count($expr_tab)>1) {
##echo "TROUVE AU MOINS UNE CONDITION SUR LES ATTRIBUTS... ";
$attr_expr_tab=split(",",$expr_tab[1]);
$attr_tab=array();
foreach($attr_expr_tab as $attr_expr) {
$attr_split_expr=split("=",$attr_expr);
$attr_tab[$attr_split_expr[0]]=$attr_split_expr[1];
}
}
$last=0;
foreach ($node->children as $children) {
#echo "COMPARING WITH '$children->name' ";
if ($children->name == $node_name) {
##echo "TROUVE NOEUD CORRESPONDANT $node_name ";
if (is_array($attr_tab)) {
$node_attributes = $children->attributes;
foreach ($attr_tab as $key=>$value) {
if ($node_attributes[$key] == $value) {
#echo "ATTRIBUTE & CHANGE CURRENT NODE TO ".$children->name." ";
$current_node = $children;
$last = 1;
}
}
}
else {
##echo "CHILD=".$children->name." ";
#echo "CHANGE CURRENT NODE TO ".$children->name." ";
$current_node = $children;
$last=1;
}
}
if ($last) {
break;
}
}
if (!$last) {
#echo "PATH ERROR $node_name ";
#die("MMmmmh It seems that this file is not a DIA XML format...sorry...");
return 0;
}
}
return $current_node;
}
function browse_tree($path) {
$node = $this->give_node($path);
if (is_object($node)) {
$this->current_node = $node;
return 1;
}
return 0;
}
# this method dumps an html representation of the xml tree
function xml_show($node = "",$level=0,$last=0) {
if ($node=="") {
$node=$this->root_node;
}
if (!is_object($node)) {
die("ERROR : node is not an object");
}
$line="";
for($i=1;$i<=$level;$i++) {
if ((i==$level-1) and ($last)) {
$line.=" ";
}
else {
$line.=" |";
}
if ($i==$level) {
$line.="`-";
}
}
$line.=$node->name;
#echo $line;
$line.="".count($node->children)."";
if (count($node->children)==1) {
$line.=" (".$node->value.") \n";
echo "$line";
}
else {
$line.=" \n";
echo "$line";
$i=1;
foreach($node->children as $children) {
if ($i==count($node->children)) {
$this->xml_show($children,$level+1,1);
}
else {
$this->xml_show($children,$level+1);
}
$i++;
}
}
}
#END_CLASS
}
NEW YORK DOLLS (usa) - Dancing Backward In High Heels (2011)
Label : 429 Records / Universal
Sortie du Scud : 15 mars 2011
Pays : Etats-Unis
Genre : Doo-Wop Rock
Type : Album
Playtime : 12 Titres - 37 Mins
DVD présent avec le CD
Je me demande parfois pourquoi l’industrie musicale s’amuse à détruire des légendes et à les obliger à se travestir pour leur rapporter encore plus de fric. Bon, OK le travestissement, ça n’a jamais été un problème pour les DOLLS. Mais ce qui faisait leur beauté (relative), c’était ce côté cheap et vulgaire, couplé à un caractère d’urgence éphémère, le genre de fantasme total que seules les seventies pouvaient nous offrir. Et c’est ainsi qu’après deux albums, dont un purement essentiel - le furieux et fameux New York Dolls et sa pochette provoc’ ayant bien du mal à cacher l’outrage musical de son contenu – ils avaient disparu comme ils étaient venus, avec un bon coup de main de la part de McLaren quand même.
Ces mecs (??) là n’avaient peur de rien, ni de passer pour de vieilles putes, ni de proposer un Rock basique agrémenté de quelques facéties vocales un brin féminines et boudeuses de la part de Johansen. Il y avait tout dans leur musique, l’instantanéité, la dope, le sexe, l’innocence, l’inconscience. Alors quant à se reformer vingt ans après alors que le compteur affichait déjà deux morts (et bientôt trois)…
Je ne suis pas sur que si Thunders était encore de ce monde, il aurait trouvé la blague drôle, lui qui ne jurait que par le présent. Il aurait sûrement jeté un de ces fameux regard à Johansen, le condamnant derechef à un enfer éternel…Mais après tout, qui y’a-t-il de pire lorsqu’on a été un DOLLS ? Mourir jeune et vite, ou rester, et s’auto condamner à se parodier ?
Bonne question.
Attention, je ne dis pas que David et Sylvain auraient du aussi crever comme tous les autres, ni qu’ils n’auraient jamais du toucher de nouveau à la musique, mais ils auraient pu avoir la décence de le faire sous un autre nom, histoire que celui là reste sans tâche. Car depuis la reformation, même plus la peine d’aller au pressing, c’est irréparable.
Alors, je l’ai écouté ce Dancing Backward In High Heels, et plusieurs fois bien sur, et c’est loin d’être un mauvais album, je dirais même que dans le genre Doo-Wop revival, il se pose plutôt bien. On y sent clairement la touche 50’s de cette friandise sucrée que les Vocal Groups nous livraient sur un plateau argenté dans un Milk-Bar multicolore. Johansen chante bien, même si parfois il se la joue un peu trop crooner, le clavier sonne parfois comme celui d’Anton LaVey (« Kids Like You »), ça brille de temps en temps comme du James Intveld sur la BO de Cry Baby (« Round And Round She Goes), mais ça peut aussi donner l’envie de danser avec sa petite amie au bal de promo et de l’embrasser pendant le solo de sax (« Streetcake »), voire virer Funk pataud et délicieusement décalé, comme si un chanteur de Reggae complètement torché venait chiper le micro de Rick James (« Funky But Chic »), et même légèrement piquer la mélodie de « Please Mister Postman (« I Sold My Heart To The Junkma »).
Mais après tout, qu’est ce qu’on en a à foutre ? Ils n’ont jamais prétendu être de bons garçons, ni de se racheter une conduite, mais tout ça est très bizarre au final…Alors oui, ils ont poussé le bouchon aussi loin qu’ils le pouvaient, cœurs « féminins » à l’appui, emphase des arrangements, rondeur du son, mais accoler le nom d’une ancienne bande de travelos à ce CD reste quand même une expérience plus qu’étrange. Alors autant ne pas regarder la pochette et écouter cet album les yeux fermés, en essayant d’oublier que derrière ces chansons se cachent deux figures légendaires de la scène Rock de NY.
Mais pour regarder le DVD, il va bien falloir les ouvrir, car celui-ci contient une bonne dose de DOLLS, de l’enregistrement du dernier album jusqu’aux trois shows au club Cluny, à Newcastle. On passe donc allégrement d’interviews de chaque membre - qui se montrent tous aussi enthousiastes quant à ce troisième album post reformation, très frais selon eux, et correspondant bien à leur état d’esprit actuel – aux réactions de fans ayant la chance de les avoir déjà vus à l’époque de leur légende, ou carrément excités de pouvoir les voir sur scène pour la première fois.
Avec un montage qui superpose les DOLLS en studio et en live, ce DVD se révèle donc très rythmé et agréable à suivre, et se pose donc en complément parfait du CD qu’il accompagne. Le concert au Cluny, outre un son très propre, est carré, mais non dénué des facéties auxquelles Johansen nous a toujours habitués, avec cette espèce de nonchalance trash du mec qui se donne des airs je m’en foutistes, mais qui ne trompent personne quant à son professionnalisme.
Outre ce Documentaire/Live, les DOLLS nous offrent quatre titres de ce même concert en version live pour l’audio, et accompagnés de photos du groupe dans diverses attitudes et lieu pour l’image, choix un peu bancal, tant dans le cas des DOLLS, l’image statique ne s’adapte guère aux titres chantés. Prenons donc ça comme un petit bonus…
Au final, Dancing Backward In High Heels, dans sa version deluxe reste un disque/DVD dont il serait dommage de se passer, mais qui, je le répète, n’aurait peut être pas du sortir sous ce nom mythique, qui finalement, ne l’est plus tant que ça…
Ajouté : Lundi 24 Octobre 2011 Chroniqueur : Mortne2001 Score : Lien en relation: New York Dolls Website Hits: 9358
|