| |
Mixer
Registered: Apr 2008 Posts: 422 |
Software Synths
There are some music tools and programs made for stock c-64 which produce sound or music, but are not necessarily using sid chip the usual way.
Such as:
SAM,
radwar speech,
the ESS speech,
Galways drums,
AndyM00's pulsetrain stuff,
Soundemons new waveform-stuff,
THCM Mod players,
Some of the Vicious Sid I and II routines,
Mahoneys many achievements,
Algorithms VQ packed players,
Censors various pwm players,
Eebens Pollytracker,
Retroskoi
We can observe that several c-64 musicians and coders have experimented with software based synthesis or sampling/compression over the years.
Most of the listed are rather recent. There must be plenty more weird sound routines done during the last 30 years that are not yet listed.
If you know of some past oddness that should be on the list - published or unpublished, please, paste a link or desrcibe. Would be interesting topic for discussion and perhaps someone gets a new idea. |
|
| |
chatGPZ
Registered: Dec 2001 Posts: 11108 |
i would leave out those that are basically sample players (because there are tons of them, and they are not very interesting when it comes to their "synth" part)
i would think that some of those cool guys in the past already used things like that "auto chords" stuff though - would be really interesting to analyze indeed :) |
| |
algorithm
Registered: May 2002 Posts: 702 |
Some info here.. Nothing fancy about the decoder. The encoders do all the grunt work..
VQ METHODS
x or more bytes (samples) allocated to a byte LUT.
8bit LUT VQ (Used in 8Bit Passion) - With resequencing of patterns
8bit Dual LUT VQ (Speech Channel and background channel mixed)
10bit LUT VQ (1024 waveforms) - Used in VQ mania
SPADPCM2
2Bit Step Predicted ADPCM.
Each chunk consists of two optimum step values with subsequent 2bit
stream adding or subtracting one of two step sizes. Used in "Just dance 64"
SPADPCM1
1BIT Quad predicted ADPCM
Each chunk consists of an optimum step value with subsequent 1bit stream adding or subtracting via the step size. Used in "Channels SPADPCM1" - with resequencing
OFFSET / LENGTH SPEECH
256 byte speech table with 2 bytes pointing to offset of codebook, length is repeated until block is full (eg 128 bytes or 256)
Used in the speech part of Demolicious
More to come... :-) |
| |
Mixer
Registered: Apr 2008 Posts: 422 |
Geir Tjeltas Echoes - should naturally be on the list for the delay effect. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11108 |
space taxi maybe - it plays samples using the filters in a strange way i havent seen anywhere else. |
| |
Rough Account closed
Registered: Feb 2002 Posts: 1829 |
I guess this counts for other Silas Warner/Muse games too!? |
| |
Mixer
Registered: Apr 2008 Posts: 422 |
Quote: space taxi maybe - it plays samples using the filters in a strange way i havent seen anywhere else.
Space Taxi Seems to be toggling filter on/off for audio channel 1 while it has full square wave and PWM selected. Is it a PWM sample with filter on/off or some other mechanism? Anyway, since it is on oscillator+filter, it should work also with 8580?
Space Taxi is by Silas Warner, would be interesting to take a look at the other games. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11108 |
no idea :) A.C.E. is another one that plays samples in unconventional ways (didnt investigate further yet, my guess is that it uses the noise waveform somehow) |
| |
algorithm
Registered: May 2002 Posts: 702 |
Ice guys Ice Guys
Uses 2bit via waveforms |
| |
chatGPZ
Registered: Dec 2001 Posts: 11108 |
Quote:Anyway, since it is on oscillator+filter, it should work also with 8580?
that made me wonder as well - as it clearly doesnt work on 8580 at all :) |
| |
McMeatLoaf
Registered: Jan 2005 Posts: 105 |
Quote: no idea :) A.C.E. is another one that plays samples in unconventional ways (didnt investigate further yet, my guess is that it uses the noise waveform somehow)
Perhaps something like turning the testbit on/off? |
| |
Mixer
Registered: Apr 2008 Posts: 422 |
Customer:"I can't play samples on my C-64"
Support:"Have you tried turning the test bit on and off again?" |
| |
Zyron
Registered: Jan 2002 Posts: 2381 |
:D |
| |
Frantic
Registered: Mar 2003 Posts: 1627 |
"Customer: No I didn't test that." |
| |
McMeatLoaf
Registered: Jan 2005 Posts: 105 |
Haha, I meant setting waveform of channel 1 to pulse, then setting pulsewidth to max(?) and THEN turning testbit on channel 1 on/off. :D
Similar playback routine to the one in Last V8, but at a much lower sample rate. |
| |
mankeli
Registered: Oct 2010 Posts: 110 |
Here's my attempt at soft synthesis on the breadbox:
Your Love
Basically the routine counts cycles between iterations with cia timer. The oscillators (16bit phase accus iirc) are then advanced by this amount, and the resulting samples are then played back with soundemon's waveform sample method. Music routine itself happens in irq.
Theoretically this works with badlines/sprites as well.
Try setting D011=7f if you want to hear some (more) intermodulation distortion. |
| |
4mat
Registered: May 2010 Posts: 63 |
Dunno if this counts. Type Mismatch generates it's digi drums by sampling the 3rd sid channel. |
| |
algorithm
Registered: May 2002 Posts: 702 |
I have a oscillater synth ready which uses free running oscillators to generate audio that is encoded using samples as source.
Raster usage is a few rasterlines. and uses three oscillators to recreate the speech. No other cpu intervension required apart from writing a few values once per frame. It somewhat works well for musical instruments as well. Compression is around 175 bytes per second uncompressed (if using three channels)
https://www.dropbox.com/s/tcps4e9s2o43sc5/testmadonna.prg
The encoder is designed to have individual sustain values for each channel, however there are issues with this at the moment, hence i am averaging the three sustains per frame and feeding this to $d418. Due to this, there will be some noticeable clicks on 6581 sid. Use 8580 for more smoothness.
To implement interpolation multispeed to keep the same data usage per frame and to increase the output quality. |
| |
McMeatLoaf
Registered: Jan 2005 Posts: 105 |
Weirdo
Uses regular $d418 samples with glissando/vibrato almost like a soft synth. (?) |
| |
Mixer
Registered: Apr 2008 Posts: 422 |
Adding Swallows samples to the list
Wonderland XIII |
| |
Mixer
Registered: Apr 2008 Posts: 422 |
Adding Concert to the list:
Concert
The bassist in the sound-check part is actually a very simplified Karplus- or "digital waveguide-" synth. |
| |
Radiant
Registered: Sep 2004 Posts: 639 |
More or less everything by Cycleburner/Megastyle? |
| |
Hein
Registered: Apr 2004 Posts: 933 |
GBK-Test by ATOO
An experiment I did with channel 3 envelope mixing into the D418 samples (not really synths): D418 + D41C mix
Personaly I like Galway's Arkanoid generated drums 'n bleeps alot more than the drums in Arkanoid (alternative drums). |
| |
bugjam
Registered: Apr 2003 Posts: 2476 |
Quoting HeinGBK-Test by ATOO
In which form was it released? Anyone got the respective executable? |
| |
Mr. SID
Registered: Jan 2003 Posts: 421 |
NESsivE ATtaCK and Phasor Soundtrack HiFi are emulating a 1-bit white noise channel using $d418 samples. |
| |
Trash
Registered: Jan 2002 Posts: 122 |
This might fit the list: M.B.S Sampling |
| |
Inge
Registered: Nov 2003 Posts: 144 |
Quote: Quoting HeinGBK-Test by ATOO
In which form was it released? Anyone got the respective executable?
I've uploaded an executable.
The program actually takes 64 bytes from selected parts of the ROMs and make decent samples out of it in real-time. AFAIR, GBK relates to some algorithm, but I haven't been able to find any references.
EDIT: It's here: GBK-Test |
| |
Mixer
Registered: Apr 2008 Posts: 422 |
Quote: I've uploaded an executable.
The program actually takes 64 bytes from selected parts of the ROMs and make decent samples out of it in real-time. AFAIR, GBK relates to some algorithm, but I haven't been able to find any references.
EDIT: It's here: GBK-Test
The GBK algorithm is mentioned in the Heins sid-link comments. It is simplified Karplus or Karplus-Strong as well.
There is a lot of unexplored potential with Karplus and digital waveguide synthesis in c-64. |
| |
aeeben
Registered: May 2002 Posts: 42 |
BTW. I've somehow missed this one - How did SounDemoN's autochords work? Flipping pulse phase in timer interrupt(s) to create the 2nd and 3rd voice? I guess it only works with pulse wave then? |
| |
Mixer
Registered: Apr 2008 Posts: 422 |
The test bit chord thing, which Soundemon used in autochord was actually something I came up with, but he made something useful out of it.
Note frequency values or SID FRQ register values are converted to CIA timer periods. 4 timers = 4 notes in chord.
When any timer is 0, the irq is triggered, and one can then toggle the test bit on/off in an interrupt handler. Or one can poll the irq registers in busy loop / unrolled code and toggle test bit on/off accordingly.
This causes a train of waveform resets, which to ear sound like a chord.
Pulse, Triangle and Saw all work, but sound awful initially. Filtering the voice makes the chord sound nicer.
Same effect can be done using just one timer, by simulating the train of reset events, by changing the irq timer period on every irq. Calculating the timer sequence takes some raster lines per frame, but it is proven to work. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: The test bit chord thing, which Soundemon used in autochord was actually something I came up with, but he made something useful out of it.
Note frequency values or SID FRQ register values are converted to CIA timer periods. 4 timers = 4 notes in chord.
When any timer is 0, the irq is triggered, and one can then toggle the test bit on/off in an interrupt handler. Or one can poll the irq registers in busy loop / unrolled code and toggle test bit on/off accordingly.
This causes a train of waveform resets, which to ear sound like a chord.
Pulse, Triangle and Saw all work, but sound awful initially. Filtering the voice makes the chord sound nicer.
Same effect can be done using just one timer, by simulating the train of reset events, by changing the irq timer period on every irq. Calculating the timer sequence takes some raster lines per frame, but it is proven to work.
does anyone have a demo of this in goattracker? im fucking around with test bit in gt and im getting no results |
| |
Jammer
Registered: Nov 2002 Posts: 1289 |
It requires bigger speeds than Goat Tracker offers to produce any harmonics you need ;) |
| |
Frantic
Registered: Mar 2003 Posts: 1627 |
@That8BitChiptuneGuy: Goattracker, or any other editor really (as far as I know), will not allow the user to do this. It requires a special music player which is crafted very much with this particular feature in mind. It is not the sort of thing that would be part of a general purpose thing. You could think of it more as a kind of demo effect, but applied to sound rather than graphics. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: @That8BitChiptuneGuy: Goattracker, or any other editor really (as far as I know), will not allow the user to do this. It requires a special music player which is crafted very much with this particular feature in mind. It is not the sort of thing that would be part of a general purpose thing. You could think of it more as a kind of demo effect, but applied to sound rather than graphics.
Alright then! Time to find that music player in one way or whatever ig! |
| |
acrouzet
Registered: May 2020 Posts: 80 |
I believe the "autochord" player is found in Vicious Sid 2. There aren't any publicly available tools for it, as far as I know. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: I believe the "autochord" player is found in Vicious Sid 2. There aren't any publicly available tools for it, as far as I know.
Thanks! But when i check the downloads and the zip files there are only d64 files? |
| |
Frantic
Registered: Mar 2003 Posts: 1627 |
Quote: Thanks! But when i check the downloads and the zip files there are only d64 files?
That makes sense? Vicious Sid 2 is a C64 demo, and C64 software runs from d64 files. I don't know what you expected to find, if not d64 files? |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: That makes sense? Vicious Sid 2 is a C64 demo, and C64 software runs from d64 files. I don't know what you expected to find, if not d64 files?
Sorry if i pissed you off there but i thought there was code but i am kinda dumb sometimes so shrug |
| |
Frantic
Registered: Mar 2003 Posts: 1627 |
Nobody is pissed. I just didn't understand how you interpreted the situation, so that is why I asked. |
| |
Mixer
Registered: Apr 2008 Posts: 422 |
The one oscillator chord or the "autochord" code is not released as a source yet. Perhaps we should add it to the codebase at some point. Anyway, it needs some programming skills to use. |
| |
Jammer
Registered: Nov 2002 Posts: 1289 |
And replay rate which matches regular sample playback. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: The one oscillator chord or the "autochord" code is not released as a source yet. Perhaps we should add it to the codebase at some point. Anyway, it needs some programming skills to use.
alright! |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: Nobody is pissed. I just didn't understand how you interpreted the situation, so that is why I asked.
I can take stuff like that as a insult but ye didnt know so thats ok |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: The one oscillator chord or the "autochord" code is not released as a source yet. Perhaps we should add it to the codebase at some point. Anyway, it needs some programming skills to use.
which i dont got lol (i mean programming skills) |
| |
Monte Carlos
Registered: Jun 2004 Posts: 351 |
Thats just a matter of time. 64 Enthusiast obtain programming skills, for Sure! |
| |
TheRyk
Registered: Mar 2009 Posts: 2064 |
nobody pissed, nobody got pissed, wonderful \o/
so BTT or let this thread rust in peace again |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: nobody pissed, nobody got pissed, wonderful \o/
so BTT or let this thread rust in peace again
thankfully |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: Thats just a matter of time. 64 Enthusiast obtain programming skills, for Sure!
see me in a few years! |