Docendo discimus


  • Calendar

    December 2021
    M T W T F S S
  • Archives

  • Recent Posts

  • Bling

Posts Tagged ‘crap’

Yamaha TG100

Posted by brunorc on November 7, 2010

Small and cheap multitimbral sound module, bought second-hand as well. Again, sound layering – but nothing more. No filters, no synthesis – NOTHING! So its size was comparable with its capabilities, while its price tag accurately described its sound quality – good, but not even above the average (to be honest, I don’t even remember the price). But it opened the doors to the next dimension of musical creation. Teamed with JX-1 it laid the foundations of my “recording studio” and gave me the first possibility of writing the music… and getting paid for it!

I didn’t keep it for long and sold it (again, no idea about the price) few days after getting my next synthesizer, which conveniently was multitimbral.

I wouldn’t recommend it to anybody – except that you get it for free and you still have some free MIDI output and audio input on your mixer. It’s full of bread’n’butter sounds and it’s small, but you can get Roland JV-1010, which is small as well, but has an awful lot of possibilities, compared to TG100. It was actually so boring crap, that I didn’t even bother to find a photo on the web.

Posted in MIDI, Synths | Tagged: , , , , | Leave a Comment »

Yamaha PSS-380

Posted by brunorc on October 26, 2010

Even if it can be perceived as a toy keyboard – mostly because of the tiny keys, auto-accompaniments and so on – it is actually a synthesizer as well. As you may see on the picture, it features the “Digital Synthesizer” section in the center of the front panel. Those seven sliders give you the instant control over the 4 operators FM synthesis of PSS-380. So, if you’ve ever dreamed of an FM synth with hands-on control typical for analogs – here you go!

How does it sound? Peculiar. Some sounds are terrible, and no combination of sliders could have improved them. I spent a lot of time with it, tweaking the sounds (of course there’s no memory for this “digital synthesizer” settings, so I had to write them down on paper). I also liked the idea of auto-accompaniment, having maybe 5-6 bearable styles, though. This instrument has three song memories as well, which can record both the accompaniment and the performance (but still they cannot save the synthesizer settings), and you can even play on top of it (if the polyphony – 9 voices – allows). It was my early sketchpad and I found it quite useful.

This synth also features “Dual Voices” – meaning one could lay one patch on top of another, and the “top” patch could have even been processed through the synthesizer section. Actually, PSS-380 is capable of producing a lot of weird 4-OP FM sounds… of course it has no MIDI, and the output (phones only) is quite noisy. Or you can use the built-in speakers…

It was my first “synthesizer” and from today’s perspective I’m really glad I started with it. I learned a bit about the nature of the sound and I knew that my next piece of gear should have the ability of editing patches, since only playing with the use of the preset sounds was not enough for me.

Unfortunately, the PSS-380 wasn’t actually mine. I borrowed it from a friend, who eventually wanted to take it back. I remember being reluctant to give it away, but after all it was his property, so one day I put it back in the box and we parted.

Would I like to have it back? Of course! But mostly because of the sentiment… and maybe those weird sounds could be useful, after some processing. The auto-accompaniment – although crappy – was surprisingly handy for some quick sketching.

Posted in Music, Synths | Tagged: , , , | 3 Comments »

Vedalken counts

Posted by brunorc on May 4, 2010

After gathering the information about all the cards ever printed, I wanted to be able to track down their count – per card type. Actually, the whole point of having the list of all cards was being asked by a program “how many items of this card do you have?”. So this script came to the rescue:

#!/usr/bin/env perl

use strict;
use warnings;

use DBI;

my $dbh = DBI->connect( "dbi:SQLite:dbname=vedalken.db" )
    or die "Cannot connect to the database: $DBI::errstr";

my $sth = $dbh->prepare( q/
    SELECT id, name FROM Card
    WHERE color = ? AND cardtype LIKE ?
    ORDER BY name
/ ) or die "Cannot prepare select: ", $dbh->errstr;

my $uth = $dbh->prepare( q/
    UPDATE Card SET amount = ?
    WHERE id = ?
/ );

my %colors = (
    Q => 'Quit',
    W => 'White',
    R => 'Red',
    G => 'Green',
    B => 'Black',
    U => 'Blue',
    L => 'Land',
    M => 'Multicolor',
    C => 'Colorless',

my %types = (
    I => 'Instant',
    E => 'Enchant',
    S => 'Sorcery',
    A => 'Artifact',
    C => 'Creature',

while ( 1 ) {
    print '[', $_, '] => ', $colors{$_}, $/
        foreach sort keys %colors;
    print "Select color: ";
    my $color = uc <STDIN>;
    chomp $color;

        if $color eq 'Q';

    $color = $colors{$color};
    my $type = '%';

    if ( $color =~ /^[WBUGRM]/ ) {
        print '[', $_, '] => ', $types{$_}, $/
            foreach sort keys %types;
        print "Select type: ";
        $type = uc <STDIN>;
        chomp $type;
        $type = "%$types{$type}%";

    $sth->execute( $color, $type );

    while ( my $card = $sth->fetchrow_hashref ) {
        print "'$card->{name}' quantity: ";
        my $quant = <STDIN>;
        chomp $quant;

            unless $quant;

        $uth->execute( $quant, $card->{id} );


Of course, the script is very rough – just take a look at the database and you will see, that cards of type “Enchant Creature” will pop up in search for all Enchantments, but also in the search for all Creatures. But then I can just skip them, so they won’t get updated (instead of setting their count to 0).

However, I still have some cards in decks that are currently in use. Moreover, I still have some boosters left. I would like to be able to enter the new amount and have it added to the original one. And I would like to do this per card. But then, I want again to avoid the hassle of writing the long (and sometimes very fancy, thus error-prone) names. Autocompletion could be the right solution, but for this I would need a web page. So for now I will just use my tiny script, and then I will go back to Catalyst, to see what can be done.

But before using Catalyst, one may try to abstract some parts of this script:

while ( 1 ) {
    my $color = get_value( 'color', \%colors );

        if $color eq 'Q';

    my $type = $color =~ /[WBUGRM]/
        ?   '%' . $types{ get_value( 'type', \%types ) } . '%'
        :   '%';

    $sth->execute( $colors{$color}, $type );

    while ( my $card = $sth->fetchrow_hashref ) {
        print "'$card->{name}' quantity: ";
        my $quant = <STDIN>;
        chomp $quant;

            unless $quant;

        $uth->execute( $quant, $card->{id} );


sub get_value {
    my ( $aspect, $hashref ) = @_;

    print '[', $_, '] => ', $hashref->{$_}, $/
        foreach sort keys %$hashref;

    print "Select $aspect: ";
    my $value = uc <STDIN>;
    chomp $value;

    return $value;

I decided to use references to global hashes, so they won’t get copied while being passed to the procedure. Big optimization…

Posted in Perl | Tagged: , , , | Leave a Comment »