English Amiga Board


Go Back   English Amiga Board > Main > Amiga scene

 
 
Thread Tools
Old 01 December 2013, 05:27   #21
Thorham
Computer Nerd

Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 41
Posts: 2,972
Quote:
Originally Posted by Loedown View Post
Also regarding Amiga samples, it depends on the output frequency that the sound is being played at and the speed that the original sample was recorded at, if both are almost divisible by one another you will have very little aliasing at all but if they are tremendously different then you will hear much aliasing. String sounds are the best for hearing of horrible aliasing because the original sounds usually use phasing between two oscillators to achieve a richer sound ( slight pitch phasing ).
Wouldn't that hold true for all hardware that can play samples at arbitrary rates?
Thorham is offline  
AdSense AdSense  
Old 01 December 2013, 10:06   #22
Loedown
Precious & fragile things

 
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,927
Quote:
Originally Posted by Thorham View Post
Wouldn't that hold true for all hardware that can play samples at arbitrary rates?
Yes it does, if you're interested you could look out for some sounds that were made on things like the Akai S series samplers or indeed the Fairlight CMI synthesizer. Also the Emulator samplers, one of which was used in Ferris Bueller's Day Off or in earlier Depeche Mode albums. In latter years manufacturers learned how to manipulate samples via hardware and many used a wavetable ( PPG Waveterm / Korg Wavestation ) or samples / classical sound generation methods ( Roland D-50 / Roland JD-800 ).

It also depends on how well a sample was done in the first place and where its loop points are set. You can hear some horrible looping sounds throughout the Amiga world, still that's what we had and that's the history.
Loedown is offline  
Old 01 December 2013, 13:32   #23
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL
Posts: 1,546
Quote:
Originally Posted by john1979 View Post
Just wondering but why did the hardware designers even consider cutting this frequency sloping downwards?

Any noise above 21khz would have been inaudible.

Most of us would struggle to hear anything above 20khz, even when in our teens.
They must - first there is Nyquist requirement (reconstruction filter) second - Paula HW have implemented volume control as a 6bit PWM modulator that control output level - (my educated guess is that 8 bit DAC responsible for sample conversion precede 6 bit PWM volume control - 8 bit DAC produce reference variable amplitude/frequency voltage for 6 bit PWM switch - output is complex form where reference voltage i.e. samples are modulated by 6 bit PWM with fixed frequency approx 56kHz - cclk/64).

And perhaps above 21kHz things are not audible but spurious modulation product can be hear in audio band without problem - intermodulation distortions.

btw
once i've heard very good quality audio in demo - i don't remember for a name of demo but one part have sound where Janet Jackson samples was used, and graphically it was 4 wave spectrogram flying on screen - i was amazed how clear and good quality audio Amiga can produce - for modern wavetabe synthesis i think Amiga can produce sound quite close to HiFi average user standards - Amiga limitation are slow CPU and lack of DSP capabilities - with decent DSP Amiga audio quality can be more than HiFi (beyond CD dynamics).

Quote:
Originally Posted by mc6809e View Post
The "grittiness" of the Amiga's sound comes from all these additional harmonics that are produced as the output jumps from one value to another. The more slowly the waveform is output, the more additional harmonics appear in the output EVEN IF THEY WEREN'T PRESENT IN THE ORIGINAL SAMPLE.
"Grittiness" means only that original audio was sampled without Nyquist criteria i.e. sample rate was to low when compared to sampled frequencies - probably antialiasing filter was not enough efficient or algorithm used for sample rate conversion not particularly good - Amiga is very slow CPU - most of algorithms used by Amiga to perform audio processing are very simple and not particularly sophisticated.

For example sample rate conversion quality of various program can be compared on http://src.infinitewave.ca/ .
Good algorithms are available but they require very high processing power not avaiable not even 10 years ago thus 30 year old Amiga can't be even matched with this.
From Amiga perspective it will be useful to have similar functionality as join sprites i.e. form from one twice higher speed channel from two channels. It is a bit sad that it was not designed in that way but still not bad for 30 year old audio.

