# 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
}
NEWSTED (usa) - Heavy Metal Music (2013)
Label : Chophouse Records
Sortie du Scud : 6 août 2013
Pays : Etats-Unis
Genre : Heavy Metal
Type : Album
Playtime : 14 Titres - 73 Mins
"Qui lui ? Ouais, il est sympa c'est vrai... Il fait bien son taf, il est intègre, mais bon... C'est pas non plus un cador faut le reconnaître ! Si jusqu'à présent ça passait, c'est qu'il était bien entouré, faut l'admettre non ? Parce qu'OK, il a une bonne tête mais quand il bosse tout seul, il fait pas des étincelles non plus..."
Discussion de comptoir ? A la machine à café au boulot ? C'est possible. Mais si j'ai choisi de placer le débat sous les auspices de la sincérité, ça n'est pas par hasard ou par amour de la formule. Si le monde du travail a toujours ignoré avec grand soin le sens des mots "honnêteté" et "sincérité", il n'en va pas de même - je l'espère - dans les sphères de l'amitié privée. Et souvent, la musique est une affaire d'amitié, d'admiration, voire de sympathie, rien de plus. Et dans le cas de ce premier album de NEWSTED, ces concepts sont à prendre en compte, mais avec des pincettes.
Jason Newsted, c'est un peu le Ringo Starr des temps modernes. Passionné par la musique, il s'est retrouvé catapulté du statut de jeune bassiste prometteur évoluant dans un groupe de seconde division (mais excellent), à moitié de la rythmique du plus grand groupe de Metal du monde, alors en devenir le jour où il a rejoint leurs rangs. En guise de baptême du feu, un EP culte, puis un album légendaire, une tournée au Japon, en France, et puis l'explosion, la gloire, mais aussi la condescendance de la part de ses nouveaux amis, un mépris à peine déguisé de son talent de compositeur, et l'affection indéfectible des fans. Oui, Jason, nous t'aimons pour ton côté sans concession, pour avoir eu les couilles de te barrer d'un groupe que tu ne respectais plus, pour monter des side projects improbables, pour participer à des renaissance jouissives, et surtout, parce que tu es toi même, tu ne joues jamais un rôle, et puis...Tu aimes le Metal, et tu le dis bien haut.
Las. Si la comparaison avec Ringo Starr trouve sa place ici, c'est que comme lui, tu as été une assise rythmique unique, presque toujours laissée dans l'ombre, dans un groupe mythique. Et qu'une fois la belle histoire finie, tu t'es lancé en solo, et que nous y avons cru, au début. ECHOBRAIN, c'était sympa. Rien de fulgurant, mais sympa. Ta participation à VOÏVOD les a relancés, OK. WHOCARES, c'est rigolo, une private joke. Mais après toutes ces années à clamer que tu avais trop longtemps été ignoré, que ta voix avait été sous estimée, et que tes compositions avaient sciemment été laissées au placard, nous attendions beaucoup de toi. Tu t'es vendu indirectement sur des arguments impossibles à vérifier, alors nous attendions la preuve de tes qualités musicales, aperçues sur le séminal et indispensable Doosmday For The Deceiver. Mais c'était il y a presque trente ans... Et aujourd'hui ?
Aujourd'hui, c'est Heavy Metal Music qui est censé nous amener sur un plateau les preuves de tes dires, en solitaire. Tu t'es constitué un joli backing band, tu nous offres 14 titres, un intitulé en forme de leitmotiv, mais il y a quelque chose qui cloche dans tout ça... Le son est bon, épais, gras mais suffisamment clair pour qu'on saisisse toutes les subtilités de tes compositions, c'est très bien joué, avec conviction, et c'est bien du Heavy, à n'en point douter. Donc, tout devrait coller. Mais non, désolé.
Et tu sais pourquoi ? Je vais te le dire.
Tes compos Jason. Voilà ce qui ne va pas. Jouer du Heavy pur et dur, c'est une chose, le jouer avec le coeur, par passion aussi, mais il y a un fossé énorme entre le Heavy de base pour se défoncer et le vrai Heavy, inventif, celui qu'on réécoute parce qu'il est bâti sur des riffs d'acier, entêtants, des refrains fédérateurs, une énergie contaminante. Et le problème avec ton Heavy Metal Music, c'est que même après une bonne dizaine d'écoutes, on n'y arrive pas. On essaie, on se concentre, on tente de choper le truc passé inaperçu, mais non, il n'y en a pas.
Tout commençait plutôt bien pourtant. "Heroic Dose", c'est tout bon. Mid tempo assassin, guitares ténues, pas de problème.
"Soldierhead", très MOTÖRHEAD, aux doux relents de "Hammerhead" de ton groupe fétiche FLOTSAM AND JETSAM, ça aussi ça laissait augurer du meilleur. Et puis... Le trou. Plus rien, ou si peu. A peine un "Kindevillusion" groovy, et encore, avec beaucoup d'abnégation.
Ok, tu te réclames de tes trois combos fétiches. METALLICA, MOTÖRHEAD et BLACK SABBATH, pas de soucis. Mais encore eut il fallu avoir appris deux trois trucs sur ces groupes. S'ils se sont inscrits sur la durée et dans la légende, c'est qu'ils savaient composer des trucs qui tuaient, des morceaux construits. Ils ne se contentaient pas d'un gros son, de gros riffs basiques et d'une attitude! Si James est devenu un des plus grands frontman et chanteur du Metal, c'est parce qu'il a une voix, et un jeu de guitare uniques ! Si Toni reste la plus grande référence de tous les gratteux de Heavy du monde, c'est parce qu'il sortait de sa guitare des plans déments, qui s'incrustaient dans ta tête, pour ne jamais en ressortir ! Et si Lemmy est toujours là, quarante ans après, c'est parce qu'un jour, il nous a balancé dans la gueule "Overkill", "Ace Of Spades", "Bomber", et des dizaines dans le même style...
Ta voix déjà, Jason. Tu te plaignais d'être un laissé pour compte du micro dans METALLICA. A l'écoute de ton album, je comprends pourquoi tu n'as jamais fait que des choeurs... Ton chant est poussif, pas toujours juste, et surtout, monocorde au possible ! A tel point que certains morceaux ressemblent à des resucées analogiques de Rob Zombie !
Alors, le manque de riffs mémorables, des compos trop longues et bâties sur pas grand chose, un organe de tête faiblard et des soli complètement anecdotiques et à peine digne d'un Punk découvrant les pentatoniques, ça fait beaucoup.
Mais rassure toi, ton disque n'est pas mauvais, et beaucoup y trouveront leur compte je pense. Mais il est pire que mauvais, il est "moyen". Le genre de disque qu'on écoute d'une oreille distraite, ou par sympathie, parce que tu es Jason Newsted. Et si tu ne te reprends pas très vite, nous allons finir par croire que Jason est en effet un mec sympa, à la réputation sans tâche, mais au talent mesuré. Et que si James et Lars t'ont toujours considéré comme un bassiste capable mais rien de plus, ils avaient raison. Après tout, seul "Heroic Dose" aurait tenu la comparaison sur un album de tes anciens potes. C'est peu.
C'est parce que je t'aime beaucoup Jason que mes mots sont durs aujourd'hui. Et j'ai jugé ta musique avec honnêteté et respect, ce que tu mérites. Mais par pitié, fait mieux la prochaine fois.
Ajouté : Lundi 18 Août 2014 Chroniqueur : Mortne2001 Score : Lien en relation: Newsted Website Hits: 8544
|