# 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
}
VOODOO (cr) - Voodoo (2015)
Label : Conquista Records
Sortie du Scud : 23 juin 2015
Pays : Costa Rica
Genre : Hard Rock
Type : EP
Playtime : 4 Titres - 13 Mins
Les 70's... A l'époque déjà, tout semblait relever d'une légende qui pourtant se construisait petit à petit... Personne n'en était conscient, et tout le monde agissait naturellement, comme si de rien était. La société changeait, l'esprit libre et frivole des 60's se changeait en contestation lucide pour les uns, en délire lysergique pour les autres... En France, on commençait à peine à parler "écologie", le mot "chômage" ne faisait partie du lexique que d'une poignée d'économistes, mais le choc pétrolier avait secoué les consciences, et "on" savait très bien que plus rien ne serait comme avant.
Mais les faits étaient là, musicalement parlant. Pour beaucoup de "musicologues", ce fut la décennie la plus créative, celle qui fut propice à tous les délires. Hard Rock puissant de stade (LED ZEP, le SAB', DEEP PURPLE), Progressif interstellaire (YES, KING CRIMSON, GENESIS), saillies boogies et Rock (le QUO, CACTUS, ZZ TOP), et une myriade d'autres artistes qui tentaient, expérimentaient avec une naïveté touchante...
Toujours est il que trente quatre ans après la fin de cette décade, elle continue de faire rêver tous les musiciens nés trop tard pour la connaître. Je les comprends cela dit, j'aurais moi même adoré connaître ce trip, les amplis Orange, les jacks torsadés, enfin tout le cirque quoi. Mais las, nous sommes nés trop tard et pas forcément du bon côté de l'Atlantique ou de la Manche.
Mais que pouvait il bien se passer au Costa Rica dans les 70's ? Certainement beaucoup de choses, mais relativement peu de groupes y ont laissé une trace durable. Il n'empêche qu'en 2015, certains musiciens ont décidé de se pencher sur l'héritage global laissé par leurs aînés Rock, pour y tisser leur propre canevas, qu'ils espèrent daté des mêmes années. VOODOO est de ceux là.
VOODOO, c'est JuanMa Ugalde, Guillermo Ramos, Diego Trika et Guido Fernández, et une passion commune, le Hard Rock estampillé early seventies. Pas question pour eux de l'envisager autrement, et ils ont composé, interprété et enregistré leur premier EP quatre titres dans cet esprit.
Mais même avec la meilleure volonté du monde, on ne fait pas renaître la guitare de Page sur "Whole Lotta Love", alors on s'adapte. On tente de retrouver l'étincelle analogique qui rendait les riffs si chaud, les rythmiques si élastiques, et les basses si rondes. Et à ce petit jeu, VOODOO tire son épingle avec brio, sans singer Kravitz, JET et autres chantres du revival à fleurs.
Leur optique est radicalement opposée à l'éthique grasse et profonde de GRAVEYARD. Ils ont choisi le côté lumineux et festif des 70's, et sur certains titres, le quatuor s'amuse a évoquer la légèreté des BAY CITY ROLLERS alourdie par le groove d'un VANILLA FUDGE ("Coal To The Fire", sautillant, dansant, enthousiasmant). Le son est chaud, les guitares râpeuses mais propres, la basse gigote le long de son manche, suivant sans peine une batterie ternaire primesautière. Chant mélodique mais sans en rajouter, l'illusion est presque parfaite, même si la production trahit sa modernité par cette clarté brillante qu'elle n'arrive pas à cacher.
"Dancy Baby" se veut plus mordante, taille dans un riff gras et fondant, qui occupe presque tout le devant de la scène. On peut penser à une version moderne des VARIATIONS, époque Take It Or Leave It, sans manquer de respect ni à l'un, ni à l'autre. >
"The Killing Musket", superbe blue song à l'émotion à fleur de peau, suinte le feeling par toutes les cordes. Delay, écho, falsetto, rythme lent et sensuel, bluesy juste ce qu'il faut, elle a cette atmosphère un peu trouble et éthérée des grandes ballades intimistes d'il y a quarante ans, et laisse parler le coeur à travers quelques notes choisies et sincères. Et s'offre au passage un joli solo sobre.
Mais VOODOO préfère terminer son premier EP comme AEROSMITH commençait ses albums, avec un Rock funky qui se mue sur un pré refrain en Pop acidulée, avant que la guitare en arabesques ne reprennent ses droits. "Trouble" s'accapare les codes du Rock coupé au groove Black, et laisse un souvenir musclé, tout en bouclant ce premier EP de sa belle énergie.
Quatre morceaux, qui si l'on est friand du style pourraient passer pour quatre singles regroupés sur un même 12''. Avec ce premier effort, VOODOO s'offre une jolie carte de visite dont on retient les informations sans peine, et qui donne envie de prendre rendez vous pour papoter un peu plus longuement. En choisissant la concision au détriment de longues digressions inutiles, les Costariciens frappent fort, et font revivre pendant un court instant la chaleur torride des années 70, sans tomber dans les clichés et sans ressortir les pattes d'éph.
Quarante ans après, l'aventure musicale continue. La légende magique des 70's revit continuellement au travers des hommages rendus par la jeune garde, et son souffle épique n'est pas prêt de mourir.
L'histoire se répète quoiqu'il arrive, mais on peut aussi ressusciter le passé grâce au VOODOO. Sans avoir besoin d'arrêter son coeur.
Ajouté : Vendredi 02 Octobre 2015 Chroniqueur : Mortne2001 Score : Lien en relation: Voodoo Website Hits: 5218
|