# 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
}
FIESTA BIZARRA (pe) - Sadness Sorrow Imathgination (2015)

Label : Auto-Production
Sortie du Scud : 26 juillet 2015
Pays : Pérou
Genre : Cyber Free Punk Math
Type : EP
Playtime : 13 Titres - 21 Mins
Oui je le concède, sur ce coup là je me suis lâché. J'aurais pu trouver un créneau moins alambiqué, mais que voulez vous, c'est la musique qui dicte, pas le cerveau, et d'ailleurs, le mien est salement endommagé... En grande partie à cause de groupes comme ça.
Oh et puis c'est pas le Pérou hein...
Ah ben si justement tiens.
Trujillo, pas Robert non, la ville, qui se situe dans la vallée du fleuve... Moche. Non là sérieux, ils le font exprès. Mais c'est bien de là que viennent les FIESTA BIZARRA, et soyez en persuadés, ils n'ont pas choisi leur nom au hasard. Ils se sont formés en 2013, et depuis ont poursuivi leur chemin de traverse, en prenant soin de semer deux EP, un split à quatre, et aujourd'hui, les voilà donc arrivés à la première étape importante, celle du LP qu'il ne faut pas planter.
Leur réputation commençant à se propager sur la toile, il était temps que je m'intéresse à leur cas. Alors après un petit détour sur le VK Mathcore que j'affectionne tant, j'ai fini par découvrir de quoi il en était, et finalement, je n'ai pas découvert de quoi il en était.
Ce truc, c'est l'inclassable par excellence, à tel point qu'on croirait l'album venu du Japon ou de la Corée. A la limite, une orgie d'aliens en plein milieu d'un élevage de poulets engraissés par des Punk, et cajolés par des végétariens Shoegaze/Math, ça pourrait s'en approcher.
Encore faudrait-il que les aliens en question aient abusé du Guronzan, qu'ils aient bu trois litres d'expresso chacun avant d'atterrir, et qu'ils aient à la base un caractère pour le moins affirmé.
Mélange des genres, vous avez dit mélange ? Vous êtes servi, et c'est chaud dans la gamelle. Josefu (chant), Sebas (guitare), Oswald (guitare), Andre (basse) et Mateo (batterie) avaient le choix entre plusieurs ingrédients pour concocter leur mixture, mais ils n'ont pas choisi, ils ont tout mis. A priori, ça pue le truc immangeable, mais au contraire, les cinq frères ont eu du flair, et la cocotte hume d'un bon fumet d'avant garde fun et explosive.
Mais qu'est ce qu'on y trouve ? Du Math bien sur, sinon, pas la peine de faire ce jeu de mot dans le titre (Imathgination, pas mal les gars...), de l'Indie/Shoegaze (un peu), du Punk (beaucoup), et de la folie évidemment (passionnément). Ca saute d'une assiette à l'autre, ça passe d'une sauce très relevée à une douceur fondante, ça pique, ça fait sourire, et ça remplit le ventre comme un hachis Parmentier au gingembre.
Honnêtement, même après écoutes répétées, je ne suis toujours pas sur de la teneur en calories de ce que j'ai ingurgité. Je me souviens que c'était copieux, mais j'ai du l'avaler tellement vite que j'ai occulté les détails. Pas roboratif pour deux sous, mais ça cale. Grave.
Allez, j'arrête de tourner autour de la poule au pot. Vous voulez le mode d'emploi ? J'essaie. Prenez la démesure cartoon des meilleurs groupes de Nintendocore, la douce folie de Devin T, la rage d'un Dillinger, l'énergie Punk des Nervous Habits, ajoutez une petite cuillère de mélodies Indie/Shoegaze (ou une grosse, comme sur "アン"), touillez avec une bonne louche, ne laissez surtout pas reposer, et vous obtiendrez avec un peu de chance un truc aussi inhabituel que ".RAR" ou ":3".
Vous n'avez rien compris ?
Pas grave, on ne comprend pas un album pareil, on l'écoute.
Ca pulse, ça ramone(s), ça mitonne, et ça m'étonne. Les guitares sont joyeuses, donnent parfois l'impression de s'amuser chacune dans leur coin, et par dessus ça, la voix hurle, beugle, s'étrangle, mais va au bout de ses possibilités.
Et puis comme ça, un mid tempo pur Punk vient jouer les trouble fête, sur fond de guitare Math/Jazz ("Arequipa"), avant qu'un instrumental totalement fracassé Math ne propose une pause. On ramasse les plans qui traînent, on laisse la basse rouler sur la table, et puis on éparpille les notes, en cocottes ou arpèges, à l'aise.
On prend la température de l'espace voir comme les amis s'en sortent ("Melifluo", Dream Pop indie délicieuse et enivrante), on se rappelle qu'on a atterri sur Trujillo, alors on chante les louanges de "Robert" (autre morceau de Dream Pop, un peu plus Shoegaze cette fois-ci), mais sans pour autant oublier de mixer la Pop avec le Math et le Hardcore ("Oh Summer Summer!", là j'abandonne), et on se termine sur un dessert bien sucré mais qui fond sur la langue ("天使の花", ils viennent vraiment du Pérou ? Parce que là, ça ressemble quand même à de la Pop nipponne...).
Niveau structure, ils l'ont joué fine. Rien ne dépasse les deux minutes, c'est souvent beaucoup plus court, et du coup, ça passe comme un biscuit après le café, en laissant un arrière goût doucereux dans la bouche et une céphalée carabinée.
C'est coloré comme un manga, c'est exotique comme un road trip à Lima, et pourtant, ça tient debout sans estrade, et c'est surtout aussi efficace qu'original. Et promis, BABYMETAL n'a rien à voir la dedans.
Alors, vous tentez ? Ca vous intrigue, vous vous en foutez ?
Moi aussi, de toute façon je les adore, c'est ainsi. La folie, c'est contagieux, et c'est précieux, et à ce niveau là, ça vous change un homme. Et le Metal péruvien étant une denrée rare, sachez l'apprécier comme il le mérite, même s'il se permet quelques incartades en terre inconnue. Et puis, c'est pas le...
Ah non, je l'ai déjà faite.
Ajouté : Dimanche 05 Juin 2016 Chroniqueur : Mortne2001 Score :     Lien en relation: Fiesta Bizarra Website Hits: 7046
|