# 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
}
AS A TROWN COIN (it) - We Are Nothing - We Are Everything (2015)

Label : Auto-Production
Sortie du Scud : 15 septembre 2015
Pays : Italie
Genre : Metalcore
Type : EP
Playtime : 5 Titres - 16 Mins
"Habemus Papam?"
Oui, et ce depuis un certain temps. Il est d'ailleurs relativement populaire de par ses prises de position progressistes, son sens du cool, et sa proximité avec le peuple, les affamés, les incompris... Il aurait pu venir d'un quartier pauvre d'un bidonville, il n'aurait pas été différent. Mais si nous allons effectivement en Italie aujourd'hui, pas question de faire un détour par le Vatican, bien que nous nous rendions en effet à Rome.
Non, ce soir, c'est une rencontre moins formelle et sainte qui nous attend, avec un tout jeune groupe romain, AS A THROWN COIN.
Lancer une pièce, attendre de voir de quel côté elle tombe. Bonne idée, le hasard soit disant à toujours bien fait les choses. C'est ce qu'ont du se dire Stefano (chant), Andrea et Edoardo (guitares), Andrea (basse) et Stefano (batterie), qui s'ils peuvent s'échanger leurs prénoms sans problème sont plus à l'aise avec leurs instruments respectifs je pense.
Formé il y a peu, ce quintette italien sort son premier EP, qu'il a de plus la grâce d'offrir sur son bandcamp, alors ne vous gênez pas, et servez vous.
Charité chrétienne ? Possible, en tout cas c'est aujourd'hui un des seuls moyens de se faire entendre, surtout lorsqu'on évolue dans un style qui frôle l'overdose de protagonistes. Car oui, AS A THROWN COIN joue du Metalcore, à tendance légèrement Djent et Néo, et de ce côté là, chaque semaine charrie son lot de candidats dont il est difficile de s'extirper.
Pourquoi en parler ? Ont ils quelque chose de plus que leurs homologues/concurrents ? Je ne pense pas, mais il faut de temps à autre faire preuve d'ouverture d'esprit, et à défaut d'originalité, les cinq comparses font montre d'une belle énergie et d'une puissance indéniable. Mais situons.
La chose à son origine, et la musique son concept. Comme l'indique partiellement la pochette, l'histoire de ce We Are Nothing - We Are Everything n'a pas pour origine un quelconque acte d'attrition nous résumant à notre pauvre condition mortelle et anecdotique - quoi que... - mais évoque le parcours d'un astronaute ayant quitté la terre pour accomplir sa dernière mission, mortelle parait-il. Flottant dans l'univers, à bord de sa capsule, l'homme réfléchit à sa condition, et repense à sa vie, voit ses souvenirs défiler, et à par conséquent largement le temps de penser à ses actes passés. C'est une histoire comme une autre, qui à le mérite d'être concrète, mais surtout, qui est assez brillamment mise en musique.
Car le groupe ne s'est pas contenté d'émailler son Djentcore de quelques paroles évoquant vaguement le concept, il a aussi travaillé sa musique pour la faire évoluer en fonction du ressenti de son héros, et ne vous attendez donc pas à une agression constante, assez symptomatique du milieu.
Cinq morceaux, dont une intro, pas plus de quatre minutes de musique par segment, c'est un bon choix. Ca permet aux chansons de respirer, d'étaler juste ce qu'il faut d'idées, et de permettre à AS A THROWN COIN d'explorer toutes les possibilités offertes par le créneau exploité. S'ils citent très justement ARCHITECTS, CONVERGE, DILLINGER, THE CONTORTIONIST ou UNDEROATH, et sans aller jusqu'à dire qu'ils innovent dans les grandes largeurs, ils savent jouer leur propre musique sous influences sans pour autant trop coller aux enseignements des maîtres.
Leur Core est efficace, ultra moderne, et assez progressif dans l'esprit. Il fait bien sur la part belle aux gros riffs qui aplatissent, aux rythmiques rasoir qui tombent pile poil, et à ce chant si ancré dans la dualité gueulante/tendresse qu'on retrouve chez à peu près... tout le monde.
Mais leurs titres ne sont pas pour autant exempts de qualités, loin de là. Jusqu'à présent, et avec quelques écoutes dans les oreilles, mon préféré reste sans doute "Goodbye", pour son atmosphère un peu plus tendue et amère, qui laisse de larges portions percutantes affronter des samples parlés suggérant les derniers mots d'un individu qui sait qu'il ne reviendra jamais chez lui. C'est la chanson la moins "évidente " du lot, celle qui prend le plus de risques, même si les trois autres ne sont pas moins intéressantes dans leur genre.
"Beyond" en ouverture évoque UNDEROATH bien sur, mais aussi FEAR FACTORY, et aligne des plans rythmique à l'unisson qui tombent au millimètre comme l'exige le style, mais la conviction de Stefano au chant emporte l'adhésion, et on se laisse prendre au jeu. Et vous pouvez compter sur la belle décharge d'adrénaline finale pour vous en mettre un bon coup dans les tympans.
Alors le fait que seuls quatre morceaux forment ce premier EP joue en la faveur de We Are Nothing - We Are Everything, puisque nous n'avons pas le temps de tomber dans la redite, et je me demande comme le groupe s'en serait sorti dans un format plus long.
Mais ne soyons pas tatillon et laissons leur le bénéfice du doute. Si rien ne révolutionnera la scène Metalcore/Djent dans ce premier effort, accordons nous pour en reconnaître ses qualités intrinsèques, et laissons l'avenir faire le reste, en espérant que celui des italiens soit plus favorable que celui du héros dont ils nous comptent les aventures.
Ajouté : Vendredi 19 Février 2016 Chroniqueur : Mortne2001 Score :     Lien en relation: As A Trown Coin Website Hits: 7738
|