Datapop! (new music demo, new player)

Discuss anything related to the VIC
tlr
Vic 20 Nerd
Posts: 567
Joined: Mon Oct 04, 2004 10:53 am

Datapop! (new music demo, new player)

Post by tlr »

Name: Datapop!
Author: tlr
Release Date: 2009-10-12
Download: tlr_-_datapop_vic20.zip
Audio: tlr_-_datapop_vic20.mp3 (sampled from PAL hw)
(Pouet: Datapop!)

Datapop is a music demo for the unexpanded Commodore Vic-20 computer.
Runs best on PAL but works on NTSC (wrong tempo), should run in all
memory configurations.

The core of the demo is my new player: Ultraplayer!
Hold <SHIFT> to see some player gore.

See the included README.txt for details.

Image
Last edited by tlr on Fri Oct 16, 2009 11:58 am, edited 2 times in total.
Mermaid
Vic 20 Newbie
Posts: 18
Joined: Sat Jun 19, 2004 2:20 pm

Post by Mermaid »

Sounds great! :)
Happy owner of Mega-Cart #0178 :)
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

Ultraplayer uses tight control of the 4 oscillators to provide 9 bits of frequency resolution and up to 6 bits of PWM. All you hear is the original VIC oscillators. No volume register modulations.
Hm, is this approach the same as TBC just implemented? :o I know Stockholm is a small city but it seems quite remarkable if two people within a half year made pretty much the same thing.

However I wonder how IRQ/CPU intensive the tight control is. For applications where the music is prioritized I am sure these new routines are superb but once you start to add advanced graphical effects requiring both CPU time and exact timing, the music player is preferred to take as few raster lines as possible.
Anders Carlsson

Image Image Image Image Image
Diddl
Vic 20 Afficionado
Posts: 425
Joined: Wed Jun 10, 2009 3:18 am

Post by Diddl »

Ultraplayer - very nice work!
Mermaid
Vic 20 Newbie
Posts: 18
Joined: Sat Jun 19, 2004 2:20 pm

Post by Mermaid »

carlsson wrote:For applications where the music is prioritized I am sure these new routines are superb but once you start to add advanced graphical effects requiring both CPU time and exact timing, the music player is preferred to take as few raster lines as possible.
It'd be awesome for title tunes for games though :)
Happy owner of Mega-Cart #0178 :)
tlr
Vic 20 Nerd
Posts: 567
Joined: Mon Oct 04, 2004 10:53 am

Post by tlr »

carlsson wrote:
Ultraplayer uses tight control of the 4 oscillators to provide 9 bits of frequency resolution and up to 6 bits of PWM. All you hear is the original VIC oscillators. No volume register modulations.
Hm, is this approach the same as TBC just implemented? :o I know Stockholm is a small city but it seems quite remarkable if two people within a half year made pretty much the same thing.
I don't know him or what approach he uses and I don't think he knows my approach.
I did hear the mp3 he posted yesterday in the games forum so I decided it was time to take my player of the shelf and do a first release. ;)

PWM is something I've been trying to do for quite a while using the same principle but didn't fully realize exactly how tight the control has to be.
I started implementing it mid December 2008 using new insights into the internals of the oscillators.
The new player and this music was completed by the end of January 2009/beginning of February 2009.
carlsson wrote:However I wonder how IRQ/CPU intensive the tight control is. For applications where the music is prioritized I am sure these new routines are superb but once you start to add advanced graphical effects requiring both CPU time and exact timing, the music player is preferred to take as few raster lines as possible.
In Ultraplayer the control is quite CPU intensitive, both NMI and code outside interrupt.
(enabling PWM for less voices makes it a bit less CPU intensitive)
The aim was maximum control and to make it fit on unexpanded VICs.
Vic20-Ian
Vic 20 Scientist
Posts: 1214
Joined: Sun Aug 24, 2008 1:58 pm

Post by Vic20-Ian »

I love it and I don't usually like demo music at all.

I love the way it is put together.

Holding down Shift for a glimpse of the Vic20 "Matrix" is fun too!

Now if you could get it to sound like the violin like qualities of Brian May's guitar and play Queen's Keep Yourself Alive on the Vic I will have all my favourite things combined. ;-)

Great work. Thank you.
Vic20-Ian

