01 December 2013, 04:27 | #21 | |
Computer Nerd
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,749
|
Quote:
|
|
01 December 2013, 09:06 | #22 | |
Precious & fragile things
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,946
|
Quote:
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. |
|
01 December 2013, 12:32 | #23 | ||
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,741
|
Quote:
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:
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 12:49. |
||
01 December 2013, 15:17 | #24 |
Computer Nerd
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,749
|
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. 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. |
01 December 2013, 19:18 | #25 | |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,741
|
Quote:
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. |
|
02 December 2013, 03:32 | #26 |
Registered User
Join Date: Jun 2013
Location: Australia
Posts: 685
|
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? |
02 December 2013, 03:59 | #27 | |
Precious & fragile things
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,946
|
Quote:
|
|
02 December 2013, 04:30 | #28 | |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 372
|
Quote:
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. |
|
02 December 2013, 05:05 | #29 |
Registered User
Join Date: Jun 2013
Location: Australia
Posts: 685
|
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; } } |
02 December 2013, 05:54 | #30 |
Precious & fragile things
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,946
|
|
02 December 2013, 08:26 | #31 | |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 372
|
Quote:
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. |
|
02 December 2013, 08:44 | #32 |
Computer Nerd
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,749
|
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).
|
02 December 2013, 08:48 | #33 |
Registered User
Join Date: Jun 2013
Location: Australia
Posts: 685
|
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. |
02 December 2013, 12:09 | #34 |
Registered User
Join Date: Oct 2009
Location: Germany
Posts: 3,303
|
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.
|
02 December 2013, 18:02 | #35 | |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,741
|
Quote:
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). |
|
02 December 2013, 21:51 | #36 | ||
Shameless recidivist
Join Date: Jun 2012
Location: Duluth, Minnesota (USA)
Age: 38
Posts: 260
|
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:
|
||
02 December 2013, 22:13 | #37 |
Precious & fragile things
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,946
|
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.
|
02 December 2013, 23:05 | #38 | |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 372
|
Quote:
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. |
|
03 December 2013, 00:53 | #39 | |
Shameless recidivist
Join Date: Jun 2012
Location: Duluth, Minnesota (USA)
Age: 38
Posts: 260
|
Quote:
|
|
03 December 2013, 01:49 | #40 | |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 372
|
Quote:
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. |
|
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 21:09 |
High quality scans of Amiga CD (32) game covers | viddi | request.Other | 0 | 21 November 2006 13:24 |
Better quality graphics?? | SHU | support.WinUAE | 12 | 09 May 2005 19:34 |
low quality sound | icewizard2k5 | support.Hardware | 10 | 14 March 2005 13:05 |
winuae sound quality test released | Toni Wilen | support.WinUAE | 30 | 29 April 2002 08:23 |
|
|