Last edited by pandy71; 01 December 2013 at 13:49.
pandy71 is offline  
Old 01 December 2013, 16:17   #24
Thorham
Computer Nerd

Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 41
Posts: 2,972
Interesting stuff, thanks for explaining guys

Anyway, it confirms what I had always thought: The only thing that's special about Amiga audio is that it was available so early in the modern computer era.

Quote:
Originally Posted by pandy71 View Post
not bad for 30 year old audio.
You should hear 14 bit 44 khz audio (calibrated, NO AHI) from a clean source. Pretty mad. Could be better if the calibration software didn't insist on calibrating all four channels at the same time.
Thorham is offline  
Old 01 December 2013, 20:18   #25
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL
Posts: 1,546
Quote:
Originally Posted by Thorham View Post
Anyway, it confirms what I had always thought: The only thing that's special about Amiga audio is that it was available so early in the modern computer era.


You should hear 14 bit 44 khz audio (calibrated, NO AHI) from a clean source. Pretty mad. Could be better if the calibration software didn't insist on calibrating all four channels at the same time.
It was special even 8 years after Amiga release... at least on PC site - it was general principle or squeaky beeps or fancy but expensive audio - Amiga was first and for very long time unique PC that offer to each customer sample audio as standard without bothering to much CPU.

For calibration - use PC with spectrum analyzer - it should be much easier and personally i think that 8 bit with approx 56ksps correctly noiseshaped+dithered audio can be better in quality.
pandy71 is offline  
Old 02 December 2013, 04:32   #26
xArtx
Registered User
 
Join Date: Jun 2013
Location: Australia
Posts: 635
Whether or no Paula can do this and can't do that,
the music we hear in demos is all sample based mod,
with no programatic reproduction of audio, only sequencing of samples.
So at best, we'd hear synthesised samples in some games, maybe...

Can you simply tell Paula to play a sine wave tone at a specified frequency without
providing the sample to play back? So the tone would be continuous?
Or would you have to loop a recorded sample to play it continuously?
xArtx is offline  
Old 02 December 2013, 04:59   #27
Loedown
Precious & fragile things

 
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,927
Quote:
Originally Posted by xArtx View Post
Whether or no Paula can do this and can't do that,
the music we hear in demos is all sample based mod,
with no programatic reproduction of audio, only sequencing of samples.
So at best, we'd hear synthesised samples in some games, maybe...

Can you simply tell Paula to play a sine wave tone at a specified frequency without
providing the sample to play back? So the tone would be continuous?
Or would you have to loop a recorded sample to play it continuously?
The chip has no on board sound generation, no tone generators / oscillators so you need to specify waveform data in memory as a series of points and the length of the sample.
Loedown is offline  
Old 02 December 2013, 05:30   #28
mc6809e
Registered User
 
Join Date: Jan 2012
Location: USA
Posts: 281
Quote:
Originally Posted by xArtx View Post
Whether or no Paula can do this and can't do that,
the music we hear in demos is all sample based mod,
with no programatic reproduction of audio, only sequencing of samples.
So at best, we'd hear synthesised samples in some games, maybe...

Can you simply tell Paula to play a sine wave tone at a specified frequency without
providing the sample to play back? So the tone would be continuous?
Or would you have to loop a recorded sample to play it continuously?
While a sample of a sine wave could be obtained by sampling and recording a pure tone, a sine wave can be produced analytically so there is no need to sample one. The CPU is perfectly capable of computing and filling a block of memory with those values needed by Agnus+Paula to produce a sine wave.

Once a block of memory has been filled with one cycle of the computed sine wave, Agnus+Paula can be set so as to play that one cycle repeatedly at a variety of possible frequencies to produce a continuous pure tone until the channel is turned off.

The same thing can be done to produce all the waveforms typically found in old synth chips like the sawtooth waveform, triangle waveform, and square wave waveform. These waveforms are all easy for the CPU to compute and store. There's no need to sample or record them. Once stored, Agnus+Paula can use them to output sounds at a variety of frequencies.

