Thank you texnixe, this worked indeed, but only for ONE template. “filterBy” cannot be used with two templates, as far as I understood?
<?php if(!isset($subpages)) $subpages = $pages->find('artists')->children() ?>
<ul>
<?php foreach($subpages->visible()->filterBy('template', '!=', 'blogarticle') as $p): ?>
<li>
<a<?php echo ($p->isActive()) ? '
class="active"' : '' ?> href="<?php echo $p->url() ?>"><?php echo $p->title() ?></a>
<?php if($p->hasChildren()): ?>
<?php snippet('treemenu', array('subpages' => $p->children())) ?>
<?php endif ?>
</li>
<?php endforeach ?>
</ul>