# 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
}
ARES (FRA) - About Metal (2010)
Label : Brennus Music
Sortie du Scud : janvier 2010
Pays : France
Genre : Rock Heavy Metal
Type : Album
Playtime : 8 Titres - 38 Mins
De nombreuses bières ont moussé et chauffé, sans parler de la pulpe décollée du fond de nombreuses bouteilles, dans les bars picards et franciliens, depuis 15 ans, par l’énergie déployée de WILLPOWER, puis WILLER, groupe qui prit ensuite le nom de baptême d’ARES en novembre 2006.
Il ne faut pas que les membres du groupe soient superstitieux, Arès, ce dieu de la guerre, n’était pas porté dans le cœur des grecs, il véhiculait la peur, la terreur. Arès, lui-même, connaissait déboire sur déboire. A la vôtre, camarade. Et l’album se termine par le titre « Echec », il faut oser quand même ! Et la clepsydre, illustrant la pochette, est une façon de nous dire que le temps nous est compté…
Avec About Metal, on va laisser la parole à Franck Ferrer à la batterie, Daniel Meunier à la basse, Stéphane Petit à la guitare rejoint par Frederick Allanic en avril 2008 suite à l’envol de Christophe Lacolombe. Damien Gaudois va officier en qualité de frontman. Que des beaux gosses comme le faisait remarquer J.C.JESS dans un des mails sur le site du groupe.
S’agissant du premier opus du combo, il s’agit d’un aboutissement et en même temps d’un nouveau défi, celui d’une reconnaissance, et, tel un bélier, cet album devrait défoncer plus d’une porte… sus à l’ennemi, sortons les épées des fourreaux.
A la lecture de quelques articles promotionnels, je m’attendais à découvrir un groupe au style bien rentre dedans… à l’écoute, le combo fait preuve d’un peu plus de subtilité. Les compositions ne sont pas linéaires, une recherche structurante dans l’écriture des morceaux est évidente chez Stéphane Petit et Damien Gaudois.
J’avoue que j’ai tiqué sur la voix de Damien dans « Spartan », chant dans un registre trop aigu à mon goût, et à trop s’éloigner de son centre de gravité, le risque de gamelle devient réel. Mais l’impression s’avère passagère car dès le morceau suivant « Moonless Night », la voix est mieux placée, plus harmonieuse avec un éventail de tonalités agréable à écouter. Les chœurs apportent de la puissance et de la profondeur aux parties vocales sans être toutefois omniprésents, ce n’est pas du THERION non plus…
« Virtue Of The Weak » est mon morceau préféré, il porte la signature de Christophe Lacolombe pour la musique. A l’écoute, ce titre de plus de six minutes se présente sous deux facettes, au début, l’espace est bien occupé par le chant de Damien qui s’approprie, il faut le reconnaître, la langue de Shakespeare avec pas mal de réussite. Sur la deuxième partie, plus instrumentale, la guitare de Frédéric Allanic s’impose, croisant son jeu avec celui de Stéphane, chassé croisé guitaristique réussi, le tout renforcé par une rythmique imparable basse/batterie. Le morceau, à l’image de l’album, démontre le plaisir du combo à jouer ensemble. Les musiciens font preuve de technicité et dextérité.
Je passe en boucle l’intro guitare de « About Metal », allant crescendo avant d’être rejoint par l’ensemble de l’équipe, pour un tir groupé. Le titre sonne bien Metal teuton, clin d’œil à « To The Metal » de GAMMA RAY, à n’en pas douter.
Avec « The Art Of Hypocrisy » nous retrouvons à nouveau une ligne mélodique qui s’accorde parfaitement avec les poncifs du genre Heavy.
Quel plaisir de retrouver un texte en français avec le titre « Echec », et dans un style qui me fait penser à la sortie récente de l’album Briser Le Silence de BLASPHEME. Pour ceux qui comme ARES sortent leur premier album, le BLASPHEME Band dédie cette citation : « A tous ceux dont l’espoir nourrit la raison d’y croire ». Il convient d’en faire notre devise au quotidien.
Je me réjouis d’être baigné dans cette musique, toujours aussi pêchue, même si elle paraît old school, n’en déplaise à certains, mais je la trouve intacte dans son énergie et sa créativité, quarante ans après l’achat d’un de mes premiers 33T, Nador de VARIATION avec Jo Lebb et Marc Tobaly.
Avec « Echec » le texte de Stéphane et Damien hume bon les fleurs du mal, le spleen baudelairien plane sur les rimes. Le titre fait aussi la part belle aux soli de guitare qui s’invitent entre les couplets.
Si vous deviez nous prêter une oreille une dizaine de minutes – n’ayez crainte : on vous la rendra, on a bien rendu son dentier à Bobby Liebling de PENTAGRAM (cf. Hellfest 2009) – on vous invite à écouter « Virtue Of The Weak », qui témoigne du potentiel du groupe dans l’écriture et les arrangements, et « About Metal », qui traduit bien la hargne et l’énergie du combo, à l’image des Conti de l’Oise.
L’album About Metal est une belle carte de visite, on est séduit par les arguments des musiciens VRP d’ARES, on attend maintenant la livraison du prochain colis, et il faudra assurer le SAV.
Petit rappel du label : Cet album n’est pas réservé aux seuls V.I.P. (Very Important Picards).
Ajouté : Vendredi 04 Mars 2011 Chroniqueur : Le Patriarche Score : Lien en relation: Arés Website Hits: 10956
|