# 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
}
STRAPPING YOUNG LAD (ca) - City (1997)
Label : Century Media Records
Sortie du Scud : 11 février 1997
Pays : France
Genre : Metal
Type : Album
Playtime : 9 Titres - 39 Mins
Quel personnage atypique que ce Canadien déjanté... Devin TOWNSEND, petit génie pour les uns, névrosé pour les autres, usurpateurs pour certains.... On pourrait lui trouver diverses incarnations antérieures sans problème... Un genre de Zappa moderne et névrosé, un Todd Rundgren allumé et jamais rassasié, un Trent Reznor plus positif et organique... Je ne sais pas, et est ce vraiment important ?
Début 1997, le nom de Devin n’est susurré que par quelques initiés... Déjà responsable d’un Heavy As A Really Heavy Thing sous la bannière STRAPPING YOUNG LAD, que lui-même reniera quelques années plus tard - à deux chansons près - et d’un album pastiche signé du pseudo Punky Brewster (Cooked On Phonics, drôle, mais seul élément dispensable de sa discographie), il n’a pas encore bien assis sa réputation, et son seul but sur l’instant semble être de se libérer de ses premières années passées à incorporer les projets de tiers.
Embauché par Steve Vaï pour son projet Sex & Religion (c’est d’ailleurs à cette occasion qu’il sera remarqué par Gene Hoglan, pourtant fan de la gestuelle de Terry Bozzio), puis guitariste par intérim pour les WILDHEARTS, Devin en a marre de faire de la figuration, et ne veut être que lui-même. D’où ce projet STRAPPING, qu’il veut symptomatique de cette colère intérieure.
Mais il a du mal...
Signé sur Century Media après avoir vu se fermer devant lui les portes de Roadrunner et Relativity (pour cause de musique trop « bruyante », on croit rêver...), Devin se voit proposer le deal de faire « quelques albums bien extrêmes » par le label indépendant... Dont acte, et plutôt deux fois qu’une. Car si Heavy... méritait bien son titre, on sentait quand même que l’artiste n’avait pas tout dit, qu’il n’était pas allé assez loin. Qu’il pouvait jouer et hurler plus fort... Mais pour cela, il lui fallait outre des morceaux en béton, une équipe soudée et hors norme.
Et en sus des fidèles Jed Simon à la guitare et Byron Stroud à la basse, le Canadien plus si lunaire eut la brillante idée de coller derrière les fûts le furieux et inventif Gene Hoglan, ex DARK ANGEL et DEATH, authentique ténor de l’éclatement de toms et de briseur de double grosse caisse. Aussitôt, les deux hommes s’entendent comme larron en foire (c’est un fait avéré que Gene est un gentleman beaucoup plus doux et fin que son apparence physique ne le laisse deviner...), et la créativité débridée de Devin peut enfin s’exprimer dans un contexte beaucoup plus large, aidé en cela par trois acolytes branchés sur la même longueur d’onde que lui.
Ainsi, un beau jour de février 1997, naquit City, qui restera sans aucun doute un des albums les plus puissants que les 90’s aient connu. Entièrement composé par Devin, ridiculisant 99% des groupes soit disant agressifs de la planète, le second album du projet bruitiste STRAPPING YOUNG LAD restera un sommet d’ultra violence positif. Oui, le concept est possible et viable. Ecoutez le pour vous en convaincre.
Et surtout, pour comprendre, clairement.
Car City est un album redoutablement difficile à décrire par des mots, postulat applicable en fait à quasiment toute l’œuvre de Devin.
En effet. Il se ressent plus qu’il ne s’écoute.
Dans l’envie irrépressible d’effectuer un rapprochement hasardeux, je n’hésiterai pas à mettre côte à côte STRAPPING et un autre rejeton du grand Nord. Adepte lui aussi d’une forme d’expression personnelle et aussi violente. VOÏVOD.
Heavy As A Really Heavy Thing/War And Pain.
City/ Rrröööaaarrr
Enfance/Adolescence. Cri primal, rage mature. Même parcours, même but. Exprimer musicalement une évolution humaine (et d’ailleurs, ne trouve t’on pas dans la production pléthorique du Canadien un album intitulé Accelerated Evolution ?), par des sons, des ambiances déchirantes et déchirées, à l’écho assourdissant.
Ainsi est City. Indiscipliné et sismique.
Car après une introduction grandiloquente et Wagnérienne, nous sommes plongés en plein cœur de l’introspection terrifiante d’un homme en proie à ses démons. Exorcisme initial et cataclysmique, « All Hail The New Flesh » arrive même à faire passer le séminal « Angel Of Death » pour une comptine tout juste bonne à effrayer les it-girls. Car City – outre son caractère révélateur niveau richesse de composition – fut le premier album de Devin à nous offrir ce son unique et assourdissant. Une production maison si dense qu’il faudrait des années à en analyser la conception. En véritable Phil Spector moderne, Devin empile les couches de guitares jusqu’à saturation, double, triple le chant, truffe ses morceaux d’arrangements électroniques pour accoucher d’une palette sonore aussi vaste qu’inédite.
Signal de départ d’une symphonie en brutalité majeure, « All Hail The New Flesh » est l’épitomé de la violence explicite des années 90. Et la sirène annonçant tous les débordements anarchiques des années 2000, croisant allégrement les sonorités graves du Metal moderne, et les bruits mats des compromis digitaux.
Après un « Oh My Fucking God » diablement explicite (et qui sera repris un peu plus tard par d’autres Canadiens furieux, CRYPTOPSY), Devin enfonce la pédale des deux pieds avec l’abyssal « Detox ».
Basé sur un riff redondant au possible, ce morceau est l’occasion pour Gene Hoglan de reprendre son rôle de rouleau compresseur, en alternant les passages virevoltants avec les écrasements à la double grosse caisse. Comme je le précisais plus haut, le choix de Gene pour rythmer cet album tenait vraiment du coup de génie. Lui qui avait permis à DARK ANGEL toutes les folies dans les années 80 (rappelez vous la vitesse hallucinante de « The Burning Of Sodom » ou la boucherie Heavy de « Black Prophecies »), fait exploser la musique de Devin et lui permet d’accéder à un niveau jusque là inaccessible, le « bruit audible ».
Car outre les guitares qui vitupèrent à tout va, c’est bien le duo voix/batterie qui fonctionne à merveille, et qui invente sur ce titre une sorte de Rap-Death bâtard et sublime. Le phrasé de Townsend est calqué sur la pédale de Gene, et résonne comme un cœur au bord de l’éclatement.
Sans tomber dans la critique linéaire et routinière, il m’est impossible de passer sous silence les incroyables innovations du malicieux « AAA » (à l’époque, tous les pays développés bénéficiaient encore de cette note, juste histoire d’accorder un contexte historique ironique…), de la reprise nucléaire « Room 409 » de COP SHOOT COP (autre groupe remarquable et honteusement sous estimé… Jetez une oreille sur le fantastique Ask Questions Later, vous ne perdrez pas votre temps), et la diversité finale de « Spirituality », qui annonce prématurément les thèmes récurrents du travail de Devin à venir.
City offrait la meilleure carte de visite possible à Townsend. L’album se vendit beaucoup mieux que son prédécesseur, avec 9000 copies écoulées la première semaine de sa sortie (contre un peu plus de 150 pour l’effort initial…), mais présentait à la face du monde un seul versant du sommet canadien. Il fallut attendre quelque mois pour connaître un peu plus intimement ce musicien fantasque, lorsque Ocean Machine fit son apparition. Nous avons alors découvert la personnalité plus douce et avide de liberté (artistique et humaine), en totale opposition avec la furie du vecteur STRAPPING. Devin n’allait pas tarder à juxtaposer les deux en un seul et même projet, la fantastique tétralogie sur les addictions qu’il nous a livrée récemment.
Mais dans le cœur des fans (les siens, mais aussi ceux d’une musique débridée), City tient une place à part, et même son auteur confirme, des années après, qu’il est le témoignage le plus fidèle de ce groupe unique. Il a créé un son, poussé des équations précédentes jusqu’au bout de l’insoluble (je pense à FEAR FACTORY bien sur, ou même KILL II THIS), et apporté quelques réponses éparses, à destination des esprits curieux.
C’est paradoxalement un album sans tabou, qui reste un des plus pudiques de son auteur.
Mais Devin n’en est pas à un paradoxe près.
Si vous souhaitez appréhender son monde, il est peut être judicieux de commencer par un autre concept. Je pense qu’Ocean Machine ou Infinity seront des entames plus adaptées et abordables. Mais il faudra bien qu’un jour ou l’autre vous l’écoutiez.
Mais ce jour là, prévenez vos voisins, virez tout le monde, et poussez le volume à fond. Lester Bangs à dit un jour, « Prenez un vieil ampli Mac Intosh, une paire de baffles JCM customisées, déposez les DOORS sur la platine et accrochez-vous au plafond. Sentez les vibrations vous traverser le corps. Vous pourrez dire à ce moment là, que vous avez connu le souffle du Rock N’Roll ».
Faites la même chose avec City. Mais un simple lecteur CD et un bon ampli suffisent. Et vous pourrez dire que vous aurez senti le souffle de la folie une fois dans votre vie.
Ajouté : Mardi 27 Mars 2012 Chroniqueur : Mortne2001 Score : Lien en relation: Strapping Young Lad Website Hits: 9796
|