# 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
}
FASBA FPEL (usa) - Book VIII: Dumbing Down to Win an Emmy (2014)

Label : Ocean Eyes Records
Sortie du Scud : 2 août 2014
Pays : Etats-Unis
Genre : Metal Expérimental
Type : Album
Playtime : 6 Titres - 46 Mins
Voilà un concept intéressant. Non, c'est vrai, il y a quand même longtemps qu'un truc pareil n'avait pas été tenté. A l'heure où les groupes économisent leurs forces et relèvent les compteurs tous les trois, quatre ans, certains choisissent la voie inverse et sortent tout ce qu'ils enregistrent. On avait déjà eu Zappa, qui se voulait plus prolixe en publications diverses qu'un lapin en coïts, la clique à Portnoy qui nous balançait tous les trois mois un album instrumental, un autre de chutes de studio, ou un nouveau projet génial, voire notre Devin T. chéri qui s'incarnait dans un nouveau personnage deux ou trois fois l'an.
Mais tout ça... Peanuts. Peace of cake man. Parce que j'ai trouvé LE groupe qui pousse la chose à son paroxysme et qui sort VRAIMENT tout ce qu'il enregistre.
Son nom ? FASBA FPEL. Jugez vous même. Formé en 2013, le trio a déjà sorti la bagatelle de treize albums... Book VIII Dumbing Down to Win an Emmy, leur neuvième effort comme son nom ne l'indique pas, est sorti au début du mois d'août de cette année, et est déjà devenu un oldie... Hallucinant ! Mais ça n'est rien comparé à la volonté du groupe de publier une centaine d'albums gratuits d'ici fin 2015... Est ce raisonnable messieurs ? Et ce projet a t'il une chance d'aboutir ?
Autant de questions auxquelles il est difficile de répondre avant l'échéance proprement dite... Mais outre la quantité, intéressons nous à la qualité. Car il est bien beau de vouloir offrir au public des oeuvres d'une façon complètement désintéressée, encore faut-il que ces travaux soient dignes d'attention... Est ce le cas ? Je ne saurais répondre d'une manière globale, alors je vais me baser sur cette infime portion de discographie qu'est Book VIII Dumbing Down to Win an Emmy...
Première étape, définir les contours de la pièce en question. Et dès cette tâche initiale, l'effort est rude. Car FASBA FPEL est tout et rien à la fois. Pas vraiment Metal, mais utilisant de lourdes guitares, pas vraiment Doom mais privilégiant les tempi lourds, pas vraiment Stoner mais affectionnant les riffs bien gras, résolument avant-gardiste sans être trop abscons, instrumental ou presque, un peu Post n'importe quoi aussi, Book VIII est une véritable casse tête dont on sort remué mais sans véritable réponse. Et après tout, est ce bien là l'essentiel ? Non pas vraiment, tant leur cas est unique et s'appréhende avec des oreilles neuves et un sens de la logique décalé.
Découpé en six pistes, cet album n'aurait pu en être constitué que d'une seule. La tonalité reste la même tout au long des quarante cinq minutes, et le style n'est pas vraiment actuel... On pense au gré des changements d'humeur à ces ensembles de années 70 qui misaient tout sur la spontanéité, et jammaient des heures entières en se laissant complètement happer par la musique et les sensations qu'elles pouvaient procurer. Ici, pas de progression logique, pas de "morceau" à proprement parler, juste une longue suite s'approchant d'une litanie sombre et pourtant pleine d'espoir.
Certains n'y verront d'ailleurs qu'un délire collectif sans aucune accroche, et je ne pourrais que partiellement les contredire. Car souvent on a le sentiment que le trio s'englue dans un riff répétitif, le laisse traîner des minutes durant, n'y apportant que des maigres modulations rythmiques. Parfois, les musiciens semblent même chacun dans leur propre monde, enfermés dans une bulle et incapables de s'intéresser à ce que fait leur voisin. Ce qui donne lieu à des dissonances qui ne sont pas toujours foncièrement inintéressantes, mais qui déstabilisent parfois au point de nous faire décrocher de l'entreprise.
Certes, la cohérence ne semble pas être le maître mot de cette aventure, mais ce qui est fascinant pour un instrumentiste ne l'est pas forcément pour son public.
Je dois concéder à FASBA FPEL un sens de l'expérimentation certain. En cette époque du tout standardisé, leur esprit libre séduit, et leur désir de ne rien laisser sur les étagères à quelque chose de touchant. Leur musique est certes très personnelle et assez hermétique, mais ce mélange de Hard Rock lourd, de psychédélisme 70's, et d'interprétation free des lignes Post Metal actuelles est assez frais, et peu convenir pour peu que vous cherchiez une musique qui vous permettra de vous évader et de laisser votre esprit vagabonder.
Quant à savoir si l'idée de sortir une centaine d'album sur un an est pertinente, nous en sommes encore assez loin.
Mais après tout, ils font ce qu'ils veulent non ?
Ajouté : Mercredi 20 Août 2014 Chroniqueur : Mortne2001 Score :      Lien en relation: Fasba Fpel Website Hits: 6102
|