Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > How to mute the voices of the SID?
2024-09-30 23:56
Rub_0201

Registered: Apr 2019
Posts: 18
How to mute the voices of the SID?

Hi!

I want to remix my favorite SID tunes. A lot of them have nice rhythm, ideas and melody, but if I hear them more then 10 times in a loop, I get dizzy.

I want to bring more stillness and a different temper in them - making a remix.

My idea is to mute one or two of the voices of the SID and additionally fiddle around with some registers.

I did that with emulators like the C64debugger("24Hours Demo Remix" on YT) and the result is quite nice. Now I want to do it on the C64 itself.

As I am no SID programmer or musician, I have no clue how to do it on the real machine.

I understand fundamental assembly coding, but I am far from doing fancy stuff.

So I need your help!
 
... 24 posts hidden. Click here to view all posts....
 
2024-10-01 14:01
spider-j

Registered: Oct 2004
Posts: 498
For completeness sake – in addition to what Mixer said – to just mute a voice it's usually enough to set the according control register to $00:

$D404 voice 1
$D40B voice 2
$D412 voice 3

EDIT: Oh, and no it doesn't work to let the music routine write to the SID registers and the modify them again. This will be audible.

proper way is:
set $01 to ie. $34
jsr music
copy $D400-$D418 elsewhere ("virtual" regs)
set $01 to ie. $35
modify the "virtual" regs
copy the "virtual" regs to SID registers
2024-10-01 14:15
Rub_0201

Registered: Apr 2019
Posts: 18
Yeah - the audible clicks or what ever comes out may be a nice special effect ;-)

I go for the $01-deflector and a buffer for the clean mutness.

I am very excited to do the routine. This sounds like the right amount of coding and doable for me with your hints!

Thanks!!!
2024-10-01 17:51
Rub_0201

Registered: Apr 2019
Posts: 18
Quote: For completeness sake – in addition to what Mixer said – to just mute a voice it's usually enough to set the according control register to $00:

$D404 voice 1
$D40B voice 2
$D412 voice 3

EDIT: Oh, and no it doesn't work to let the music routine write to the SID registers and the modify them again. This will be audible.

proper way is:
set $01 to ie. $34
jsr music
copy $D400-$D418 elsewhere ("virtual" regs)
set $01 to ie. $35
modify the "virtual" regs
copy the "virtual" regs to SID registers


Yeah, just did the dirty overwrite with 0 without shadow copy - sounds like getting grilled by a robot in Impossible Mission.

Nice effect.

With the 6581 it is really loud and eratic somehow; with the 8580 it is more gentle.
I use VICE, but the result should be quite the same on the real machine I guess.

Okay, now do it the full way.
2024-10-01 18:38
Bansai

Registered: Feb 2023
Posts: 49
There is muting, but only for voice 3. See $D418 bit 7.
https://www.oxyron.de/html/registers_sid.html
2024-10-02 01:46
aeeben

Registered: May 2002
Posts: 44
If you don't need the filter, you can mute voices 1-2 by routing them to filter (poke54295,1 / poke54295,2) and turning off all filter types (poke54296,15).

But Deetsay's DJ SID mixer is probably the way to go! :)
2024-10-02 18:18
Stone

Registered: Oct 2006
Posts: 172
Some players have a lookup table for the voice offsets. Look for the byte sequence $00,$07,$0e. Then you can change whatever voice you want to mute by setting it to $19. This will redirect writes to read-only/unused registers.
2024-10-03 13:16
Rub_0201

Registered: Apr 2019
Posts: 18
The sound result with the buffered routine is not the same. :-(

Percussion instruments sound dull and powerless.

Hearable especially on "Beat to a pulp" from NE7 (voice 3).

Any ideas?

I still look for a bug in my code, but I think it is related to the different technique/timing of writing to the IOs.
2024-10-03 13:31
spider-j

Registered: Oct 2004
Posts: 498
As "Beat to a Pulp" uses a quite "new" routine (GT1) it's verly likely there's something wrong with your code.

I just threw the SID through my "sidanalyzer" script / code which uses the above mentioned approach and everything sounds fine to me, when (un)muting voices:
https://trans.jansalleine.com/csdb/sidanalyzer-bttp.prg
2024-10-03 14:33
Rub_0201

Registered: Apr 2019
Posts: 18
Quote: As "Beat to a Pulp" uses a quite "new" routine (GT1) it's verly likely there's something wrong with your code.

I just threw the SID through my "sidanalyzer" script / code which uses the above mentioned approach and everything sounds fine to me, when (un)muting voices:
https://trans.jansalleine.com/csdb/sidanalyzer-bttp.prg


Thanks Spider-j!!

With your routine "Beat to a pulp" sounds like it should be . Now I hear the exact difference with muted voices 1 und 2!!


I'l do some bug hunting....
2024-10-03 16:56
Rub_0201

Registered: Apr 2019
Posts: 18
Well...I think there is a problem in my code and in the general aproach.

I recorded voice 3 of "Beat to a pulp" with:

1) C64jukebox with SIDPlay2 recorded with Chrome Audio extension
2) spider-j routine recorded within VICE 3.8
3) my routine recorded within VICE 3.8

#2 is better than #3, but #1 is far better than the latter.

The SID model and resampling, buffer, filter, etc. did not change this behavior in VICE.

Here are the files:
https://www.dropbox.com/scl/fo/gcjp4k8qmc9uf6vn1cg99/AEP9FGA1Yy..
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
ptoing
Guests online: 57
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Party Elk 2  (9.6)
4 Cubic Dream  (9.6)
5 Copper Booze  (9.6)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.114 sec.