The best things in life are Vic-20

Upgrade all new gadgets and mobiles to 3583 Bytes Free today! Ready
Boray
Musical Smurf
Posts: 4064
Joined: Mon May 03, 2004 10:47 am

Post by Boray »

Sounds nice! (In vice)
PRG Starter - a VICE helper / Vic Software (Boray Gammon, SD2IEC music player, Vic Disk Menu, Tribbles, Mega Omega, How Many 8K etc.)
tlr
Vic 20 Nerd
Posts: 567
Joined: Mon Oct 04, 2004 10:53 am

Post by tlr »

Thanks for the positive comments!
I've added an mp3 download to the original post. (sampled from my PAL Vic-20)
User avatar
Jeff-20
Denial Founder
Posts: 5759
Joined: Wed Dec 31, 1969 6:00 pm

Post by Jeff-20 »

Why didn't I try this on real hardware the first time? It is so much better on a real vic than an emulator. Has anyone developed a better music notation table than the one in the user's manual? I vaguely recall someone working on that, but I couldn't find it in a forum search.
High Scores, Links, and Jeff's Basic Games page.
User avatar
ral-clan
plays wooden flutes
Posts: 3702
Joined: Thu Jan 26, 2006 2:01 pm
Location: Canada

Post by ral-clan »

Sounds really great. No out of tune notes, either.

The VIC may not have the flexiblity or multiple waveforms of the SID, but it does have a nice "growl" to it's square wave tone which I really like.

What does PWM stand for (you mention 6-bits of PWM)?

Pulse width modulation?
User avatar
Pedro Lambrini
Vic 20 Scientist
Posts: 1132
Joined: Mon Dec 01, 2008 11:36 am

Post by Pedro Lambrini »

I didn't listen to this on proper hardware the first time either but it does sound good on a Vic, doesn't it? I would love to hear this quality of music more often on the VIC chip - I wish I had the talent! I agree with ral-clan in that while not as versatile as the SID the VIC does hold its own charm which I really like - the soudtrack for Dragonwing is the biggest reason why I love that game.

My dream would be to have an intro demo for a game with the hires art of Minigrafix and the hi quality sound of Datapop. Omega Fury with a proper intro would be the Dog's proverbials... :)
"...That of the Eastern tribe being like a multitude of colours as if a rainbow had settled upon its brow..." Daniels 1:3
rhurst
Omega Star Commander
Posts: 1371
Joined: Thu Jan 31, 2008 2:12 pm
Website: https://robert.hurst-ri.us
Location: Providence, RI
Occupation: Tech & Innovation

Post by rhurst »

From its README.txt:

Code: Select all

Quick player notes:
- Tight oscillator control.  9 bits frequency, 6 bits PWM
- jmp/jsr/rts based pattern sequencing with transpose.
- Table based arpeggios/waveform.
- Table based PWM control.
- Table based vibrato control.
Er, can someone tell me what language is that? :P
That's some impressive audio manipulation to make for a groovy tune and beat. 8)
Any technology distinguishable from magic is insufficiently advanced.
https://robert.hurst-ri.us/rob/retrocomputing
tlr
Vic 20 Nerd
Posts: 567
Joined: Mon Oct 04, 2004 10:53 am

Post by tlr »

ral-clan wrote:Sounds really great. No out of tune notes, either.

The VIC may not have the flexiblity or multiple waveforms of the SID, but it does have a nice "growl" to it's square wave tone which I really like.

What does PWM stand for (you mention 6-bits of PWM)?

Pulse width modulation?
Thanks!
Yes.
The most prominent use of PWM in this song is in the bass sound but it is also used in several of the other sounds in more subtle ways.
tlr
Vic 20 Nerd
Posts: 567
Joined: Mon Oct 04, 2004 10:53 am

Post by tlr »

For the curious you can view the source of the song data here: datapop_songdata.asm.
(command and song format reference: ultraplayer_ref.txt)

This file gets included by the main code which defines a few macros and note values.
It is then all assembled using dasm.

I first composed prototypes of various parts of the song using Renoise on my PC.
Then I coded the song data by hand using various bits from the prototyped song as reference.
All sounds were tweaked in the source and transferred using over5/tinyrs for checking the result.
Post Reply