# 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
}
WITCHES (FRA) - The Hunt (2015)
Label : Auto-Production
Sortie du Scud : 15 septembre 2015
Pays : France
Genre : Thrash Death Metal
Type : EP
Playtime : 6 Titres - 21 Mins
Certains groupes alignent les albums, et ça n'enthousiasme pas les foules. D'autres au contraire préfèrent se faire rare, et distiller les sorties sur le long terme, au grand désespoir de leurs fans. Certains d'ailleurs rentrent dans cette catégorie, mais non par choix. Par simple malchance, la faute à un destin capricieux et des coups du sort multiples.
Prenez le cas de WITCHES par exemple.
Nous étions sans nouvelles concrètes de la part de Sibylle depuis 2007, et l'excellent III. Par nouvelles concrètes, entendez "album", puisqu'en tant que fan, nous suivions bien sûr la carrière de la guerrière via Facebook. Nous savions qu'elle s'éclatait un brin dans WOMEN IN IRON FORMS ou HELLBOMBS, et certaines indiscrétions nous laissaient croire que son groupe fétiche n'allait pas tarder à faire parler de lui... Ou d'elle plutôt, tant Sibylle incarne l'âme de WITCHES, et ce, depuis le début.
Elle a connu ces dernières années de sérieux problème de line-up et s'est retrouvée seule, dans l'incapacité de produire quoi que ce soit sous ce nom magique. Mais aujourd'hui, solidement entourée, elle revient sur le devant de la scène, et le moins que l'on puisse dire, c'est qu'elle n'est pas contente !
Ainsi épaulée par Lienj aux guitares (DESARTICULATE), Olivier à la basse (DEPRAVITY CAUSED ADDICTION) et Jonathan "Sangli" Juré à la batterie (qui a joué dans ABSINTHE et DISASTER), Sibylle nous offre enfin une suite digne de III, qu'on n'osait plus espérer. Mais plus qu'une suite, c'est une nouvelle renaissance, un accouchement aux forceps tant la guitariste chanteuse à sorti ses tripes, et à soigné ses compos pour qu'elles sonnent le plus agressif possible.
Plus jeune (et nous aussi), Sibylle nous comptait les histoire d'un savon agressif. A croire qu'elle ne l'a pas usé, parce qu'il revient aujourd'hui, sous la forme d'un EP six titres, en autoproduction, qui glisse entre les mains et arrache la peau par lambeaux. Pas question de tourner en rond ni de trépigner, le WITCHES 2015 fonce à cent à l'heure, fait fi des pauses, et largue une bombe à fragmentation Thrash comme rarement dans sa carrière. Même si le groupe n'a jamais fait dans la dentelle, il faut reconnaître que The Hunt déchire tout, privilégie les tempi Thrash, les grognements gutturaux, et les riffs épais et solides comme le Rock. Mais pouvait on en attendre moins de la part de Sibylle ? Non, je vous l'accorde.
Alors pas de temps mort, et nous sommes même prévenus dès l'entame de l'album, qui place un "No Matter If The Wind" furieux qui dévaste tout sur son passage. Courte intro démoniaque, avant que la bronca ne démarre directement dans les débats les plus Thrash, rythmique et guitare à l'unisson, avant le cri de ralliement de la maîtresse de cérémonie. A l'écoute de ce titre, on entend toute l'histoire qui se déroule sous nos oreilles, et qui nous rappelle la glorieuse fin des 80's, lorsque Sabina hurlait comme une possédée dans HOLY MOSES, bien avant qu'Angela d'ARCH ENEMY ne pousse ses premiers cris...
Et oui, il ne faudrait pas l'oublier, Sibylle était une pionnière, acquise dès son plus jeune âge à la cause Thrash et Death, et The Hunt le démontre d'une bien belle façon.
Niveau musiciens, ça tourne, la rythmique abat un gros boulot, mais ce que j'apprécie par dessus tout, c'est ce glaçage analogique qui fleure bon l'authenticité.
En parlant de Death justement, "Jump With Fright" y trempe plus d'un orteil, et place quelques blasts bienvenus, pour un morceau à la sauvagerie absolue. Riffs plaqués, puis saccadés, chant qui racle de plus en plus et part dans les graves, choeurs d'outre tombe, et break qui se rapproche des côtes nordiques du début des années 90.
"So Cold" est la seule "pause" de cet EP qui ne perd pas de temps, alors profitez en. Arpèges menaçants, riff glaçant, double au ralenti, c'est lourd, méchamment suintant, mais ne vous affolez pas, la batterie repart vite sur son rythme de croisière, ce qui n'empêche pas le titre d'être sans doute un des plus hargneux du lot.
"Riding And Hunting" ne perd pas la cadence, et virevolte comme un classique Thrash de la Bay Area, estampillé 87/88. Sibylle ne s'essouffle jamais, et va chercher au fond de sa gorge ses incantations les plus gutturales.
La hargne ne perd en rien du terrain avec "Up 'N' Down", qui se permet même une entame presque Mosh, avant de courir comme un dératé sur fond de blasts qui surgissent de nulle part. Toujours aussi carrée, la musique coule comme une logique imparable, et tout s'enchaîne avec une fluidité impressionnante. Arrive en final "Serial", le morceau le plus long, et le seul chanté en français, mais qui ne modère pas plus le propos ! Mais comme le dit Sibylle elle même dans une interview donnée à Metal Zone Prod :
"Oui, The Hunt est différent des autres albums, il est beaucoup plus violent et agressif, car c'est ce que nous voulions! Je me suis entouré de personnes qui ne font pas dans la dentelle !"
Merci Sibylle, c'est un euphémisme...
Que dire sur cet EP, préparé un peu à la hâte pour pouvoir partir en tournée avec VENOM INC / VADER (une opportunité qu'on se voit mal refuser) ? Qu'il tourne rond mais pas en rond, qu'il présente WITCHES sous un jour nouveau, plus méchant, plus conquérant, mais qu'il garde les stigmates d'un passé dont on ne peut/veut pas se défaire ? C'est un fait, et sans condescendance aucune au regard du CV de sa leader, The Hunt est un putain de bon disque de Thrash Death old school, qui pourtant refuse le passéisme et la contemplation.
Non mais sérieux, je veux dire... Cette nana préfèrerait bouffer du riz jusqu'à la fin de sa vie que de raccrocher les gants... La musique, c'est tout ce qu'elle veut faire, et lorsqu'on l'entend jouer, c'est une évidence... Qui à sa place ne se serait pas rangé depuis longtemps, fatigué par le business, la difficulté de trouver des concerts, des musiciens ?
Mais elle, elle est toujours là, trente ans après. Et elle n'a rien perdu de sa fougue, bien au contraire. Alors WITCHES un jour, WITCHES toujours ?
Putain oui !!! Parce qu'il y a plus de sorcellerie dans ce groupe que dans toute l'histoire de Salem !
Ajouté : Mardi 06 Octobre 2015 Chroniqueur : Mortne2001 Score : Lien en relation: Witches Website Hits: 6008
|