# 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
}
HOLOSADE (uk) - Hell House (2015)
Label : Divebomb Records
Sortie du Scud : 12 novembre 2015
Pays : Royaume-Uni
Genre : Thrash Metal
Type : Album
Playtime : 14 Titres - 66 Mins
Je ne peux que féliciter ces labels qui honorent leur passé et décident de fouiller dans les archives pour en exhumer des albums passés inaperçus à l'époque, noyés dans la masse des sorties toujours plus abondante. Certes, certains auraient pu/du rester dans l'ombre, mais d'autres au contraire méritent ce surplus de lumière qui leur permet aujourd'hui d'être écoutés dans de bonnes conditions.
Les années 80 furent témoin d'une explosion de labels indépendants, de micro structures sans aucun moyen de promotion, et les groupes y signant par défaut pour enfin décrocher le sésame y perdirent quelques illusions au passage. Sans parler des formations éphémères n'ayant pas passé le cap du premier effort et splittant dans l'indifférence générale.
Aujourd'hui est soulevé un cas intéressant, via le très bon label de Greensboro, CN, qui à l'instar des passionnés Metal Mind s'est mis en tête de replacer dans un contexte contemporain quelques oeuvres qui méritent le détour, sous la forme d'une collection de séries B fameuses. Pour qui a connu ces groupes à l'époque, cette initiative est très louable, musicalement bien sur, mais aussi esthétiquement et techniquement, puisque chaque sortie est soignée, et les albums d'origine sont toujours agrémentés de morceaux plus ou moins inédits, de live, et autres publications confidentielles.
Aujourd'hui, notre cas du jour est anglais, et son parcours assez révélateur du chemin de croix arpenté par de nombreuses formations de l'époque.
Alors que la scène UK de la seconde partie des 80's se voyait systématiquement encensée par la presse indépendante, les kids du monde entier avaient du mal à faire le tri, aveuglés par les hagiographies dithyrambiques de journalistes chauvins annonçant chaque semaine le "nouveau VENOM", ou le "futur SLAYER", tentant au passage de faire passer des vessies pour des lanternes, et des RE-ANIMATOR pour des ANTHRAX.
Ainsi, HOLOSADE, combo de Darlington (VENOM, RAVEN, ATOMKRAFT et WARFARE, autrement dit une vraie ruche) se retrouva immergé dans une scène inondée de laquelle il était assez difficile d'émerger. Fondé en 1985, ce quintette mené par Phillip De Sade (ex DARK HEART et REBEL) empila les démos, cinq au total, avant de se voir offrir une signature sur le label Powerstation Records (TOKYO BLADE, CHROME MOLLY), qui crut tellement en ses capacités qu'il poussa les murs, et transforma leur premier EP en LP, Hell House.
On retrouvait dans le line-up un certain Damian Lee (aka Michael Lee) au kit, futur LITTLE ANGELS, THE CULT et ROBERT PLANT Band, qui renia d'ailleurs par la suite sa participation au groupe, sans réelle explication... Peut-être que le Heavy Speed Thrash de ses anciens confrères n'était pas assez noble pour lui...
Et en réécoutant aujourd'hui cet unique album d'HOLOSADE, on a du mal à comprendre son désir de travestir son CV, tant cette musique respire l'énergie de la fin des 80's, lorsque les groupes anglais mettaient encore en application les leçons enseignées par la NWOBHM en l'adaptant aux standards Heavy Thrash exportés des Etats-Unis. Et il n'y a franchement pas de quoi avoir honte d'avoir participé à cette aventure.
Si la mémoire ne vous fait pas défaut, vous n'avez pas pu oublier HALLOW'S EVE, ABATTOIR, le premier FLOTSAM & JETSAM, AGENT STEEL, et tous ces combos navigant dans des eaux où convergeaient des courants Heavy, Speed et parfois des rapides plus Thrash.
Ces musiciens qui usaient de riffs popularisés par SATAN, SAVAGE, TRESPASS, ou DIAMOND HEAD, en les assimilant à des structures plus modernes et mordantes... Moins foncièrement violents que leurs compatriotes ACID REIGN, plus Mosh, ou XENTRIX, plus Thrash, mais plus puissants et compacts que HYDRA VEIN ou PARIAH, HOLOSADE se concentrait sur la pertinence des riffs, mais travaillait aussi ses ambiances pour finaliser un des albums les plus emblématiques de cette scène Anglaise à cheval entre mélodie et agression, que SABBAT allait bientôt faire exploser aux yeux du monde en deux albums essentiels.
On retrouvait d'ailleurs dans les rangs du groupe un certain Jack Hammer, aka Simon Jones, futur second guitariste sur le Dreamweaver de SABBAT dans lequel officiait aussi un certain Andy Sneap, qui s'est justement occupé de la remasterisation de Hell House à partir des bandes d'origine.
Tout ça pour dire quoi ?
D'une, que le sérieux du travail d'exhumation et de "remise en état" de Hell House est à souligner. Outre le fait qu'il soit pour la première fois disponible en CD, on retrouve sur cette édition collector une session pour la BBC, mais aussi deux titres présents sur la démo de 1987 pour NEAT records, ainsi qu'un gros livret vingt pages blindé de photos et d'archives d'époque.
Au delà de ces considérations matérielles, c'est surtout l'occasion de redécouvrir un excellent album de Heavy Speed teinté de Thrash, aux huit morceaux ayant plutôt bien passé l'épreuve du temps.
Outre l'ouverture tonitruante de "Looking Into The Mirror", sans ambages et puissante comme un standard d'ANNIHILATOR, vous tomberez au choix sur l'épique et atmosphérique "Psycho", fortement influencé par le Métal lourd et compact de METAL CHURCH, du médium méchant et hargneux sur "Love It To Death", qui doit plus à HALLOW'S EVE qu'à Alice COOPER, ou "Eternal Life" qu lâche un refrain que les RAVEN n'auraient pas renié.
L'intelligence d'Andy Sneap dans son travail de production à posteriori est d'avoir conservé la patine d'époque, avec ce son fin et clair, sans chercher à le dénaturer et ainsi défigurer une musique bien ancrée dans son époque.
Les deux morceaux de la démo 87 ne sont pas non plus dénués d'intérêt, et présentent deux chansons que l'on retrouvera un an plus tard sur le LP, "Psycho" et "Eternal Life", et les autre titres interprétés pour une session à la BBC profitent d'un regain de volume et de gravité qui les rend encore plus percutants.
D'aucuns diront sans doute, "mais pourquoi faire?". Certes, si cette période vous est complètement indifférente, ou que ces albums de série B ne vous sont ni familiers ni chers, la question peut se poser. De mon côté, je salue le travail de ces labels qui consacrent leur temps à réhabiliter et offrir une seconde chance à des groupes n'ayant pas pu profiter du boom des années 80. Non par manque de talent, mais plutôt par de mauvais concours de circonstances. Et puis avec un futur SABBAT et un futur LITTLE ANGELS dans ses rangs, HOLOSADE a quand même une certaine importance historique, suffisante pour qu'on y jette une oreille. Sans oublier de parler de sa musique, qui si elle a vieilli bien sur, reste toujours aussi bondissante et mordante.
Poussez donc les portes de cette maison de l'enfer, le trip est garanti. Et c'est un fan Hardcore qui vous le dit !
Ajouté : Lundi 31 Octobre 2016 Chroniqueur : Mortne2001 Score : Lien en relation: Holosade Website Hits: 6996
|