• Commodore Free Magazine, Issue 76 - Part 9

    From Stephen Walsh@39:901/280 to All on Wed Dec 18 21:02:17 2013
    on. For example have you managed
    to add any new features; or updated the software since out last chat?

    A: Hi Nigel! It seems you wrote about PRG Starter 1.4.3 last time we chatted in issue 40; the current version is 2.4.5; so wow yes, there have been a lot
    of developments since then. Most importantly for the program is a disk image directory window; this pops up when you start a disk image; so that you can start any file in the disk image. There is also a disk image disk tool, a
    text viewer, a "save as" button, also support for displaying picture files, real TAP support and TAP->PRG file extraction and more.

    I'm currently moving my whole web site, so

    * PRG Starter is now at: www.boray.se/software/prgstarter/

    * My music is at: www.boray.se

    * My Commodore 8-bit software is at www.boray.se/commodore/

    * My Amiga programs: www.boray.se/amigastuff.html

    In time, I will have to move PRG Starter's update server as well, which means
    I will have to make a new PRG Starter version or it won't find the new server.

    - - - - - - - - - -

    Q. Gosh I need to download the new version then as I am missing out on the
    new features! I wanted to ask about your recent Vic 20 software programming; like the SD2IEC music player, can you briefly explain what this is?

    A: When I realized I couldn't use my XE1541 cable any more, I bought myself
    an SD2IEC card reader. This is a very cool device; using an SD memory card as a disk drive. The first thing I did was to adapt my "Vic Menu" disk browser program for the SD2IEC. I put SJLoad in the application too for really fast disk access. On start-up you put the turbo in a memory block of your choice; and if you reset and restart, it will be found and started automatically the next time. With SJLOAD (which actually is a software version of JiffyDos) you will load an 8K game cart image in about 1.3 seconds. Then I thought - why
    not make some use of this speed and massive disk space..! As music is one of my biggest interests I naturally came to think of playing long samples.

    My first version of the player was not very sophisticated, It just used a
    delay loop between every sample played. Or two different delays; actually because the routine first reads a byte, puts 4 of the bits in the volume register, waits, then puts the other 4 bits in the register and waits again. (As most people probably know, playing a sample on the Vic-20 is basically changing the volume of the vic chip rapidly and in that way create a sound wave.) Anyway; this first version probably broke a couple of records: The longest sample ever played on a Vic-20 and the largest Vic-20 application ever made. (The two next versions were even bigger though!)

    I worked a lot more on the second version (V2). It had many new features, several playback routines you can choose from, improved timer synced playback, better encoded music data etc. I also includes my converter program.

    V1 and V2 included a collection of my own music; as well as a bunch of authentic Vic-20 commercials. The third version; (always the same - never the same) is instead; a complete new music album that I was working on while developing the SD2IEC player. It's also more "demoish"; in terms of what's happening on the screen..

    - - - - - - - - - -

    Q. Can it play music from readers collections then , do you have software
    that can convert; say a MP3 to play with the software?

    A: Yes, on the web page for V2 there is a description on how to convert music and there is also a youtube video demonstrating how to.

    - - - - - - - - - -

    Q. So with the software what is the longest sample the music player can play, and can it play long files pulling information from SD cards for example?

    A: I don't think there is a restriction actually, It reads 2000 bytes per second, so an 8GB SD card should be able to hold a 49 DAYS long sample but I could be wrong.

    - - - - - - - - -

    Q. Wow thats would be some album! What is the quality of the sample
    playback, and is there something's or some sounds that sound better than others?

    A: It plays 4 bit mono audio at 4 kHz. That doesn't sound very good of course, but starting with V2, I've done everything I could to make it sound as good as possible, for example, I worked a lot on different dithering algorithms; making it sound like a higher dynamic range than what normal 4 bit playback can offer. The conversion process includes cutting off all frequencies above 2 kHz which means high pitched sounds like hi-hats and crash cymbals more or less disappears from the music. So I guess you can say that sounds mainly containing lower frequencies sound the best. Normal speaking or singing is around 1 kHz and comes through well which you can hear in the Vic commercials. Why frequencies above 2 kHz are cut away in the conversion process is just because with a sample rate of 4 kHz, you can't reproduce
    sounds above 2 kHz anyway, so NOT cutting that away first would just add a lot of noise instead. Much of this noise is still in there in the V1 music data.

    - - - - - - - - - -

    Q. Can you tell our readers about some of the problems or obstacles you had
    to over come designing the player?

    A: The biggest problem is that JSLOAD uses more cpu time; periodically and turns off interrupts, while doing it, so increasing the sampling frequency
    just made this disturbance greater, so I decided to stay at 4 kHz. You would have to go way below that for no disturbance from SJLOAD at all, but then the sound quality would decrease from the lower frequency instead.

    - - - - - - - - - -

    Q. Would it be possible to improve the sound quality I know you have said
    that you use SJload to pull data from the cards, do you think its possible
    with a different loading system this could be improved?

    A: Yes, running it on VICE for example, it would be possible to increase the frequency a lot, with no interference. It's possible that a different turbo system on real hardware would get a better result than SJLOAD, but that's really just a guess.

    - - - - - - - - - -

    Q. do you have any plans to develop further on this software?

    A: No. My Vic-20 has gone to sleep in it's comfortable wardrobe for now (after 67 days on our living room table :-)

    - - - - - - - - - -

    Q. Interestingly, you have also released some music that has been sampled and plays back on the Vic, not just that but an unexpanded Vic (although you need an SD card reader to listen to it) could you give our reader some information on this, it does feature your nice menu system to select the song?

    A: Yes, for the record, I'm all FOR memory expansions on the Vic-20. Almost everyone had ram expansions back in the early 80's; so I don't like it when people say, ram expansions are cheating etc. Commodore sold ram expansions
    for the Vic-20 when it was released, it was supposed to be an expandable system; with a really low entry price. That said, I can see how a small
    memory environment can be an extra challenge. In this case, SJLOAD took 1413 bytes; so I only had a little over 2KB of RAM to work with. Luckily, the huge space of a SD card kind of makes up for it. ;-) I'm streaming both music and
    a text file from the card, and I split up the program into parts as well. The main reason why I didn't use expansion RAM; was because I suspected many "new" Vic-20 users don't own a ram expansion.

    - - - - - - - - - -

    Q. Your new "album" features some graphics what are we actually seeing here
    on screen?

    A: While the music is playing, you see the actual waveform of the music being played. It's like an oscilloscope but vertically. I did this simply by setting the vic screen to be very narrow (1 or 3 characters wide) and then change the screen position according to the samples played. (This wouldn't be possible on a C64 by the way, but there you could probably use sprites to do something similar instead). At the same time, the border color is constantly changing into a nice pattern. That is actually part of the playback routine,
    a tim

    --- MBSE BBS v1.0.01 (GNU/Linux-i386)
    * Origin: Dragon's Lair (39:901/280)