Of course samples could be used as base waveforms and often are. This has given rise to the belief that Agnus+Paula can only play samples. But Agnus+Paula can play arbitrary waveforms that would be nearly impossible to obtain by sampling a real signal.

Paula is even capable of using one channel to FM and AM modulate another. Rarely used, though, since it reduces the number of available voices and it's a simple matter to use the CPU to alter the frequency or volume of a channel while it's playing. There's no need to recompute a new waveform. Paula will automatically output the waveform at the new frequency and volume.
mc6809e is offline  
Old 02 December 2013, 06:05   #29
xArtx
Registered User
 
Join Date: Jun 2013
Location: Australia
Posts: 635
So C might not be your language, but the math would be familiar, if what you are talking about.
Filling the audio buffer at run time using 68000, and sending the buffer to Paula.
or computing the wave only once, and managing Agnus in a manner that repeatedly sends the buffer.

Code:
   double theta = viewController->theta;
    double theta_increment =
        2.0 * M_PI * viewController->frequency / viewController->sampleRate;
 
    // This is a mono tone generator so we only need the first buffer
    const int channel = 0;
    Float32 *buffer = (Float32 *)ioData->mBuffers[channel].mData;
     
    // Generate the samples
    for (UInt32 frame = 0; frame < inNumberFrames; frame++) 
    {
        buffer[frame] = sin(theta) * amplitude;
         
        theta += theta_increment;
        if (theta > 2.0 * M_PI)
        {
            theta -= 2.0 * M_PI;
        }
    }
xArtx is offline  
Old 02 December 2013, 06:54   #30
Loedown
Precious & fragile things

 
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,927
http://www.google.com.au/url?sa=t&rc...57155469,d.dGI

Hardware reference manual, page 137 onwards.
Loedown is offline  
Old 02 December 2013, 09:26   #31
mc6809e
Registered User
 
Join Date: Jan 2012
Location: USA
Posts: 281
Quote:
Originally Posted by xArtx View Post
So C might not be your language, but the math would be familiar, if what you are talking about.
Filling the audio buffer at run time using 68000, and sending the buffer to Paula.
or computing the wave only once, and managing Agnus in a manner that repeatedly sends the buffer.
Buffers are used in systems where an audio stream must be built and written to memory before being output in a stream by the audio device at a fixed rate. Buffering must be done so that the software building the stream can stay ahead of the actual sound output.

That isn't usually how it's done on the Amiga.

Instead, memory holds multiple waveforms, four of which can be output by Paula simultaneously, each at a different rate and volume level.

No buffering of the audio stream is necessary because Paula automatically mixes all four waveforms into two stereo outputs.
mc6809e is offline  
Old 02 December 2013, 09:44   #32
Thorham
Computer Nerd

Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 41
Posts: 2,972
Quote:
Originally Posted by mc6809e View Post
No buffering of the audio stream is necessary because Paula automatically mixes all four waveforms into two stereo outputs.
Whether or not buffering is necessary depends on what you're doing. When playing a normal MOD you don't need it, because you simply load all the samples before playing the mod. When you're generating the samples in real time, then you do need to use multiple buffers so that you can fill one while playing the other. The same applies to playing samples that are too large to fit in memory (for example a WAV ripped from CD).
Thorham is offline  
Old 02 December 2013, 09:48   #33
xArtx
Registered User
 
Join Date: Jun 2013
Location: Australia
Posts: 635
It does seem the amiga is moving small amounts of data more often.
eek, that's a minimal sinewave in the manual there! Three points for each phase,
but I know the right analogue hardware can still do something with that,
and it might just be a simplified example. But I know at 20MHz it's still difficult.

Did I mention I got a Scope? That might be interesting to look at.
xArtx is offline  
Old 02 December 2013, 13:09   #34
daxb
Registered User
 
