# 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
}
ORGAN DEALER (usa) - Visceral Infection (2015)

Label : Horror Pain Gore Death Productions
Sortie du Scud : 14 juillet 2015
Pays : Etats-Unis
Genre : Grind
Type : Album
Playtime : 12 Titres - 20 Mins
Je l'ai toujours dit et je le répète, rien de mieux qu'un bon vieux Grind de tradition, bien analogique, fun, violent et qui bouzille tout sur son passage.
Que voulez-vous, j'ai connu la naissance du style, son expansion, les précurseurs anglais et US, et je vénère NAPALM, OLD, AGATHOCLES et autres DISRUPT. Dans un créneau plus moderne, je me lance toujours à coeur perdu dans l'écoute passionnée de TOTAL FUCKING DESTRUCTION, INSECT WARFARE ou THE KILL... J'aime ces rythmiques de barges, complètement incontrôlables et épileptiques, ce chant braillé comme un goret, et ces riffs massifs qui défouraillent le paysage.
Non décidemment, le Goregrind, le Porngrind, ça me fait chier. Alors lorsque j'ai tendu l'oreille ce matin au premier LP de ce groupe de nouveaux venus du New Jersey, j'ai été comblé au delà de toute espérance.
Pour faire un boucan pareil, il fallait bien s'y mettre à plusieurs. Les ORGAN DEALER sont cinq, avec Trevor à la basse, Scott au chant, Eric au kit, ainsi que Jeffrey et James aux guitares. Après une démo parue l'année dernière, ils nous proposent leurs vues sur une plus longue durée avec ce premier effort à mi chemin entre le EP (pour un groupe classique) et le LP complet (pour un groupe de Grind). Moins de vingt minutes d'écoute, qui gardent leur intensité de bout en bout, et qui se permettent sur moins de deux minutes d'aligner un nombre hallucinant de plans, tous aussi percutants les uns que les autres.
Oui, Visceral Infection bouillonne d'idées, et ne se contente pas du minimum syndical pour coller une mandale.
Car les dealers d'organes sont bons musiciens. Ils ont pigé qu'il fallait rester un minimum pointu et intelligible dans la violence pour donner envie à l'auditeur de revenir dans leur giron, et pratiquent donc le massacre propre et net. C'est bordélique, mais plus par l'enchaînement incessant de plans que par excès de zèle, c'est chaotique, puisque ces mêmes plans se télescopent sans ménagement, et là est bien la clé de la réussite du quintette. Agresser oui, choquer pourquoi pas, mais pas n'importe comment.
Alors tout y passe, le Crust des familles ("Small Talk"), l'intro qui n'en est pas une et qui rappelle les BRUTAL TRUTH écrasants ("Intro", plus un vrai morceau qu'une entame), le Grind de barges qui ne se pose aucune question et distribue les coups de boule ("Consumed" tellement intense qu'il file des crampes), ou même les allusions MathGrind aux moyens de torture moyenâgeux ("The Pear Of Anguish" qui file autant les miquettes que l'instrument utilisé alors pour faire des misères aux homosexuels, femmes ayant avorté, et qu'on introduisait dans les orifices pour tout arracher et retourner de l'intérieur, classe et concis).
Visceral Infection quoiqu'il en soit ne fait pas de cadeau. C'est avec un plaisir non feint qu'on subit l'intensité développée sur toute la longueur de l'album, intensité qui ne faiblit jamais et qui monte même en puissance sans jamais agacer ou encore moins lasser.
Bien évidemment, sur les saillies les plus longues, ORGAN DEALER ralentit parfois la cadence pour varier son discours, mais même dans ces instants plus épars (seuls quatre morceaux franchissent la barre des deux minutes), les ralentissements, les breaks un peu Darkcore ne viennent en rien freiner les ardeurs des américains, et leur permettent même de jolies accélérations un peu branques qui fracassent les neurones ("Anencephaly"). Mais ce procédé leur permet de caser encore plus d'idées, pour nous perdre encore plus dans leur folle et déstabilisante farandole ("The Creeper", exsudant de méchanceté, et rempli ras la gueule de plans de guitare et de changements rythmiques qui pointent à la seconde près).
Mathgrind ? Le terme est un peu osé, et relativement flou. Mais la technique étalée et les enchaînements carrés qui n'empêche pas la folie ambiante de se propager m'y font clairement penser. Si la précision des musiciens est indéniable, ils ne tombent jamais dans la démonstration millimétrée, et se contente d'ordonner leurs idées selon un schéma très détaillé, mais néanmoins spontané. Scott n'abuse pas des petits cris de belette à la Mick Harris, et reste constamment, ou presque, dans un registre médium méchamment Core qui ajoute encore à la véhémence du propos. Pas de borborygmes, juste des lignes vocales hargneuses, bien qu'il se lâche un peu sur "Small Talk" qui reste quand même le parangon de la démonstration. On peut même y entendre sans effort une basse bien grondante qui rumine en arrière plan, c'est dire...
D'ailleurs James Stivaly en parle en ces termes à Invisibleoranges.com:
""Small Talk" parle d'une situation bien précise, lorsque tu te retrouves quelque part, et que tu entends des gens parler autour de toi. De n'importe quoi, de la météo, de gens connus,ou de conneries entendues aux infos... Une attitude forcée qu'ils adoptent pour ressembler à tout le monde, mais sans savoir pourquoi, et qui soudain te plantent un stylo dans l'oeil en parlant"...
Cette petite phrase sans importance résume bien la chose. Une conversation anodine avec un quidam ou un tiers, et soudain, ce dernier pète les plombs et vous agresse physiquement.
C'est sans doute la meilleure définition de la musique proposée par Visceral Infection. Une agression impromptue, qui fait mal et qui surprend.
Ca a l'air sympa le New Jersey quand même, mais pas sur que Jon Bon Jovi cautionne ce genre de trucs.
Ajouté : Lundi 15 Février 2016 Chroniqueur : Mortne2001 Score :      Lien en relation: Organ Dealer Website Hits: 7742
|