# 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
}
AN AUTUMN FOR CRIPPLED CHILDREN (nl) - Only The Ocean Knows (2012)

Label : Aeternitas Tenebrarum Music Foundation
Sortie du Scud : 28 septembre 2012
Pays : Hollande
Genre : Post Hardcore Progressif
Type : Album
Playtime : 8 Titres - 39 Mins
Troisième album pour les Hollandais de AN AUTUMN FOR CRIPPLED CHILDREN, après Lost en 2010 et Everything en 2011, et voici donc leur livraison de fin d’année, Only The Ocean Knows.
Au-delà de cette régularité métronomique et d’un nom à coucher dehors (que j’aime beaucoup au demeurant), il faut avouer qu’un dénominateur commun relie ces trois œuvres. La singularité.
Car les AN AUTUMN, sous des atours évoquant volontiers le Post Hardcore le plus ténu, sont avant tout des adorateurs de la déconstruction de la mélodie, qu’elle soit harmonieuse, évidente, ou bien dissonante.
Et cet art qu’ils ont développé, est largement consommé sur ce nouvel effort.
Si vous ne connaissez pas leur musique, il convient donc de vous la présenter. L’automne pour les enfants handicapés, c’est un rythme lourd, lent qui s’impose dans les grandes largeurs. Ce sont de subtils arrangements électroniques. Des guitares tour à tour venimeuses, écrasantes, puis légères, lointaines, presque en volutes. Et c’est surtout un chant mis à nu, écorché vif, aux frontières du Black, à la lisière de SILENCER.
C’est une musique hors norme, qui évoque autant la fureur d’une tornade qui s’abat sur une côte, que la misère émotive qui enveloppe la pire des solitudes. C’est une litanie en musique, une souffrance harmonique, un long récital de la colère sous jacente. En gros, et en dépit de toutes les métaphores possibles et envisageables, un chemin de croix, qu’on choisit d’emprunter un soir d’automne justement, pour oublier la vie, et ses rêves.
Mais la magie de ce trio, c’est leur façon de travailler la mélodie, de la distordre, de l’enrichir, et de ne pas se contenter des sempiternels arpèges d’usage. De ne pas utiliser le son clair comme une fin en soi, mais comme un moyen de susciter des émotions.
A titre d’exemple, écoutez le triste et beau à pleurer « The First Snow This Year », qui commence comme un long cri de douleur, avant que celle-ci ne s’estompe et laisse place à une mélancolie profonde, soulignée par quelques notes de guitare répétitives et envoûtantes. Puis une sublime mélodie intervient, et propulse le morceau dans une autre dimension, pour un final splendide, clair et épuré, soudain interrompu par une reprise haineuse. Comme pour exprimer le sens premier de la vie, et de ses contradictions.
Le titre éponyme est aussi brillant dans sa construction, grâce à une basse qui porte la mélodie à bout de cordes, surplombant de fréquents breaks délicats, et un déluge de distorsion qui ne fait que suivre son chemin, en appuyant un peu plus sur l’emphase.
Et comme si cette démonstration ne suffisait pas, AAFCC jour parfois la carte de la surprise intégrale, comme le prouve le final « The Rising Tide », qui s’offre un développement à la CURE du début des années 80, avec un tempo sautillant, une basse malicieuse et pourtant froide, avant de revenir vers les rivages initiaux abordés dès l’ouverture traumatisante et cathartique de « Past Tense », véritable plaidoyer pour la violence exacerbée.
On peut résumer toute la science si naturelle de AN AUTUMN FOR CRIPPLED CHILDREN en un autre mot. Le refus.
Le refus des conventions, le refus de faire comme tous les autres. Mais aussi le désir, celui de proposer une musique novatrice, personnelle, enchantée, pénétrée, de torturer la mélodie pour en extraire le fluide le plus intense. De l’utiliser pour finalement prouver que celle-ci peut être juxtaposée à l’intensité musicale la plus sombre, comme NEUROSIS a su le faire sur des morceaux comme « Sterile Vision » sur le séminal Souls At Zero.
Et une fois de plus, comme bon nombre d’œuvres phares, Only The Ocean Knows est à appréhender dans sa globalité, comme un voyage initiatique aux confins de la mer, cette mer intérieure qui nous submerge de temps à autre, qui nous plonge dans un tourbillon d’émotions et de sensations complexes et complémentaires. La peur du vide sentimental, de l’avenir, la tendresse, la haine, la peur de vivre tout simplement.
Cet album n’est bien sur adressé qu’à une poignée de gens, les seuls capables de ressentir ce flot, de s’y plonger corps et âme afin d’en ressortir lavé de toute crainte.
Ou bien de s’y noyer. Et de ne plus jamais remonter à la surface.
Ajouté : Mercredi 28 Novembre 2012 Chroniqueur : Mortne2001 Score :      Lien en relation: An Autumn For Crippled Children Website Hits: 11590
|