Join Date: Oct 2009
Location: Germany
Posts: 1,750
I guess the main fact is that sounds (pre-)calculated by cpu or sampled from other source is more or less the same. Both is data somewhere in memory. In opposite of analog synthesizer. How much different a digital synthesizer is I don`t know.
daxb is offline  
Old 02 December 2013, 19:02   #35
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL
Posts: 1,546
Quote:
Originally Posted by daxb View Post
I guess the main fact is that sounds (pre-)calculated by cpu or sampled from other source is more or less the same. Both is data somewhere in memory. In opposite of analog synthesizer. How much different a digital synthesizer is I don`t know.

There is no difference between analog and digital synthesis (i mean they are differences but...) - method can be different for synthesis - analog synthesizers uses mostly subtractive synthesis, where digital synthesizers can use and mostly use different synthesis methods (but they also use subtractive synthesis).

http://en.wikipedia.org/wiki/Synthes...s_of_synthesis

Amiga sound system can use "sample based synthesis" and "wavetable synthesis" . Personally i think that Paula is flexible enough to support with CPU help other type of synthesis (but in limited way).
pandy71 is offline  
Old 02 December 2013, 22:51   #36
commodorejohn
Shameless recidivist
commodorejohn's Avatar
 
Join Date: Jun 2012
Location: Duluth, Minnesota (USA)
Age: 32
Posts: 169
We actually just had a lengthy discussion of this a couple months back on Aorg, so I'll just repeat what I said there:
Quote:
Originally Posted by commodorejohn
Quote:
Originally Posted by freqmax
That means there's more than plain D/A and standard analog filter. So could anyone describe what's special in technical terms?
"More than" a DAC and filter, no. But again, even a system with just a DAC and filter can have its own distinct character, because those components color the sound in their own ways. No electronic component, especially no analogue electronic component, is actually a mathematically ideal implementation of its nominal function. As has been noted, the Amiga's DACs aren't even close to linear - that's going to distort the output. Also, samples are fed in at varying rates and played back without interpolation, which means that any aliasing noise is going to come out at a different frequency, likely well within the range of human hearing, which is also going to color the sound.

And finally, there is not a single analog filter in existence that has a mathematically ideal, linear frequency roll-off. (Which virtually every emulator in existence gets wrong; even reSID was wrongly doing linear roll-off until very recently.) Even the cleaner filters have a curved roll-off, and a lot of them will have different ranges roll off at different curves. Additionally, real-world filters don't just attenuate frequency components, they change their phase relationships. All of this varies wildly from filter to filter, with the result that just about every design is at least subtly different. (A good place to go for further reading on this subject would be installments 4 and 5 of Gordon Reid's excellent Synth Secrets series for Sound on Sound. The man knows his stuff.)

