# 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
}
LAMB OF GOD (usa) - Killadelphia (2005)

Label : Epic Records
Sortie du Scud : 13 décembre 2005
Pays : Etats-Unis
Genre : Groove Metal
Type : Live
Playtime : 16 Titres - 67 Mins
"LAMB OF GOD, LAMB OF GOD, LAMB OF GOD, LAMB OF GOD"... comme une sombre litanie, tout un pit réclame sa dose de Metal. Un sinistre tocsin sonne au lointain bientôt rejoint par les psalmodies d'un muezzin, puis un hélicoptère passe en rase motte pour saluer l'entrée du groupe, acclamé par le pit. Enfin retentissent un roulement de tambour, une rythmique sauvage et saccadée et enfin le chant bestial et si aisément reconnaissable du maître de cérémonie, Monsieur Randy Blythe. Sorte de râlement rauque, distordu, presque inhumain. C'est parti pour une grosse heure de Groove Metal dans la belle ville de Philadelphie et c'est chaud bouillant.
Killadelphia est le premier live capté du groupe de Groove Metal américain LAMB OF GOD. Fondé en 1999 sous le doux patronyme de BURNING THE PRIEST, cela fait déjà quinze ans que la petite bande fait cramer les planches en live. Le groupe s'est rebaptisé LAMB OF GOD en 2000 et les quatre dernières années ont été particulièrement actives pour le combo qui a partagé son temps entre la scène et le studio d'enregistrement pour sortir trois albums : New American Gospel (2000), As The Palaces Burn (2003) et Ashes of the Wake (2004). Autant dire que pour un "jeune groupe", lorsqu'elle se produit en live, la bande Richmond a de la matière à proposer à son public.
Signés en 2000 chez Prosthetic Records, le groupe a ensuite été recruté en 2004 par Epic Records. Ashes Of The Wake sort en août 2004, pendant la tournée estivale du groupe qui participe notamment au Ozzfest avant de se produire au Trocadero Theatre de Philadelphie les 16 et 17 octobre. C'est durant ces deux sets que Killadelphia est capté. La généreuse setlist de 16 pistes pioche dans les trois albums de LAMB OF GOD et l'unique projet de BURNING THE PRIEST. La version originale de l'enregistrement était vendue avec un gros DVD reprenant le live, deux heures de video sur la formation en tournée et quelques bonus inédits. On y découvre un Randy Blythe plus jeune et n'arborant pas encore sa coupe dreads mais une brosse brune plus sage. Et si on doute qu'il s'agisse du même bonhomme, il suffit de l'écouter chanter !
"we chose Philadelpia ‘cause you're the sickest motherfuckers in the world so make some fucking noise for yourself and go fucking insane"
Tous ceux qui ont déjà vu les américains sur scène vous le diront : ça ne rigole pas avec LAMB OF GOD. Leur Groove Metal survolté, hyper lourd, très violent et porté par le chant si marquant de Randy Blythe est un miel pour le metalleux, à condition de ne pas se faire écorcher les oreilles par les fuck, fucking et motherfuckers que le frontman débite à un rythme soutenu dès qu'il interpelle le public. Et il aime ça, le gars Randy. Ce n'est pas du blabla moralisateur, des blagues à deux balles ou des pauvres compliments pour brosser les fans dans le sens du poil. C'est plutôt comme qui dirait jeter de l'essence pour essayer d'éteindre un incendie de barbecue. Dans une salle déjà chaud bouillante, attisée par les chansons toutes plus brutales les unes que les autres qui s'enchaînent à un rythme soutenu, sans laisser le temps de souffler, quand Randy prend la parole c'est pour remettre un petit coup de booster, histoire de pas s'endormir, vous voyez... Mais un live, c'est ça. Un bon dosage entre une setlist bien foutue, mélangeant les hits des différentes époques, les chansons moins connues qu'on est content de découvrir sur scène et la communion entre le groupe et son public.
Le show est parfaitement rodé, la sonorisation massive, le jeu choral. Et la production immersive vous emmènent tout de suite au coeur de la fournaise. Comme on ne fait pas les choses à moitié chez Epic, le disque a été mixé par Machine, et le producteur a fait du bon boulot. Les rythmiques pèsent des tonnes, la batterie se détache bien proprement, le chant est parfait et on entend bien le public, mais pas trop non plus. On l'entend quand il faut l'entendre : lorsqu'il acclame le groupe, lorsqu'il reprend en choeur le refrain de "Now You've got something to die for" ou lorsqu'il répond aux invectives du frontman genre "make some fucking noise Phily". C'est bien simple, même écouté au casque dans la quiétude de la maison endormie, il suffit de fermer les yeux pour se retrouver ballotté dans le pit. Il n'y a pas à dire, c'est avec ce genre de disque qu'on comprend que le meilleur moyen d'apprécier LAMB OF GOD, c'est en live.
Ajouté : Samedi 16 Avril 2016 Chroniqueur : Rivax Score :     Lien en relation: Lamb Of God Website Hits: 6800
|