# 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
}
MEFISTO (se) - The Megalomania Puzzle (2014)

Label : Vic Records
Sortie du Scud : 16 juin 2014
Pays : Suède
Genre : Speed Black Metal
Type : Album (réédition)
Playtime : 8 Titres - 46 Mins
La Suède dans les années 80 n'était pas vraiment l'Eldorado des amateurs de musique extrême... Car lorsqu'on évoque ses rivages nordiques, si les noms de EUROPE, 220 VOLTS, YNGWIE MALMSTEEN viennent immédiatement à l'esprit, il faut au cerveau un certain temps de réflexion pour transmettre d'autres références, beaucoup plus sévères, mais aussi beaucoup plus obscures.
Il est évident que le père fondateur du brutal made in Sweden reste Quorthon, et sa créature hideuse, BATHORY. C'est lui qui a jeté les bases du Black Metal dès le début des 80's, et qui a laissé pour testament (RIP) dès 1984 des oeuvres aussi farouchement anticonformistes qu'essentielles dont Bathory, The Return, et le traumatique mais séminal Under The Sign Of The Black Mark forment le triptyque le plus fameux et infernal. Depuis, la donne à changé, et la Suède passe désormais pour une terre fertile en productions diverses, et de ses côtes ont émergé des acteurs essentiels de l'extrême, dont la vague Black Metal menée par MARDUK, DARK FUNERAL et DISSECTION, la déferlante Death guidée par ENTOMBED, GRAVE, et suivie par HYPOCRISY, IN FLAMES, ou SOILWORK dans son inondation la plus moderne, ou d'autres plus isolés et personnels comme OPETH, SABATON, Pain ou les étranges CULT OF LUNA.
Ainsi, la géographie du Metal a du insérer dans ses pages la carte d'un pays devenu essentiel... Mais il y a trente ans, les quelques lignes consacrées à cette contrée n'auraient pas rempli un chapitre de l'encyclopédie du Metal, et il fallait une sacrée dose de courage, d'abnégation et même de folie pourquoi pas pour y entamer une carrière musicale dans un autre créneau que la Pop ou le Hard Rock mélodique. Mais si la même histoire se complait à ne retenir que le nom de BATHORY depuis cette époque, d'autres avaient aussi osé pousser le bouchon un peu plus loin, avec toutefois des fortunes un peu moins enviables. Ainsi, qui se souvient des sympathiques OBSCURITY, qui après trois démos de pur Death avant l'heure avaient du jeter l'éponge ? Pas grand monde. Sans doute les mêmes qui se rappellent qu'en 1984, un obscur trio nommé TORMENT proférait ses premiers grognements, avant de changer de patronyme pour celui plus adapté et occulte de MEFISTO.
MEFISTO et OBSCURITY ont plus ou moins eu un parcours assez similaire. Quelques démos, puis le split, avant de voir leurs travaux réédités sous la forme de compilations exhaustives. Mais ils partageaient aussi une vision, probablement la même que feu Quorthon, qui les poussait à enregistrer une musique hors de son temps, qui les fit passer soit pour des visionnaires, soit pour des allumés potentiellement dangereux. Et si OBSCURITY posait les bases d'un Death Metal que POSSESSED allait bientôt graver sur vinyle pour l'éternité, MEFISTO choisissait de se concentrer sur des motifs beaucoup plus sombres, qui allaient être développés des années plus tard par toute la vague Néo Death/Black des 90's, dans une approche plus moderne et adaptée à l'air du temps.
Vous retrouverez donc ainsi sur The Megalomania Puzzle les deux seules démos du groupe, Megalomania et The Puzzle, déjà compilées en CD en 1999 sous le titre The Truth, par le label Regain Records.
Alors, me direz vous, en partie avec raison, quel est l'intérêt de cette nouvelle réédition ? Et bien, un remastering très propre, et un livret avec notes des musiciens et une intervention de Jon 'Metallion' Kristiansen, le génial créateur du fanzine Slayer, une référence en matière de journalisme musical. En gros, de quoi rendre correctement hommage à un des groupes les plus essentiels de la scène suédoise, malheureusement tombé dans les oubliettes de l'intérêt général, à tort.
Aucun inédit certes, mais comment pourrait-il en être autrement puisque le groupe n'a rien enregistré de plus ? Juste ces huit compositions, éternelles, qui se permettent un mélange osé pour l'époque, et qui ont de quoi donner quelques regrets quant à l'impasse dans laquelle Roberto, Omar et Sandro se sont retrouvés.
Tous les ingrédients sont là pour comprendre la fin de non recevoir que le succès à opposé à MEFISTO. Trop mélodique pour les fans de violence, trop soutenu et concis pour les amateurs d'harmonies, MEFISTO mélangeait les courants avec un talent indéniable et personnel, et du coup, à semé tout le monde en route. Peut être aurait-il mieux valu qu'à l'instar de Quorthon, ils se focalisent sur la brutalité et la noirceur, mais ce choix leur aurait ôté tout leur charme...
Car MEFISTO savait tirer le meilleur parti de la clarté musicale de la New Wave of British Heavy Metal et de la brutalité du Thrash Européen naissant. La jonction des deux styles pas si antagonistes que ça donnait dans leur logique une coloration intéressante, juxtaposant les guitares mordantes de BLIETZKRIEG ou DIAMOND HEAD, et les rythmiques affalées de SODOM et DESTRUCTION. Les points communs avec ces deux derniers sont d'ailleurs multiples et facilement décelables, et ce dès le premier morceau "Missing In Action". Après une belle intro délicate à la guitare acoustique (omniprésente sur le disque, une autre caractéristique du groupe), le débat s'enflamme, la rythmique déboule a cent à l'heure, et les riffs se font saccadés. Chant sourd, proche des incantations de Tom Angelripper, breaks inopinés (pas toujours carrés d'ailleurs... un point commun de plus avec SODOM et WITCHHUNTER...), la recette fonctionne, et la magie opère toujours, trente ans plus tard.
Les quatre premiers morceaux, issus de la première démo Megalomania sont quasiment tous construits sur le même moule, avec une légère exception pour le final "Act Dead", Thrash de bout en bout.
Les choses changent un peu dès "Hunting High, Die", qui offre des développements plus ambitieux au gré de chansons plus longues et plus progressives. Les choeurs sont plus travaillés, et même si la trame reste similaire, on sent un groupe plus en place, qui a affirmé ses positions. Et cette progression trouve son écho dans le formidable épilogue "Underground Circus", épique à souhait, renouant avec la base matricielle de BLACK SABBATH, avant de reprendre à son compte tous les éléments précédents avec une maestria indéniable...
Le son, retravaillé pour l'occasion, permet de se replonger dans les standards des années 80, tout en apportant une touche moderne appréciable, clarifiant les guitares sans déposséder la rythmique de sa puissance initiale.
The Megalomania Puzzle drainera donc son lot de questions sans réponses, et permettra je l'espère de réhabiliter l'un des pionniers de la musique extrême nordique... Si BATHORY n'a jamais usurpé sa réputation (combien se sont échiné à essayer de reproduire la magie ténébreuse de The Return en vain?), MEFISTO aurait sans doute mérité un peu plus d'attention, tant ses trois membres ont défriché des terres jusqu'à lors inconnues et effrayantes. Il n'appartient qu'à vous maintenant de leur rendre l'hommage qui leur est du, en vous sevrant à la source originelle.
Ajouté : Lundi 28 Juillet 2014 Chroniqueur : Mortne2001 Score :      Hits: 12598
|