So, really, even with a very simple DAC + filter system, there's any number of factors that can give a distinct character to the sound. It's probably not impossible to emulate them properly, but I don't know of an emulator that does. Many get things basically right, but I'm not surprised that folks like magnetic feel that only the real deal provides the same sound. It's complex.
commodorejohn is offline  
Old 02 December 2013, 23:13   #37
Loedown
Precious & fragile things

 
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,927
Quote:
Originally Posted by daxb View Post
I guess the main fact is that sounds (pre-)calculated by cpu or sampled from other source is more or less the same. Both is data somewhere in memory. In opposite of analog synthesizer. How much different a digital synthesizer is I don`t know.
Digital synths aren't really different in their basic operation, usually just more bits and better DAC with filtering and effects either added prior to the DAC or after them depending. You also have analog modellers which compute the waveform using complex mathematics and heavy processors / DSP.
Loedown is offline  
Old 03 December 2013, 00:05   #38
mc6809e
Registered User
 
Join Date: Jan 2012
Location: USA
Posts: 281
Quote:
Originally Posted by commodorejohn View Post
Also, samples are fed in at varying rates and played back without interpolation, which means that any aliasing noise is going to come out at a different frequency, likely well within the range of human hearing, which is also going to color the sound.
Even with perfect interpolation aliasing will occur if the original signal is sampled below twice the Nyquist limit.

Aliasing of this sort has absolutely nothing to do with Amiga audio hardware in particular. It happens at the moment the original signal is sampled below twice the Nyquist limit without proper filtering and is stored. Before the first byte of the stored sample is output, aliasing has already been introduced into the stored waveform. The Amiga doesn't "resample" this stored waveform. It outputs each and every point of the waveform at a desired rate. No additional aliasing is created.

Reconstruction filters, OTOH, prevent the creation of harmonics that are multiples of the output frequency. These aren't the aliases created by poor sampling of the original signal. Sometime these harmonics are even desirable. A square wave when output contains all the odd harmonics of the fundamental. This gives it a particular, hollow, timbre. A perfect reconstruction filter tuned to the half the output rate would turn an interesting square wave into a boring, but perfect sine wave. We don't always want that.
mc6809e is offline  
Old 03 December 2013, 01:53   #39
commodorejohn
Shameless recidivist
commodorejohn's Avatar
 
Join Date: Jun 2012
Location: Duluth, Minnesota (USA)
Age: 32
Posts: 169
Quote:
Originally Posted by mc6809e View Post
Aliasing of this sort has absolutely nothing to do with Amiga audio hardware in particular. It happens at the moment the original signal is sampled below twice the Nyquist limit without proper filtering and is stored. Before the first byte of the stored sample is output, aliasing has already been introduced into the stored waveform. The Amiga doesn't "resample" this stored waveform. It outputs each and every point of the waveform at a desired rate. No additional aliasing is created.
Yes, definitely. However, my point is that the aliasing noise changes frequency with the frequency of the individual channel. (And since the filter(s) on the output of real Amiga hardware have a fixed cutoff frequency, it may fall entirely within the passband on lower notes.) In the right circumstances, it can even wind up enhancing particular harmonics in the sample. That isn't something unique to the Amiga (it will happen on any digital sound source that uses multiple independent DACs at independent rates for the output channels, such as many '80s sampler keyboards,) but it is something different from what's done to a sound on something like a PC sound card, where everything is resampled to a fixed master sample rate. It's certainly a component of the Amiga sound, even if it's not completely unique to the Amiga.
commodorejohn is offline  
Old 03 December 2013, 02:49   #40
mc6809e
Registered User
 
Join Date: Jan 2012
Location: USA
Posts: 281
Quote:
Originally Posted by commodorejohn View Post
However, my point is that the aliasing noise changes frequency with the frequency of the individual channel. (And since the filter(s) on the output of real Amiga hardware have a fixed cutoff frequency, it may fall entirely within the passband on lower notes.)
Oh certainly, but I think we can agree that the fault lay with whomever performed the original sampling process. So long as the original signal is properly filtered with a low pass filter before being sampled and stored, aliasing isn't a problem.

And the Amiga's scheme is actually pretty robust against aliases that appear in the waveform since the alias frequencies are all pitch-shifted in the same way that any other frequency in the waveform might be shifted as different notes are played.

In other words, the timbre of the sound, including aliases introduced during the original sampling of a signal, stays the same no matter what pitch is chosen for the current note. This is in contrast to sampling a signal at various rates where the the aliases appear at frequencies that are only arithmetically, but not geometrically related, creating a horrible dissonance.

And that to me is why the Amiga audio hardware shouldn't be called sample based. Sample based synthesis draws values from a fixed waveform and when too few points are drawn from the sample, aliasing occurs.

But this never occurs when the Amiga is playing a waveform. It outputs every stored value in the waveform and so new alias frequencies never appear in the output.
mc6809e is offline  
AdSense AdSense  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Shadow of the Beast 2 longplay (Amiga).. much better quality laffer Retrogaming General Discussion 8 06 February 2008 22:09
High quality scans of Amiga CD (32) game covers viddi request.Other 0 21 November 2006 14:24
Better quality graphics?? SHU support.WinUAE 12 09 May 2005 20:34
low quality sound icewizard2k5 support.Hardware 10 14 March 2005 14:05
winuae sound quality test released Toni Wilen support.WinUAE 30 29 April 2002 09:23

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 08:08.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.25869 seconds with 11 queries