# 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
}
THE KILL (au) - Kill Them...All (2015)
Label : Obscene Productions
Sortie du Scud : 4 janvier 2015
Pays : Australie
Genre : Grind
Type : Album
Playtime : 19 Titres - 27 Mins
Mon Dieu, je m'extasie devant mon côté si cosmopolite et versatile... Après le Portugal, l'Espagne, le Raw Black et le Heavy Thrash, ne voilà t'il pas que je m'envole sous le soleil austral pour vous parler du nouvel album d'une troupe de flingués australiens qui se vautrent dans la fange Grind jusqu'au bout des doigts de pied...
L'Australie, ses kangourous, sa chaleur, ses bestioles et insectes de la taille d'une tourte aux champignons... Charmant n'est ce pas ?
Mais bon, après tout, il faut de tout pour faire un monde, et je pars donc à l'une de ses extrémités pour m'enthousiasmer de violence une fois de plus.
On ne se refait pas...
Le Grind, c'est ma came au cas où vous ne l'auriez pas compris. J'aime cette violence outrancière et paillarde, politisée dans les cas les plus radicaux, Gore dans ceux plus cochons et nonsensique, mais ce que j'aime par dessus tout, c'est le Grind qui va jusqu'au bout des choses, qui ne crache pas sur un brin d'humour, et qui pousse les potards à fond, sans jamais craindre d'en faire trop. Et avec les gaillards de THE KILL, je suis servi, rassasié, et heureux comme jamais.
Si mon estimé collègue Stef avait gardé un enthousiasme modéré lorsqu'il avait chroniqué en son temps le EP The Soundtrack To Your Violence du trio Jay/Roby/Nik, c'est sans doute parce qu'il était de mauvais poil, ou qu'il était fort marri d'avoir torché la présentation d'un de ses desserts diaboliquement calorique et esthétique. N'étant moi même pas pâtissier, ni perfectionniste d'un point de vue culinaire, mon propos sera radicalement différent.
Malgré tout l'amour que je porte à sa beauté physique et à sa mèche terriblement sexy, je viendrai ce matin le contredire en tout point, et affirmer bien haut que Kill Them...All est une boucherie sans nom. Mais peut être préfère il le sucré au salé. Ce sont deux écoles, soit.
THE KILL, qui emprunte depuis ses débuts son patronyme à un blitzkrieg fameux des furieux NAPALM DEATH, est une machine Grind de premier plan, qui n'a toujours eu qu'un but. Proposer le Grind le plus violent, le plus furieux, sans aucune concession. Make 'em Suffer il y a trois ans était déjà forgé dans le métal torride le plus bouillant, et même si ce dernier né semble ne pas en avoir la même folie selon certains avis, il garde une énergie incroyable, ne se disperse jamais, et fonce à cent à l'heure tout en proposant des titres très précis, travaillés qui ne laissent que peu de place au hasard.
Alors, si ce trio vous est inconnu et que vous cherchez des repères, sachez que si vous êtes fan d'INSECT WARFARE, FUCK...I'M DEAD, MUNICIPAL WASTE et autres joyeusetés terriblement sonores, Kill Them...All est fait pour vous. Même si le chant de Nik part moins volontiers dans des tonalités porcines, il a gagné en pertinence et efficacité, et la machine tourne toujours à la limite de la surchauffe derrière.
Morceaux concis, qui privilégient bien sur les blasts affolants, son compact et clair, mot d'ordre de ne jamais dépasser les deux minutes chrono, approche Punk d'un Grind volontiers bruyant mais structuré...
Que demander de plus ?
Certains regretteront sans doute le côté impulsif et sauvage des précédents efforts. Il est vrai que ce petit dernier se montre volontiers plus "professionnel" et moins naturel que Make 'em Suffer ou des nombreux splits qui jalonnent la carrière du groupe. Mais si quatre vingt dix pour cent de ce LP se consacre à un massacre organisé sur tapis de blasts, quelques passages salement Crust et/ou Heavy lui apportent un peu de fraîcheur, si tant est que ce mot ait un sens ici.
Ce qui fait la force de THE KILL c'est cette puissance affolante qui fait ressembler leurs albums à des exécutions en rang d'oignon, comme si un bataillon de mercenaires avides de sang débarquaient à l'improviste pour flinguer tout ce qui bouge. C'est épileptique, sans limites, furieux, affolant de vitesse et de violence, cru, mais surtout éminemment puissant et rentre dedans. C'est en gros et en détail ce que le Grind de très haute qualité devrait toujours être, ludique mais méchant, drôle mais exécuté avec sérieux et avec une précision diabolique.
Avec en sus une production énorme qui ne néglige personne et qui confère à l'album la puissance d'une détonation atomique juste sous les oreilles, Kill Them...All est presque la perfection faite Grind, et il vous sera difficile de ne vous engager qu'une seule fois, tant les riffs, le phrasé du chant et l'abattage de la rythmique vous donneront envie d'y revenir... souvent. Et peu importe que ces tarés veulent tous nous tuer, s'ils le font par le biais de cette musique. C'est un plaisir.
Allez, fais pas la gueule Stef et fais moi un cake. J'aime bien les Tiramisu, les fruits des bois et les chocolatines. On parlera Grind si tu veux, et j'essaierai de te convaincre que THE KILL est un groupe majeur qui mérite l'attention. T'as bien envie de te défouler toi aussi parfois entre deux religieuses et une bonne couche de gel dans la mèche non ?
Ajouté : Mercredi 05 Août 2015 Chroniqueur : Mortne2001 Score : Lien en relation: The Kill Website Hits: 5364
|