Saturday, July 27
Daily News Stuff 26 July 2019
One What Edition
This looks like fun. The A800 won't have enough memory to really do sample-based sound and won't have an analog synth because they're pretty much gone - though there are plenty of Yamaha OPL2 and OPL3 chips floating around on sites like AliExpress for a dollar a piece.
But the H750 has plenty of processing power to fuss about with audio waveforms, even including DSP extensions. And this looks like it's mostly straightforward programming so long as you have the CPU performance.
Basically, as far as I can see, I can start with a table of a sine wave, say 128 16-bit values. The CPU scans through the table at, say, 96kHz, working out the next value to be output based on the selected frequency and a bit of interpolation. Easy.
Then I add an ADSR envelope, which is amplitude modulation of that waveform. Also easy. I can make that a second 128-value lookup table, with a much lower frequency, automatically generated from the specified parameters, and just multiply with the audio sample. That makes it dead easy to implement inverted and multipoint envelopes like DAHDSR (with delay and hold parameters). Once the envelope waveform is generated it's just a bunch of MAC operations.
The next trick that is also easy is to shift a voice between wave tables in a pattern controlled by an LFO - low frequency oscillator - which can be done as yet another wavetable. So at T=1 the voice will be a sine wave, at T=10 50% sine and 50% triangle, and at T=15 100% triangle.
Another way to envision that is to have two primary wavetable oscillators per voice, each with independent amplitude modulation. Same result, but possibly easier to understand.
One What Edition
Tech News
- Sony's Xperia 1 is a 21:9 phone. (AnandTech)
No, I don't know why. Also, I could have sworn there were previous Xperia models.
- AT&T lost a million video customers. (TechDirt)
And not to Netflix. Well, not to Netflix's net gain, anyway.
- When Cory Doctorow is pointing out the holes in your social engineering attempts, it might be time to rethink your life choices. (TechDirt)
- The Pinebook Pro is a cheap and cheerful Arm-based laptop running Linux, ChromeOS (which is Linux) or Android (which is Linux). (ZDNet)
All the details are up on the Pine64 website.
It's based on an RK3399 CPU, with two A72 cores and four A53 cores, with 4GB of RAM and 64 or 128GB flash. I know from experience that that that will run Android just fine, and should be good for Linux and ChromeOS too.
They're also working on a tablet but its specs are mediocre. Better off with an cheap Kindle Fire.
Video of the Day
This looks like fun. The A800 won't have enough memory to really do sample-based sound and won't have an analog synth because they're pretty much gone - though there are plenty of Yamaha OPL2 and OPL3 chips floating around on sites like AliExpress for a dollar a piece.
But the H750 has plenty of processing power to fuss about with audio waveforms, even including DSP extensions. And this looks like it's mostly straightforward programming so long as you have the CPU performance.
Basically, as far as I can see, I can start with a table of a sine wave, say 128 16-bit values. The CPU scans through the table at, say, 96kHz, working out the next value to be output based on the selected frequency and a bit of interpolation. Easy.
Then I add an ADSR envelope, which is amplitude modulation of that waveform. Also easy. I can make that a second 128-value lookup table, with a much lower frequency, automatically generated from the specified parameters, and just multiply with the audio sample. That makes it dead easy to implement inverted and multipoint envelopes like DAHDSR (with delay and hold parameters). Once the envelope waveform is generated it's just a bunch of MAC operations.
The next trick that is also easy is to shift a voice between wave tables in a pattern controlled by an LFO - low frequency oscillator - which can be done as yet another wavetable. So at T=1 the voice will be a sine wave, at T=10 50% sine and 50% triangle, and at T=15 100% triangle.
Another way to envision that is to have two primary wavetable oscillators per voice, each with independent amplitude modulation. Same result, but possibly easier to understand.
The next step beyond that is frequency modulation, where an LFO would adjust not the value from the wavetable but the index used to find the value in the wavetable. With sufficient CPU power, though, that is also easy.
I need to find some more videos to see all the tricks these synths do, but so far I think it's all relatively straightforward. DSP stuff can certainly get hairy, but this doesn't seem to be.
Update: Found what looks like a good series of articles on this. (EarLevel Engineering) The author points out that you need multiple wavetables per waveform to avoid aliasing as you increase the frequency. That means more ROM space, but ROM will be plentiful.
I need to find some more videos to see all the tricks these synths do, but so far I think it's all relatively straightforward. DSP stuff can certainly get hairy, but this doesn't seem to be.
Update: Found what looks like a good series of articles on this. (EarLevel Engineering) The author points out that you need multiple wavetables per waveform to avoid aliasing as you increase the frequency. That means more ROM space, but ROM will be plentiful.
Disclaimer: Bleep bloop.
Posted by: Pixy Misa at
01:35 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 580 words, total size 5 kb.
51kb generated in CPU 0.0124, elapsed 0.1075 seconds.
56 queries taking 0.1001 seconds, 347 records returned.
Powered by Minx 1.1.6c-pink.
56 queries taking 0.1001 seconds, 347 records returned.
Powered by Minx 1.1.6c-pink.