Mod Archive Forums Mod Archive Forums
Advanced search  

News:

Please note: Your main modarchive.org account will not work here, you must create a forum account to post on the forums.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - yzi

Pages: [1]
1
MilkyTracker Support / Re: Help with SID sounds in Milkytracker
« on: December 05, 2016, 12:43:40 »
Old question, but I think a reasonable one.

Short answer: you can't.

But some of that stuff can be emulated to some degree. To learn how to do that, you have to learn how SID tunes are made. Start by learning GoatTracker. You will have to spend many hours studying how the SID chip works, and you'll have to spend many hours learning how the tracker software works, and how the playroutine works. All of these contribute to "the SID sound".

What "the SID sound" is, is highly subjective. For Atari ST folks, apparently pulse width modulation was the only thing needed, because they gave that effect the name "SID sound".

My guesses as to what someone might consider characteristic to the SID chip:
1. The oscillator waveforms themselves. Particularly the noise is quite unique.
2. Pulse width modulation, i.e. square waveform, but changing its width with a software envelope.
3. Player software idiosyncrasies
  3.1. particularly arpeggio effects,
  3.2. but also things like how drum sounds are typically done by playing short snippets of different waveforms from different pitches in tight sequence, "wave tables". And that a single SID oscillator/channel cannot play noise and pitched waveforms at the same time, it's either or. (Compared to, say, the AY/YM where the noise generator is a separate oscillator channel of its own) Well you can use combinations of waveforms, but it's more like a glitch, not very reliable, and I don't think anyone would associate the combined sounds as "the SID sound" in any way.
  3.3 maybe the way the envelope generators need some time to reset, and why any previous sounding note has to be cut off (i.e. release the virtual synth keyboard key you're holding down), a couple of frames (something like 30-60 ms) before the next note starts, or otherwise you'll get a "mis-trigger". Someone might call this a deficiency of the SID chip, and in theory it might feel bad and cumbersome, but in practice I think it's actually musically good and adds a nice funky feeling to bass lines. I do the same thing when playing actual bass or programming bass lines in sequencers or trackers.
4. The hardware ADSR envelope shapes, which affect particularly the attacks of the sounds.
4.1 Also note that the SID chip doesn't really have "channel volume" in the same sense as ProTracker/MilkyTracker or the Amiga Paula chip or actually even the AY/YM/PSG chip (that's in Atari ST, Amstrad CPC, MSX etc.) The ADSR envelope's attack part always raises the oscillator's mixing level to maximum, unless it is stopped before reaching maximum, but there's no such thing as "attack LEVEL" or "channel LEVEL". You only have SUSTAIN LEVEL, but before reaching that the attack and decay parts of the envelope have been done
5. The analog filter. Not nearly all SID tunes use the filter at all, so how important it is really. And the filter sounds somewhat different in different SID versions.
6. Ring modulation. Particularly some Rob Hubbard tunes use the SID chip's ring modulation possibilities.
___

How could these be emulated?
1. The oscillator waveforms: these you can sample if you like
2. Pulse width modulation: not really possible in MilkyTracker, but you can sample a long PWM'ed lead sound. It should sound reasonably close.
3.1 Arpeggio effect: can be done with the 0xx arpeggio pattern effect
3.2 Wave tables... might be doable with tempo F01 ;) Similar wave tables COULD be implemented as a new feature for the tracker and the playroutine, but the best you can do out of the box is to sample/rip actual SID drum sounds from SID tunes.
3.3 Cut notes slightly short: can be done with the ECx pattern command. For example if the tempo is F06, try using EC4 command.
4. The hardware envelopes: cannot really be done with XM envelopes, which are way too slow. You need to sample/rip sounds from SID tunes.
4.1 Do not use volume commands or instrument volume for "mixing" your channels. Do the balancing in the arrangement or inside the sample! That's the SID way. You can use instrument envelopes, if you can explain how the SID's hardware envelope could do that. But for example if you have a snare instrument sample, you must only play that sample with maximum volume.
5. Analog filter: cannot be done with existing features. You have to sample/rip SID tunes.
6. Ring modulation: cannot be done with MilkyTracker, so you have to sample/rip SID tunes.

Also: limit your expressions to things that can be done with the SID chip. Do not use stereo sound, because the SID is mono. Use max 3 channels. Only use samples from SID tunes or single waveforms, etc. Do not use volume commands.

2
Feature Request Archive / Re: Real Amiga ProTracker safe note limits
« on: October 08, 2013, 21:15:16 »
Oops 2. Apparently it only highlights notes HIGHER than the limit. Oh well.

3
Feature Request Archive / Re: Real Amiga ProTracker safe note limits
« on: October 08, 2013, 21:13:30 »
Oops. Did I not include a binary download link to the modified version.
http://www.kameli.net/~yzi/milkytracker_0_90_85_amiga_note_limits_warning.zip

4
Ok, I made a hacked version which highlights the risky notes. Happy!


5
Ok, I didn't get that far yet, but at least I managed to mutilate the code enough to compile a working Win32 executable in VS2010 Express. Here's the modified source (in platforms/win32/milkytracker_vs9 folder)
http://www.kameli.net/~yzi/milkytracker-0.90.85_vs2010express.zip


The things I bumped into were like this:
- target name/path vs. linker in project settings, these seem to always require a bit of tweaking when bringing vs2008 stuff to 2010
- "auto int" definitions --> just "int"
- and some other similar things, just comment out the "auto" part, why is that there anyway
- some abs() functions had to be seasoned with (int)(...) because of ambiguity in overloaded function versions or something
- VS2010 Express doesn't have MFC, so I had to copy-paste some constant definitions and comment out "afxres.h" from Win32_resources.rc

6
I don't know about emulators, but here are the three highest notes A-3, A#3 and B-3 of a (badly looped) synth sample with finetune +7, recorded from an actual Amiga 500 and ProTracker 2.3d.
http://www.kameli.net/~yzi/amiga500_protracker_highest_notes_finetune7.mp3

Maybe it's not about the notes as such, but the period values. With a higher finetune, even A#3 gets badly distorted. And it's not just the distortion, but the sounding pitch is wrong as well.

But anyway, this was open source, so I can fix it myself.

Btw, I thought this was self-evident common knowledge to anyone in the mod scene, but I guess not everybody has tracked on Amigas back in the day. ;)

7
Feature Request Archive / Real Amiga ProTracker safe note limits
« on: April 12, 2013, 10:45:26 »
On real Amiga ProTracker, A-3 (or "A-5" in Fast Tracker II note naming, playback rate roughly around 28kHz) is actually the highest safe note, and A#3 and B-3 produce a grabled sound. I don't know if it's still the same with Amiga 1200, but at least on an Amiga 500, this is the case. It would be nice if MilkyTracker warned of these high notes, because nobody really wants to use them on something that will be played on an Amiga.

8
I'm working on 4 channel MOD, and because I hate crazy the Amiga pannings on headphones, I've set default pannings to mono. To try some alternative melodies, I added two extra channels, and pressed the Add button. When I play on the added channel, the sound is totally on the left, and not center like what the default pannings are still showing. I need to go to the default pannings and re-apply, in order to get the pannings to center.

My resampler is "Amiga 1200" btw.

Pages: [1]