# 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 EROTIK MONKEY (it) - Quando il Cielo Pianse Fuoco (2015)

Label : Auto-Production
Sortie du Scud : septembre 2015
Pays : Italie
Genre : Post Metal
Type : Album
Playtime : 11 Titres - 45 Mins
Quand le ciel pleurera du feu. C'est un peu le genre de poésie conceptuelle à laquelle s'adonnaient les créateurs des années 60, 70 et 80, lorsqu'ils craignaient tous une troisième guerre mondiale. C'est Dylan lui même qui avait instigué le mouvement je crois, avec "A Hard Rain's A Gonna Fall", en 1963, ce qui avait remué pas mal de monde...
Depuis, Cuba est loin, mais la guerre froide a été ranimée par Poutine, qui a épaissi le rideau de fer et multiplie les provocations... Est-ce pour autant que cette menace potentielle influence encore les artistes? C'est une possibilité, mais au delà de ça, rarement titre et musique n'auront été autant en adéquation que sur ce quatrième albums des italiens de THE EROTIK MONKEY.
Assemblés en 2007 à Capoterra, commune de la province de Cagliari en Sardaigne, le quatuor a quand même choisi un drôle de nom de baptême qui ne correspond pas du tout à son optique musicale. On penserait plus volontiers à un truc Indie, voir Pop Punk, ou un truc genre Happy Mondays, avec baggy et sweat à capuche. Pourtant, rien n'est moins vrai, et ce successeur de Tempesta Di Soli (2009), Samsara (2001) et Tutti Colori Del Buio (2013) se révèle à la hauteur de ses aînés, quoique beaucoup plus direct et donc, de fait, vous concernant plus concrètement.
A la base, de la richesse instrumentale, de l'émotion à fleur de peau, et une direction Post Rock évidente. Toujours présente sur ce nouvel LP, cette inclinaison est toutefois nuancée en agressivité par des accointances indéniables avec la scène alternative US des 90's, Grunge en tête, pour produire un mélange homogène et relativement envoûtant.
Si le Rock est bien sur la base sur laquelle toutes les compositions reposent, il convient de l'appréhender d'une façon sensorielle. Bien que flirtant souvent avec le Metal, TEM montre plutôt des signes de rapprochement avec un Post Hardcore très contemplatif mais puissant, sans les tics répétitifs ni les longues errances instrumentales. Ici, les digressions ne sont jamais prétexte, mais source, et si certains morceaux voient leur durée allongée au maximum, rien n'est superflu ni trop itératif.
Des influences ? Difficile, Quando il Cielo Pianse Fuoco est trop personnel pour ça. On peut par touches fugaces retrouver A PERFECT CIRCLE en plus lumineux, à l'instar d'un très vif "Come Farai", qui voit Andrea Cannucci chercher l'impulsion au fond de sa gorge pour se lancer dans une violente attaque vocale. On peut aussi penser à la vague Post Rock US des 2010's, tout comme à ALICE IN CHAINS ou STAIND dans les moments les plus accessibles, sans tomber dans les bassesses mielleuses de NICKELBACK. Grunge oui, Alternatif sans problème, mais par l'abrasivité, pas les mélodies faciles.
A vrai dire, rien n'est facile sur ce disque. Car chaque mélodie est travaillée, chaque rythmique est respirée et parfois, on vole en rase mottes, avec une guitare qui lamine des plans sans discontinuer, suivant au pas une batterie qui n'a de cesse de muter. Le court "USA" en est un exemple parfait, et certainement le plus torride et violent.
Outre ces composantes individuelles, l'album offre une progression constante, tirant ses plus grosses cartouches dans sa deuxième partie.
On y trouve les morceaux les plus développés, comme ce "Horus", dont la basse aurait pu accompagner les invocations dédiées au Dieu faucon égyptien, qui après quelques minutes d'un Post Rock très abrasif et acharné, se laisse aller à une longue coda apaisée, à peine supportée par une rythmique binaire minimaliste et une guitare laissant s'échapper les trois mêmes notes.
Les dissonances de "Crisalide" portent plus ou moins la même emprunte, et se laissent d'abord amadouer par des harmonies sombres avant d'imploser à l'occasion d'une partie centrale aussi orageuse qu'un soir d'été.
Et après le délicat intermède "Respiro", qui incite à prendre une grande bouffée d'air, c'est l'apnée "Zitta" qui clôture l'aventure, avec ses fréquences initiales, se laissant happer par un énorme riff presque Néo. Puis le quatuor se lance dans une sorte de transe Hardcore, très tribale, sur laquelle le chant devient de plus en plus rageur et investi, donnant un énorme coup de fouet et une autre résonance à un LP qu'on ne voyait pas finir ainsi.
Certes, un shunt imprévu et brutal laisse la pression retomber, sur fond de pas et de télévision allumée, mais quel dernier effort plein d'audace et de brutalité inopinée...
Il est vrai que la première partie de Quando il Cielo Pianse Fuoco ne laissait en rien entrevoir une telle débauche de violence. Les respirations étaient encore à ce moment là longues et appuyées, même dans les essais les plus brefs et concis, comme ce "Lastima" qui se plaçait de lui même sous des auspices Post Rock plus traditionnels.
Et même si "Apocalisse Morbida" montrait déjà des signes de transition vers un Post presque Hardcore, la mélodie était encore de mise, bien que l'analogie avec un "Praise Be" de TENGIL ne fut pas incongrue pour en parler. Et finalement, le tableau se dessine petit à petit de façon très subtile et intelligente, et nous visualisons à posteriori un ciel clair, qui commence à se couvrir, et qui finit par être envahi de nuages noirs, qui charrient une électricité au bord de l'explosion... et qui finit par exploser.
Somme toute, Quando il Cielo Pianse Fuoco est un album d'une maturité et d'une richesse extraordinaires. Débutant de façon assez classique, il referme vite le chapitre des conventions pour laisser sa plume voguer dans un ciel de braise, et prouve que le chemin parcouru par les Italiens est immense. Depuis leurs débuts, leur style s'est affirmé, pour devenir aujourd'hui très personnel, véritable carrefour stylistique qui finit par aboutir à un mélange émotionnel et sensoriel stimulant les sens.
Sur une globalité, il n'est pas impossible de ranger les EROTIK MONKEY du côté du Post Hardcore, mais cette restriction ne rendrait pas service à leur démarche, beaucoup plus large et moins figée.
Quand le ciel pleurera du feu. C'est ainsi mais que se passera t-il après ?
Ajouté : Vendredi 20 Mai 2016 Chroniqueur : Mortne2001 Score :      Lien en relation: The Erotik Monkey Website Hits: 6446
|