# 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
}
7 WEEKS (FRA) - 7 Weeks Plays Dead Of Night (2011)
Label : F2M Planet / Anticraft
Sortie du Scud : 5 décembre 2011
Pays : France
Genre : Post Rock
Type : Album
Playtime : 10 Titres - 45 Mins
Déjà six longues années que je suis le parcours des 7 WEEKS… Après les avoir vus on stage, je me suis intéressé de près à leur cas, et j’avoue qu’aujourd’hui encore moins qu’hier je ne le regrette…
Après une démo en 2006, un EP, Black Days et leur premier long il y a trois ans, le généreux All Channels Off, les Limougeauds sortent à présent leur deuxième album, et opèrent un virage radical, sans le moins du monde paraître opportunistes ou versatiles.
Je sentais depuis leurs débuts une propension à explorer des territoires vierges et à ne jamais s’asseoir sur leurs acquis, mais ce Dead Of Night, plus qu’une révélation, plus qu’une surprise, est un cadeau que le groupe nous offre en récompense de notre fidélité.
Ce qui, au départ ne devait être qu’une parenthèse est devenu un projet à part entière, et trouve sa concrétisation après deux années de travail dans ce LP véritablement époustouflant, repoussant les barrières de la musique du groupe vers des horizons sombres mais personnels. Et surtout, une réussite incontestable.
Dead Of Night, pour les néophytes du cinéma d’horreur, est l’adaptation musicale du chef d’œuvre de Bob Clark de 1972, sottement traduit dans nos contrés par un Le Mort Vivant aguicheur et réducteur. Racontant l’histoire d’Andy, jeune recrue envoyée au Vietnam, s’en revenant de la guerre chez des parents effondrés par sa perte annoncée, Dead Of Night fait partie des plus grandes oeuvres des années 70, décennie pourtant chargée en accomplissements divers.
Cette histoire d’un amour maternel plus fort que la mort et refusant l’évidence est d’une portée dramatique incroyable, sublimée par un trio d’acteurs époustouflants. Aussi glauque que magnifique, elle transcende les codes du cinéma horrifique pour le placer au rang de concrétisation organique d’un drame ordinaire, sans surenchère dans les effets, se contentant souvent d’expressions justes, et de dialogues vraiment touchants.
Et justement, 7 WEEKS a choisi d’illustrer ce projet par de nombreux samples extraits du film. Collaborant de fait avec Manu COSTA (OLEN’K), chargé d’intégrer des séquences électroniques à leur musique, les Limougeauds ont réussi le tour de force incroyable de rester fidèle à leur optique tout en plongeant corps et âme dans l’ambiance poisseuse du film. Gardant la puissance inhérente à leurs efforts précédents, ils ont opté pour une orientation post Rock qui porte leur travail à bout de bras pour en faire un sans faute sidérant qui captive de bout en bout. Dead Of Night, bien que dominé par des quasi instrumentaux uniquement animés par les répliques des acteurs, laisse aussi place parfois à des titres chantés s’intégrant parfaitement au schéma général de l’ensemble. Un ensemble diablement cohérent, hypnotique, qui vous entraîne dans son sillage dès les premières notes, pour ne vous libérer que de nombreuses heures après sa conclusion.
La force de 7 WEEKS est d’avoir adapté sa musique au long métrage, et non pas de l’avoir simplement utilisé comme gimmick pour enjoliver un LP prévisible. La démarche de Dead Of Night devient ainsi similaire à celle de PROTON BURST, qui s’était livré à un énorme travail de transfiguration lors de la réalisation de leur magnifique album La Nuit, tiré de la BD de Druillet.
Dead Of Night est fait de climats, d’ambiances, de poussées d’adrénaline et de fausses accalmies. C’est un disque qui s’écoute, qui se lit, plus, qui se vit.
Sa progression suit exactement celle du film de Clark, et reste cohérente.
Doté en plus d’un son extraordinaire, compact mais clair, mettant en exergue des guitares dissonantes et versatiles aussi bien qu’une basse ronflante et cathartique, Dead Of Night est un achèvement complet, total, et représente autant un projet à part qu’une étape de plus dans le formidable parcours de ce groupe atypique.
Messieurs, avec cet album, vous venez de valider d’une manière extraordinaire toute la confiance que j’ai placée en vous. Vous avez touché du doigt la perfection, et je me vois dans l’obligation de vous accorder la note maximale, sans aucune hésitation.
Mieux, grâce à vous, je regarderai à présent ce film d’un autre œil, avec votre musique en mémoire. Car il est certainement le plus bel hommage qu’on pouvait lui rendre.
Ajouté : Mercredi 14 Mars 2012 Chroniqueur : Mortne2001 Score : Lien en relation: 7 Weeks Website Hits: 9758
|