# 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
}
BISMUTH (uk) - Unavailing (2015)

Label : Dry Cough Records
Sortie du Scud : 25 novembre 2015
Pays : Royaume-Uni
Genre : Extreme Doom Drone
Type : Album
Playtime : 4 Titres - 57 Mins
"Le bismuth a longtemps été considéré comme l'élément avec la plus grande masse atomique stable. Mais il est aussi hautement radioactif. Son nom serait dérivé de l'allemand, signifiant "masse blanche""
Rarement patronyme aura été mieux choisi pour définir la musique d'un groupe. De plus, il pose une question ouverte. Se trouvant rarement dans la nature, il se déclasse lui même de son unicité, alors... En est-il de même pour ce duo anglais (Tanya Byrne - basse et chant, Joe Rawlings - batterie) ?
Sans hésiter, la réponse est oui.
Nous avions déjà plus ou moins touché le fond des abîmes avec des formations aussi différentes qu'irritantes telles que ENCOFFINATION, SUN O))), NEJDA, ou LIKE DRONE RAZORS THROUGH FLESH SPHERE, mais il fallait que BISMUTH vienne en rajouter, pelletant encore plus la terre du Doom pour n'en retenir que les couches les plus épaisses et compactes.
Les anglais ont du faire un blocage un jour. Ce fameux jour ou le SAB' a laissé son tocsin s'évanouir dans une aube nouvelle, annonciatrice de lendemains beaucoup moins fleuris que ceux des hippies qu'ils détestaient tant. Depuis, ils cherchent le moyen de trouver des sons encore plus lugubres, des atmosphères encore plus tenaces, et ils y parviennent, bon an mal an. Comme le prouve ce nouvel album du duo qui en quelque sorte, atteint un nouveau pic dans le paroxysme de la douleur.
Peut-on dans ce cas précis encore parler de musique, ou bien de simple expression artistique ? Cette seconde hypothèse me paraît la plus plausible et honnête, à moins que vous ne considériez les longues errances monolithiques et grondantes comme des mélodies, à l'instar de Lustmord et ses sons de cavernes. Tiens d'ailleurs, Platon, allégorie. Unavailing pourrait en être le parangon. Attendre devant l'obscurité que le monstre apparaisse, pour ensuite décider de la marche à suivre. Fuir, ou l'affronter. Et cette expérience qu'est Unavailing est le meilleur test que vous pouvez trouver actuellement sur le marché pour mesurer l'étendue de votre patience et de vos craintes. Le monstre dans les abîmes de Nietzsche, le monstre dans la caverne de Platon. Mais quoi qu'il en soit, il s'agit toujours de monstres.
Plus directement, en quatre morceaux longs comme une nuit nordique, les deux anglais posent en équation la théorie du "Less is More". Fog londonien, vieux cimetière écossais, et procession sans fin, enterrement de luxe pour illusions mélodiques traumatiques, Unavailing est une mise en terre de l'harmonie sous toutes ses formes, et la mise en exergue de la basse comme source de vibrations mentales en forme de Némésis. A titre d'exemple, il faut dix bonnes minutes à "Of The Weak Willed" pour laisser sa rythmique se mettre en place, et encore de façon très pernicieuse et parcimonieuse. Sinon, la basse mène le bal, coincée sur deux notes grondantes, comme une séance d'hypnose cauchemardesque et concentrique, qui ramène à la mémoire les plus mauvais souvenirs de soirées de solitude.
La solitude, l'introspection sont les deux thématiques obsessionnelles de BISMUTH. Ils les traitent de façon non évolutive, en restant bloqués sur un motif unique, qu'ils étirent jusqu'à la folie mécanique. Aucun morceau ne fait exception à cette règle, et si parfois la distorsion vient nous tirer de notre cauchemar éveillé, le chant susurré à des kilomètres nous y replonge, comme un conseil fantomatique qui nous cloue sur notre couche.
Eventuellement, "The Holocene Extinction", l'un des plus Heavy du lot, ce qui n'est pas un mince exploit, propose un développement en puissance assez intéressant, qui se termine dans un ballet d'arrangements effrayants, comme dépeignant la marche lente mais sure d'une créature de l'ombre qui s'approcherait de l'auditeur, et dont l'ombre finirait par le recouvrir entièrement.
"Solitude And Emptiness" s'accorde même un mid tempo presque supportable, laissant la basse s'effondrer dans un feedback qui fait trembler les murs, avant de reprendre sa stabilité presque inamovible, et achever l'album dans une boucle que rien ne semble pouvoir briser.
Certes, le tout est compact, dense, et les intentions inextricables. Il y a de la beauté la dedans, comme on en trouve dans toute laideur aussi repoussante soit elle, et peut être se cache elle dans ces répétitions sans fin, qui tournent, tournent autour d'un axe morbide, et d'une obsession le confinant à la folie monomaniaque.
Oui, le terme est choisi. Les deux anglais sont en quelque sorte un négatif, dont on cherche en vain le positif, enfoui sous des profondeurs de noirceur et de tristesse.
Mais telle est la règle de ce style de musique, peut être le plus figé et inamovible qui soit...
Le son conféré par la production de Chris Fielding et James Plotkin est bien évidemment gigantesque, grave au possible, et laisse les deux instrumentistes libres d'expérimenter ce que bon leur semble. Quant à la portée émotionnelle d'une telle entreprise, elle dépend de la sensibilité de chacun. Si les réfractaires au Doom/Drone trouveront matière à appuyer leurs sempiternelles railleries, certains se laisseront envoûter par ces quatre pistes inamovibles, basées sur une vision unique, découpée en quatre mouvements.
Performance, expression, je ne sais pas. Il n'en reste pas moins que c'est le type d'album presque impossible à critiquer, tant sa démarche est absolue. Et à la rigueur, ne tenez pas compte de la note accordée, car finalement, elle n'est qu'une figure imposée. Unavailing n'est pas un album qui se juge avec des chiffres, mais avec du ressenti.
Et l'avantage de ce disque par rapport à l'élément qu'il illustre en musique, c'est qu'il n'est pas radioactif.
Ajouté : Dimanche 12 Juin 2016 Chroniqueur : Mortne2001 Score :     Lien en relation: Bismuth Website Hits: 7494
|