Feryl wrote:

Nice effects, stunts, and location work. You might want to avoid so many video game references in the future, though.

They are clearly going for the video game references. Avoiding them would be counter-intuitive.

626

(23 replies, posted in Commodore Computers)

Well, compared to modern audio-grade filters it's not very good, but it's more than you get from an R-2R DAC.

I'm a a Linux developer so if I do any updates the Linux tool will probably always been the best tested.

628

(23 replies, posted in Commodore Computers)

Yeah, you're correct in saying that the chip works heavily off of DMA, but features like the filter and the modulation make it better than a boring old DAC.

A regular passive DAC won't do all the neat things that Paula will. I'm not saying that it's a project that I think has a wide importance, but if I had an extra chip sitting around and a MC68302 or something similar, it wouldn't be overly complex to utilize the Paula as a value added output for your microcontroller projects.

Yes, it's pretty familiar for those who have done SID instrument editing. Do you have any experience with SID and it's registers?

If not:

The SID chip has 29 registers. This may seem confusing, but here is a breakdown of the registers:
http://www.oxyron.de/html/registers_sid.html

In Cynthcart you first hit RUNSTOP+F1 to enter the editmode (there's a different key combo if you're using the overlay). In hex edit mode you first enter two hex digits for the register address you want to go to (00-1C) and then enter the two hex digits to place into that register.

Looking at that reference you simply set a 1 for an item you want 'on' or 'active' and 0 for one you want off. Let's look at register $D404, the one that sets the timbre of the first channel, and let's assume we want to create a noise/pule combination and we want to set the gate to 1, with no other options. that means that bits 7 and 6 are high, and bit 0 is high and nothing else. In binary that comes to:

11000001

We need this value in hex, though. Luckily, hex and binary are extremely easy to convert between (even in your head). If you've never worked with hex, here's an easy way of converting them:

-Break the binary number into chunks of 4 digits (add leading zeros if required). Four binary digits happen to represent 16 possible values (0-15) and therefor correspond directly to the following chart:

0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
7 = 0111
8 = 1000
9 = 1001
A = 1010
B = 1011
C = 1100
D = 1101
E = 1110
F = 1111

These 15 pairings are easy to figure out and you'll quickly find you can do them automatically.

Back to our example we have:

1100 0001

1100 is C, 0001 is 1. So put em together! It's that easy!

Which is C1 in hexadecimal.

630

(23 replies, posted in Commodore Computers)

Did you know that the Paula chip is technically capable of doing rudimentary FM synthesis? If you're going to do a standalone project with it, I vote that you do the first midi-box Paula FM synth!

Paula also has a nice butterworth low-pass filter so I say that given the many neat things that Paula can do that it's not a worthless project, but would require a decent amount of research and almost certainly some understanding of assembly programming.

631

(60 replies, posted in Nintendo Handhelds)

Well, I am excite.

I'm just going to post the README here. Some of you probably already know what this is and know why it may be useful, otherwise feel free to ask questions.

[v.1.0 - Binary & Source download for Linux, macOS & Windows]

pcm2pwm 1.0 - a utility for 1-bit audio weirdos   // code by:  [email protected]
===========================================            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

pcm2pwm is a simply utility for converting 8-bit PCM wave audio into a delta PWM byte stream.
It's output is intended for use with any 1-bit audio devices which require a simple playback
routine or relatively high degree of compression.


Running the utility
-------------------
pcm2pwm is a simple tool. It will reject formats it cannot read, feed it only mono 8-bit wave
files. Audacity is a great, multi-platform tool for preparing your audio (see section below)
and will allow you to export in this format.

Basic use is simple just run the tool and hand it a filename with the -i option:

$ pcm2pwm -i input.wav

The pcm2pwm tool will output to standard output, so if you'd like to save the output
to a file, just use:

$ pcm2pwm -i input.wav > output.txt

Additionally, you may specify two values to act as the high and low crossovers, using the -H
and -L options. These values must be between 255 and 0. For example:

$ pcm2pwm -H 240 -L 15 -i input.wav

This would trigger the high and low states slightly earlier and might be useful if your input
wav file isn't very loud. Moving these two values too close or too far from your average
amplitude will ruin timbre of the resulting output sound. Experiment to see what works best.


MODES
-----

BINARY OUTPUT
As of version 1.0, the -b option can be used to provide a filename for direct binary output.

