# 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
}
SHINING (se) - IX - Everyone, Everything, Everywhere, Ends (2015)

Label : Season Of Mist
Sortie du Scud : 20 avril 2015
Pays : Suède
Genre : Black Metal
Type : Album
Playtime : 6 Titres - 40 Mins
Le propre de la nature humaine est de suivre un cheminement illogique, qui ne doit sa compréhension que par les sensations, les émotions que nous éprouvons, et qui nous transforment, petit à petit. De la naissance au trépas, les étapes ne sont pas toujours claires, elles se dessinent petit à petit, et notre personnalité s'y adapte, ses contours deviennent parfois plus flous, et notre discours suit plus ou moins le même chemin. Ainsi, l'homme que nous étions à vingt ans n'a sans doute plus rien à voir avec le quadragénaire indécis, un peu perdu qui se retourne et qui par nostalgie, chercher à retrouver un peu de son histoire passée.
"Rien n'est difficile à la nature, surtout lorsqu'elle est pressée de se détruire." (Sénèque)
La musique, quoique art à part entière, est dictée par un esprit, par un coeur, par une âme. Il est donc normal, à partir du moment ou elle est crée par l'homme, qu'elle suive la même progression pas forcément bien établie. Si à un moment T donné, sa structure, ses mélodies, ses impulsions suivent des schémas précis, rien ne prouve qu'il en sera ainsi des années plus tard... Et parfois, la métamorphose non obligatoire bien sur, s'opère sur un laps de temps encore plus bref. Une poignée d'années suffisent à la transfigurer, à la modifier en profondeur, même si ses fondements restent les mêmes. Pourquoi ce préambule pseudo philosophique ? Parce que l'album dont je vous parle en ce moment même est un exemple type de ce genre d'évolution.
SHINING (le suédois, pas le norvégien), est, on le sait depuis le début, la créature de Niklas Kvarforth, le véhicule qu'il utilise pour mettre en forme ses idées, illustrer son état d'esprit, incarner ses pensées et ses émotions les plus profondes. Depuis Within Deep Dark Chambers, l'homme n'a eu de cesse d'invoquer la tristesse, la désillusion, la lucidité face à une nature humaine foncièrement mauvaise qui transforme les sentiments les plus purs en objets de consommation courante. Si pour beaucoup son chef d'oeuvre restera à jamais V - Halmstad, la plupart de ses fans sont restés attachés à une certaine forme d'expression, tenant du nihilisme et du rejet purs, qu'ils ont retrouvé jusqu'à un des LP suivant, que j'avais chroniqué en ces colonnes, VII: Född Förlorare.
Un son sec, très compact, peu d'harmonies, peu d'empathie, une bourrasque de misanthropie expédiée au travers de quelques morceaux hermétiques et extrêmement bruyants, comme une litanie désespérée que rien ne semblait pouvoir altérer. Mais voilà, l'homme, comme nous tous à changé, au grand dam d'une frange de son public. Il a changé, et ne se reconnaît plus - pour l'instant - dans ce déversement de haine sans interruption. Sa façon d'exprimer sa tristesse à changé depuis 2011, et la musique qu'il joue aujourd'hui n'a plus rien à voir avec son passé. Vous êtes libres de la rejeter, c'est votre droit le plus absolu, mais je conteste toute velléité de critiques gratuites remettant en cause sa qualité. Car même si la forme est radicalement différente, elle n'en reste pas moins d'une beauté sombre absolue. Et le fond lui, est toujours là. Il a trouvé une autre voie, plus mélodique, plus construite, plus aérée, mais sa base reste la même. Et si IX - Everyone, Everything, Everywhere, Ends ne fait montre que de peu de points communs avec ses illustres prédécesseurs, c'est un disque riche, luxuriant, travaillé, qui montre le refus obstiné de Niklas de se cantonner à une recette certes parfaite, mais qui sur le long terme ne lui aurait plus apporté grand chose.
Par essence, on retrouve par touches très éphémères le SHINING d'autrefois. Dans ces accélérations brutales et haineuses, dans ce chant qui parfois s'arrache encore sur quelques secondes de cris rauques et déchirés, sur quelques riffs froids et tendus. Mais dans sa globalité, il se repose sur des harmonies acoustiques, sur des progressions mélodiques envoûtantes, sur des enchaînements Folk de toute beauté. C'est ainsi, les choses évoluent, les hommes et leur art aussi.
Et si l'intro rassurera pour quelques secondes les passéistes qui refusent toute évolution, si la rythmique initiale de "Vilja & Dröm" continuera dans ce trompe l'oeil, en restant enraciné dans un terreau Black putrescent, la donne change vite, et "Framtidsutsikter" de développer des tapis de cordes et des arrangements de chant beaucoup plus apaisé, des ciselages acoustiques doucereux, que nombre jugeront mièvres, mais qui sont pourtant la marque de fabrique contemporaine du groupe. Il faut s'y faire, et c'est ainsi.
Et d'ailleurs, Niklas prend un malin plaisir à agiter de soubresauts d'antan la plupart des morceaux qu'on retrouve sur ce IX - Everyone, Everything, Everywhere, Ends. Aucun dans son intégralité ne pourrait prétendre figurer sur une de ses oeuvres des mid 2000's, mais chacun en porte l'emprunte, et en garantit une partie de l'héritage. Ainsi, "Människotankens Vägglösa Rum" s'affole parfois dans des blasts qui pourraient servir de garde fou, mais la simplicité d'un solo pur vient contredire quelques secondes après cet état de fait. Les breaks Heavy s'empilent les uns sur les autres, les segments Folk s'accumulent, et le maître se fend même parfois de soli traditionnels un peu dans la lignée de ceux de Michael Amott.
En gros, le leader assume ses choix, sans hésiter et ce jusqu'au "Besök från i(ho)nom" final, qui ne fait presque aucun cas d'une forme de brutalité ou d'une autre, et qui laisse ses huit minutes s'écouler comme une rivière glacée, mais aux reflets argentés.
On peut être et avoir été. Etre différent dans ses mots, ses notes, ne veut en aucun cas dire qu'on a changé. Et quand bien même ce serait le cas, quel mal y a il à être honnête et à vouloir s'exprimer d'une façon qui est en adéquation avec sa nature ?
Quel serait l'intérêt pour SHINING de poursuivre sur une voie en forme d'impasse, et de reproduire ad vitam aeternam le même album, certes parfait, qui rendrait certainement heureux des milliers de personnes, mais qui le frustrerait au plus haut point ?
La musique étant au delà de l'expression un exutoire, j'acclame cette nouvelle direction, riche, mélodique, sincère.
IX - Everyone, Everything, Everywhere, Ends est un excellent disque, qui propose des chansons de qualité, remplies de Folk, de Black, de Heavy, dans un mariage pas du tout contre nature et largement aussi puissant que n'importe quel autre LP de la discographie du groupe.
Vous pouvez choisir de rester accroché au passé. Vous pouvez aussi choisir l'avenir, en compagnie d'un homme qui ne ment pas, et reste lui même. Après tout, la tristesse revêt bien des aspects. Celui-ci en est un des plus beaux.
Ajouté : Mercredi 01 Juillet 2015 Chroniqueur : Mortne2001 Score :     Lien en relation: Shining Website Hits: 7958
|