# 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
}
ALASKA (usa) - Shrine (2015)

Label : Soft Speak Records
Sortie du Scud : 2 octobre 2015
Pays : Etats-Unis
Genre : Progressive Psychedelic Post Hardcore
Type : Album
Playtime : 12 Titres - 41 Mins
Vous savez, les américains sont des spécialistes de ces films au parfum doux amer, qui laissent un sourire traversé par une petite larme éclairer votre visage. Des films qui font plisser les lèvres, parfois franchement rire, mais qui restent émouvants, touchants, et qui des heures après le mot fin vous hantent encore en vous faisant réaliser que la vie peut être belle parfois...
Feel Good Movies ? Pas vraiment, plutôt des oeuvres à mi chemin entre le drame et la comédie pure, mais qui au final, font le même effet. De (500) Days Of Summer à Me And Earl and The Dying Girl, en passant par Nebraska ou Little Miss Sunshine, Silver Lining Playbook... Des exemples comme ça, j'en ai plein ma musette, et je les y garde jalousement, parce qu'ils me touchent beaucoup, sans tomber dans le pathos, ni la franche pantalonnade. Mais ils sont rares... Et leurs équivalents musicaux encore plus. <br<
Ces équivalents, on pourrait les croire profondément ancrés dans le monde de la Pop, de l'Alternatif, du Shoegaze, ou du Folk Rock, même de la Pop Folk pourquoi pas, mais instantanément, on penserait Indie, un peu Lo-Fi, et ça serait une erreur grave.
Ces équivalents, on peut aussi les trouver ailleurs, dans des créneaux moins évidents, et c'est précisément ce qui m'est arrivé ce matin, sans le vouloir, en ouvrant une toute petite boite à MP3 qui n'avait rien d'une construction de Pandore.
Cette boite qui en s'ouvrant à laissé filtrer une lumière douce et pourtant chaleureuse contenait le premier longue durée des américains un peu bohèmes d'ALASKA, qui contrairement à ce que leur nom de baptême semble suggérer viennent de Las Vegas, la cité du vice. Et ce Shrine est aussi éloigné du vice que peut l'être une histoire simple et sincère, telle qu'ils la racontent en musique, avec légèreté, mais aussi une profondeur de sentiments qu'ils ont creusée au gré de leur pérégrinations à travers le pays.
"Après un break de deux ans loin de la musique, nous avons traversé le pays, on a fait des trucs un peu fous, et puis nous sommes rentré pour écrire un album. Nous savions que nous voulions capter l'énergie de ces deux dernières années, et comme nous étions tous synchro à ce moment là, il était naturel que nous composions un album qui reflétait ça."
Alors, il est donc possible de le voir comme ça. Shrine est un carnet de voyage fait mélodies, structures, et errances harmoniques, mais concentré sur un point : le ressenti. Ici, pas de faux fuyant, pas d'artifices, juste la vie, telle qu'ils la conçoivent, faite de voyages, d'échanges, d'expériences. Et le résultat est à la hauteur de deux années de bougeotte dans un pays à la superficie énorme. Mais il est aussi humble, comme quelqu'un qui vous raconte son pèlerinage sans en rajouter. Si ALASKA se voit souvent classer dans la catégorie Post Hardcore, je n'y ai pas vu grande analogie. Leurs morceaux sont plutôt emprunts d'une certaine fausse mélancolie Post Rock, d'une sincérité Indie Pop, portée par des guitares qui évoquent autant REM lorsqu'elles carillonnent que MILK lorsque elles résonnent, et une volonté progressive par petites touches, sans tomber dans l'emphase d'une évolution trop pompeuse.
Disons le, l'ambiance est feutrée, mais s'ouvre sur de grands espaces, comme une expression de joie sur un visage en découvrant un paysage à couper le souffle.
De la retenue donc, pas de climax, mais une tension sous jacente permanente. Des morceaux qui une fois assemblés se ressemblent, mais sans tomber dans la paraphrase.
On peut allègrement tomber sur un quickie immédiat comme "Helluv", qui abuse même de quelques blasts avant de laisser des guitares dissonantes guider un chant hurlé. Mais sans pour autant perdre de vue la mélodie, le vecteur le plus important du périple. Ou au contraire, se laisser envoler par un souffle épique et magique comme "Hashish Christo" qui n'use du Post que pour servir des intérêts harmoniques, sans pour autant perdre de vue la puissance, qu'il expire sur un tapis de mélodies en guitares évasives qui se recentrent vite.
Et cette mélodie vous accompagne du début à la fin, comme un guide spirituel invisible, un fil d'Ariane qui vous conduit dans les méandres d'un rêve américain pas si agonisant qu'il n'en a l'air.
Aucun titre ne se détache du lot, puisqu'ils forment un tout. On extrait pas un souvenir plus qu'un autre lorsqu'on s'est traîné dans tous les états, on s'en souvient comme d'un tout, même si des images apparaissent plus nettement que d'autres.
Ces images, vous avez le choix de les mettre en avant.
Vous pourriez opter pour le soleil chaleureux et automnal de "The Real Folk Blues Part 3", qui laisse quelques arpèges noyer un chant lointain, ou au contraire pour cette soirée d'orage de "Momming", lorsqu'ils s'abritaient près d'un feu ardent, en laissant la basse les réchauffer de ses boucles rondes et caressantes.
Ou bien peut être que vous préférerez vous rappeler de cet après midi fun, sur la plage de "Beach Houser", raide comme un piquet Indie à vous décider si oui ou non vous deviez vous baigner.
C'est vous qui voyez, ALASKA ne vous impose rien. Ils vous montrent leurs cartes postales, vous narrent les anecdotes, mais au final, c'est vous qui faites le tri.
Le Post Rock, le Progressif, l'Indie, le Post Pop un peu amer, tout est là, écrit en minuscule comme pour ne pas heurter la sensibilité, déjà bien stimulée.
Personnel, pas forcément très Hard, mais ça en a l'énergie. Comme le dirait David, "Is this love, or am I dreaming?".
On peut ressentir ça comme un baiser fugace sur la joue, sans grandes effusions. Mais ça laisse sur une étrange impression de bien être. Sans pour autant être un Feel Good album. Non, c'est juste un road trip, mais dans un fauteuil, et une jolie histoire.
Ca peut suffire parfois, lorsqu'on est un peu paumé.
Ajouté : Mardi 07 Juin 2016 Chroniqueur : Mortne2001 Score :     Lien en relation: Alaska Website Hits: 4538
|