$ pcm2pwm -i input.wav -b output.bin <...>

HOUSTON TRACKER 2, INVERSE OUTPUT
As of version 0.8, you may also add the -h option before the input file to toggle an inverted output format
suitable for Houston Tracker 2.

$ pcm2pwm -h -i input.wav <...>

DASM, TABBED OUTPUT
As of version 1.0, the -d option can be used to provide output suitable for use in DASM, which requires a
tab at the start of each .byte statement.

$ pcm2pwm -d -i input.wav <...>

Preparing your input audio
--------------------------
With the addition - in version 0.5 - of custom high and low crossovers, a wider range of
audio can be run through the pcm2pwm tool. However, the following advice may still return
the best results:

  The input audio must be compressed, limited or otherwise overdriven in order to keep 
  most of the samples below 3 and above 252 (basically, you want it to be clipping or
  nearly clipping as much as possible. The easiest way to do this is to use an audio
  program like audacity to heavily amplify your audio with the "allow clipping" box ticked.
  If you know what you're doing with audio then you already know the tricks for maximizing
  your output "loudness", do this to the extreme.


Using the output
----------------
Each output byte represents the number of samples since a zero-crossover. That is
to say, it's the number of samples since a state change. The output sample-rate will
match the input sample-rate, therefor a 11024Hz wav will produce byte data based on
the same reference rate. If your playback routine is faster or slower than this rate,
the pitch/speed of the resulting audio will be altered.


Playback routine
----------------
If you're even thinking of using this utility you probably already know what you want
to use it for but here's an extremely simple explanation of what you need your playback
routine to do:

-read byte
-wait that many samples length of time (your playback routine may be slightly faster or
slower given limitations of limited processors)
-toggle state
-read next byte
-etc

Pretty simple, eh!

Version History
----------------

0.2   - Basic functionality
0.5   - Added the ability to set high and low crossover values.
0.7   - pcm2pwm now checks the input file's header to ensure compatibility.
0.8   - Added the -h option for outputting in a Houston Tracker 2 format.
0.8.1 - Added the -h option for outputting in a Houston Tracker 2 format.
1.0   - Switched to POSIX-style options/arguments, added binary output modeto output
        directly to a binary file, added DASM output mode to append a `\t` to each
        line.

Also a 'true' squarewave is impossible. There's always going to be some sort of delay in the rise and fall.

Feryl wrote:

You mentioned Biebs and Keenes in the same sentence, which is obviously a capital offense.

Here, have a chill pill.

Give me a break, it was obviously a lighthearted joke. I was comparing Keenes' hearthrob status with the flavour-of-the-day hearthrob. Look, I just used hearthrob twice in one sentence!

Like almost every fan of chip music I love J. Arthur Keenes' music, there's no disrespect coming from me. Not towards you or towards Keenes. We're all on the same team here.

635

(4 replies, posted in Nintendo Handhelds)

There's no complex process to replacing the battery in a 64M EMS cart. There's a battery socket and you just take the old one out and pop the new one in.

Can we hear your noise channel songs already?

Feryl wrote:

wrong sir

What are you claiming that I'm wrong about? JAK played one of my big street shows and there were crowds of young girls swooning over him so we gave him the nickname. Get over yourself.

^___^

The Justin Beiber of chip music does it again! I can already hear the screaming girls.


(note: while JAK shares pre-teen wooing capabilities of Justin Beiber, his music is considerably better.)

639

(42 replies, posted in Releases)

3:00am infomercial music.

640

(60 replies, posted in Nintendo Handhelds)

Game Boy + SID would be amazing. The SID would require somewhere around 12 lines of digital I/O, which isn't unreasonable to imagine.

One of the cooler ideas would be to route the Game Boy's sound through the SID audio input since that input also routes through the SID filter. Lots of coolness can be had by using Game Boy sound generation with the awesome 6581 filters (I've played with this before with a modded C64 and an Atari ST).

The SID also has two 8-bit A/D converters, so a potential SID Game Boy could potentially add some form of analog inputs.

EDIT:

-Addressing is 5-bit (there are 29 registers).
-Data is 8-bit

This means a minimum of 13 digital lines for full SID control, this is assuming that the read/write pin is tied low (write state) and that means there will be no read access so you won't be able to use the A/D converters.