17

(438 replies, posted in Commodore Computers)

Again, I'll try to provide an (over)simplified introduction.

The ADSR bug is, more or less, sounds failing to trigger properly because the ADSR envelope of the previous sound on the same channel didn't clear yet. Sometimes it will drop a note, sometimes it will make it sound different. This is more noticeable if you're triggering notes rapidly and also depends a lot on the ADSR values of the sounds involved.

It's worth noting that if you are patient / experienced enough with ADSR values you can avoid the bug even without using hard restart.
For example some ppl say that setting the A to 1 instead of 0 helps, or setting S to less than F, etc. I just tend to play around.

It still makes the drum sounds punchier.

There are two components to setting up HR, one is resetting the gate bit, and the other is an ADSR envelope to be set up before the sounds actual envelope, we call this one ADHR.

Also note that there needs to pass some time (2 frames I think) after the HR line before you trigger the actual sound, thus the wait in the DL column in those examples I posted.

This delay makes the hardrestarted sounds trigger slightly later than the non-HR ones, so if that is audible in your tune you have to compensate.

As 4mat noted, Goattracker (and some other trackers) will do this for you but then as a tradeoff all HR sounds have to use the same hard restart.

With defMON being so flexible you have many options on how to compensate for this delay.
First you can trigger HRed sounds a line in advance (notice how dM has a line before line 0) or you can set up the sound the line before and then trigger the note later (goto80 does this), or you could build a little delay into all the non-HR sounds as well, or you could make all your HRs as separate commands and then trigger those the line before (I use this one when I can).

Again this is only significant if you can hear the unwanted delay.

Or if you need a really rapid fire machinegun beat you can keep the gate open and use other tricks to mute/control the perceived volume (like setting the waveform to 0 or using really thin pulse widths). This is more like a kill-switch method so you lose almost all the dynamics, sort of like overcompressing to death, but it sidesteps the use of ADSR completely and thus the ADSR bug as well.

To round it off, here's some notes I compiled a while ago from CSDb, looking into SID tunes with siddump, and looking into how different trackers handle it.

dl = delay (in frames)
w = waveform
g = gate bit
ADHR = hard restart envelope
ADSR = envelope for your sound

HARD RESTART
------------

METHODS

    old school
        dl    w    g    adsr
        ----------------
        1    -    0    0000
        0    W    1    ADSR + NOTE

    new school
        dl    w    g    adsr
        ----------------
        1    -    0    ADHR
        0    -    9    ADSR
        0    W    1    ---- + NOTE
        
    hybrid
        dl    w    g    adsr
        ----------------
        1    -    0    0000
        0    -    1    ADSR
        0    W    -    ----
    
    heatbeat
        dl    w    g    adsr
        ----------------        
        0    -    9    ADSR
        0    W    1    ---- + NOTE
        ...
        1    -    0    ----
        0    -    9    ----
        0    W    1    ---- + NOTE
    
EXAMPLE ADHRs VALUES

    0000    hardest
    0F00    most common
    0F18    Drax
    0F20    GRG
    0FF0    Randall/Jammer
    F000    Linus
    FF00    Jeff

OTHER NOTES

    Sustain of F is especially buggy (try E then? :)
    soft restart usually works best with big (>= 8) release values

18

(438 replies, posted in Commodore Computers)

Oh and don't be afraid to use way more lines for a nice kick or snare, these were made to be short, not elaborate.

Also you can read examples from docs for any other c64 tracker. Just bear in mind that defMON goes 2 octaves lower than any other program I know of so adjust pitches accordingly (esp since many people will use absolute pitch for drums)

19

(438 replies, posted in Commodore Computers)

So, this thread has a lot of great tips/thoughts:
http://csdb.dk/forums/index.php?roomid= … icid=97576

But I can quickly explain the principle here.

A kick drum would typically be a bit of noise (08) followed by a triangle (01) (or square (04) for a noisier distorted sound), while doing a pitch drop (try something like E0 in the AF column and play the note at c-5). Do'nt forget that you must specify a pulse width or square will not be audible. You can omit the noise part of the kick if you don't want it to have the hihat like snap.

