# 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
}
THE BRIDAL PROCESSION (FRA) - Astronomical Dimensions (2010)

Label : Siege Of Amida Records
Sortie du Scud : 27 décembre 2010
Pays : France
Genre : Death Metal moderne
Type : Album
Playtime : 9 Titres - 39 Mins
Pourquoi le reste du monde est-il jaloux de nous, français ? Parce qu’on a les plus belles moustaches ? Parce qu’on a THE BRIDAL PROCESSION ? Surement parce qu’on a les deux en fait et qu’en plus, un mec comme Steve Garner est la matérialisation physique de ce mauvais réflexe qu’est l’envie. Dernière ligne du décalogue mais aussi troisième dans la hiérarchie des péchés capitaux, l’envie a finalement trouvé sa place au sein de notre société. Qu’on aime ou qu’on n’aime pas cette scène parisienne, THE BRIDAL PROCESSION est un nom qui impose le respect, encore plus depuis la sortie de son premier album, Astronomical Dimensions, au lendemain d’un lendemain d’un lendemain de Réveillon de Noël 2010 forcément un peu arrosé. Et il va sans dire qu’après de multiples effets d’annonce utiles pour patienter mais mauvais pour les nerfs, l’arrivée de cette promesse n’était pas de trop. Le futur était là, sous nos yeux.
Et grandiose, comme « Overtactive Minds » cette introduction très orchestrale, presque cinématographique et digne d’un brillant péplum qui ouvre la porte à un « Flesh To Flesh » titanesque. La première claque, elle s’inflige dans la précision. Précision dans la voix de Steve, d’une profondeur insoupçonnable et dans le placement chirurgical de chaque syllabe. Précision dans le riffing, complètement dantesque et savamment accompagné de claviers grandiloquents. Précision dans le jeu de batterie, tentaculaire. Précision dans la production. Mais avec à l’enregistrement Alexander Dietz, guitariste d’HEAVEN SHALL BURN, producteur pour NEAERA, MISERY SPEAKS, au mixage Daniel Castleman du Lambesis Studio, proche collaborateur de CARNIFEX, AS I LAY DYING, WINDS OF PLAGUE et au mastering Alan Douches du West West Side Music (CANNIBAL CORPSE, SIX FEET UNDER, WHITECHAPEL ou HATE ETERNAL), pouvait-il en être autrement ? Ce premier morceau est une violente bourrasque qui remue dans tous les sens mais plus qu’un tour de force, c’est l’exceptionnelle habileté de ces Parisiens à composer qui prend à la gorge. Les plans bestiaux et typiquement Death ne restent pas en tête bien longtemps. C’est plutôt l’utilisation de ces claviers pompeux qu’on garde en mémoire. Car il faut bien le dire, sur une création de l’envergure de « Pillage The Scavenger » ou de « Shroud Of The End », il y a du Mustis dans la facilité à manier le piano. Et ça bénéficie grandement à Astronomical Dimensions, qui jouit à la fois de cette virtuosité et de ces nuances kitsch qui tranchent avec la modernité apparente de leur Death Metal. Même le morceau éponyme, entièrement instrumental et qui mêle guitares passionnées, exotiques et symboliques fait des ravages au cœur d’une œuvre construite de bout en bout. De plus, la voix de chien fou de Steve porte cet album à bout de bras, même si elle a tendance à ralentir à certains moments, comme sur l’ouverture très Thrash de « Diminishing Lungs ». Pour finir, au-delà des arrangements complexes et théâtraux de cet album, il faut souligner son métissage exceptionnel, à l’image de l’introduction d’« Obsolete Machines », à la fois Heavy et orientalisée, qui pousse Astronomical Dimensions dans un brassage culturel absolument inédit pour un banal disque de Death Metal.
Alors simplement, corrigez-moi. Le mot « banal » n’a rien à faire dans une telle chronique. THE BRIDAL PROCESSION, c’est une force de la nature qui a refusé de se laisser embarquer dans un mouvement Deathcore de seconde main, dans un délire technico-algébrique sans solutions, n’écoutant que son instinct, peut-être primaire, mais foutrement létal. Comme chaque formation dotée d’un tel potentiel, THE BRIDAL PROCESSION attire les remous, exactement comme le sang attire les requins. A l’heure d’aujourd’hui et bien qu’un second album soit à l’ordre du jour, son nom ayant même déjà été révélé (Descent Into Arcologies), je ne sais pas si on en verra la couleur. Mais quoi qu’il puisse arriver, ces garçons peuvent déjà être fiers de nous avoir légué un debut album de la trempe de ce Astronomical Dimensions.
Ajouté : Mercredi 19 Décembre 2012 Chroniqueur : Stef. Score :     Lien en relation: The Bridal Procession Website Hits: 9448
|