Snare would start with 04 for a bit of a punch and then switch to noise for the tail.

Hat is usually just a bit of high pitched noise.

Ideally you would also be using a technique known as 'hard restart'. This makes sure the sounds are player properly every time (SID chip has an ADSR related bug) but as an added bonus it adds more snap to the sound which works well for drums. It's a big topic so I'm not gonna go into it here.

Here's a really quick example of a kick

++ 01 --090ff0----
++ 00 40010283--E0 0800
++ ST --00--------

line 1 is hard restart, line 2 is square wave with ADSR and pitch drop, line 3 just closes the gate

And a snare:

++ 01 --090ff0----
++ 00 400104f6--E4 0800
++ ST 8000--------

Line 1 is the same hard restart, line 2 again some square, line 3 gate off plus switch to noise

Hope that helps a bit!

20

(438 replies, posted in Commodore Computers)

scannerboy wrote:

I also find it quite hard to wrap my head around making drums (coming from LSDJ). Drum tutorials (or examples ;P) would be a godsend

You mean making the sounds?

21

(438 replies, posted in Commodore Computers)

While we are on the topic of using FF jumps in the orderlist... here are some things that I found useful...

First is, I commonly use FF steps to make visual vreaks between different sections of a song. I just make it jump to the next line, so for example on step 07 you can put FF0800. This makes it easier for me to find a specific part when the songs get bigger, and also if I need to loop a sequence when working on it I can just edit the numbers temporarily and then back again.

Second, you can use FFxxyy to jump to row xx for yy times. So in early stages of making a song I just do a FFxx03 to repeat a step 4 times (because 3 times it will jump back to play it once more in addition to the first play).
Later I 'unfold' the loop by repeating lines and then add variation afterwards.

Oh! And a mega workflow pro tip that might not be obvious from the 101 guide is to press shift+U to clone a sequence. It will automatically find the next unused number and copy into it and then replace the old one with the new. Ideal for adding variation.

I'd deffo be willing to keep working on the UI if someone picked up the code

23

(438 replies, posted in Commodore Computers)

PULSELOOPER wrote:

And btw: is there a way to export the song as .sid file?

Not currently, I think

IIRC it is trivial to convert a packed tune to a SID (you just need to add a little header) but I don't know if there is a tool to do that for you

24

(438 replies, posted in Commodore Computers)

d3Ni$e wrote:

Really nice work there!! smile

So if I select the line with the ST, it means that the exact line has no function more than Stop?

Thanks for the help

No.
It will do whatever is on the line. Just never move to the next line.

ST = delay of infinity

25

(438 replies, posted in Commodore Computers)

Since not too many people are using defMON, I thought it'd be cool to share our tunes/wips here?

Here's the latest two I made: (as c64 exe files)
http://csdb.dk/release/?id=139112
http://csdb.dk/release/?id=134563

26

(438 replies, posted in Commodore Computers)

Hello and welcome!

To answer your questions:
-shift+return to remove a row (and pull the contents up)
-DL column is for 'delay' = how many ticks to wait before moving to the next line. A value of ST means 'stop', that is, wait forever.

The best way to learn the sidTAB is really to learn about the SID chip itself and how it works.
Having said that, defMON is quite friendly to experimentation and prone to happy accidents smile

Mon tailleur est riche! \o/

Strut strut!

Have to show off some new themes for 1.6


holy shit!

30

(438 replies, posted in Commodore Computers)

\o/

31

(438 replies, posted in Commodore Computers)

You can go to disk menu and then back to restore the colours.

When registering for the wiki make sure you've clicked through all the prompts and confirmations. I was waiting for the email myself then noticed there was one more registration step left before it sends it.

32

(438 replies, posted in Commodore Computers)

Yes, the only difference in the deluxe version is that you can set a loop to repeat a finite amount of times before continuing (something I use a lot, especially early in the process of making a tune), like so:

FF 00 03

This would jump back to position 00 three times and then keep on playing (so in total it is played 4 times). Saves you from copying the same part of song 4 times in the seqlist.