Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Thu Jan 13, 2011 5:48 pm Post subject:
I've made progress with a new project, a flute model based pipe organ, 16 flute models that run in parallel. I finally got the 16 voice MIDI controller to work properly. No sound yet, lots of work still to do - mostly getting the patch editor to send separate flute pipe parameters to each pipe. I have 4 boards that this will run on, so potentially 64 pipes if the thing actually works.
I found a way to speed up slow pipes
EDIT ADDED 2011-01-21:
Fixed broken ADSR, fixed numerous "it ain't gonna work like that" things. I get sound, but it isn't right. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Tue Jan 25, 2011 6:48 pm Post subject:
Oh boy - sound - not totally right, but way better.
Not sure yet why this mattered, but I had been using a single port RAM to implement the bore and jet waveguide delay lines. I decided to try a dual port RAM and see what would happen. Well, now, I _can_ get a flute sound, but it's weird what I have to do to get it... I have to hit many keys, and I can hear lots of pipes starting up and then there's distortion, but if I pick one of the keys I hit and hold it while releasing the others, I hear an obvious flute pipe. So I still have some work to do but apparently, the design likes a dual ported RAM... Smells like a timing problem...
This is not a plea for help, just venting my frustration and exclaiming my glee that now at least it appears I'm close to a flute-pipe organ. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Thu Jan 27, 2011 7:21 am Post subject:
The timing issue is resolved, the proper ADSR now turns on when keys are pressed. I get polyphonic flute-organ sounds now.
Next step is to "tune" the pipes - they are already correctly tuned for pitch, but need enhancement to get them resonating faster. The enhancement is built into the design, but it needs to be configured individually for each pipe. I will also try lowering the sample rate from 100KHz to 50KHz to get sounds an octave lower.
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Wed Mar 02, 2011 12:28 pm Post subject:
JLS wrote:
Hi Scott
PhLUTe sound demo is very nice is possible post source code for Spartan-3E ?
Many thanks
Well, I'm not even close to satisfied with it. The startup time for a pipe is still too long and improving it at all is a very tedious task of parameter adjustment. This is the third time I've revisited this issue, so in a word, I'm not proud it at all.
Neither the phLUTe nor the Pan_phLUTe are working to my satisfaction, which is why I haven't produced any music with it.
The phLUTe (not Pan) also suffers from a problem documented by Perry Cook, that being when the bore length is changed to change the pitch of the instrument, a transient is introduced that sounds very unnatural. The Pan_phLUTe is made of several pipes, where the length remains constant and it is intended to be played like an organ - but the startup time is still an issue, though somewhat better, but still too long to be musically useful (in my opinion).
I have scoured the internet to see if anyone else has been able to fix these problems, but I've found nothing.
The design is being developed on the Spartan-3E board... Just not ready for "prime time". -- I know --
I've also been considering another way to synthesize a flute sound which is far more common and would be much easier to implement - that would be a simple additive synth that uses sine waves. A flute produces at most 3 harmonics (a fundamental, octave above, octave+5th above and 2 octaves above). This would easily fit in the Spartan-3E but would require research into how flutes tone evolves from startup to steady state and to simulate overblow and "airy" quality by including white noise, possible passed through a bandpass filter like my tonal noise synth. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Tue Aug 30, 2011 3:32 pm Post subject:
I have worked out some math and did some test trials of a "new" idea.
I wanted to see if I could use one of my smaller FPGAs to make a Karplus-Strong harp. The current instrument I have for the Spartan-3E Starter Kit plays only in 8 note polyphony.
This is not new - but it is new for me in terms of making an implementation that is well tuned and doesn't suffer from noticable timbre change from string to string.
My previous attempts at Karplus-Strong systems have always been with integer length waveguides. I have now tested a new system that uses a much lower sample rate than previous designs - 48.0 kHz as opposed to 820 kHz. The lower sample rate allows the waveguides for a given pitch to be much shorter - but as I discovered in earlier experiments, the accuracy of tuning becomes problematic as the waveguide length is made shorter. Shorter string lengths means more will fit into a given amount of RAM.
To compensate for that, I included a fractional delay filter or a first order LaGrange interpolator. This is a tiny FIR filter (kernel length = 2), where the kernel parameters are used to interpolate over a one sample length time frame. This has allowed far greater tuning accuracy using much shorter waveguides than when integer lengths are used. I calculate that I can get 60 strings out of a Spartan-3E Starter Kit FPGA - that's 60 string that can all resonate at once - meaning the synth will be not 8 note poly, but rather 60 note polyphonic.
Internally, the design will have a structure similar to Xarp-56 (and I may limit the design to 56 strings to make it easier to use the Xarp-56 code).
The waveguides will consume 18 of the 20 block RAMs.
My tests included listening comparison between the plucked waveguide output and a sinewave of the concert tuned pitch. The system does very well and there is no in-your-face "hey - that string sounds different" thing.
The instrument's fundamental frequency range will be from 46.249 Hz to 1396.913 Hz. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima Last edited by JovianPyx on Tue Aug 30, 2011 3:47 pm; edited 3 times in total
Joined: Sep 20, 2005 Posts: 272 Location: Tucson, AZ, USA
Posted: Tue Aug 30, 2011 3:36 pm Post subject:
Hope I'm not picking nits, but do you mean 48 kHz instead of 48000 kHz? _________________ Once you start down the modular path, forever will it dominate your destiny!
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Mon Sep 05, 2011 8:48 pm Post subject:
I have a working Spartan-3E (500) design.
It has 61 strings and uses fractional delay filters for fine tuning the waveguide lengths.
The fractional delay filters I used are first order lagrange interpolators. This is a filter (FIR lowpass, kernel length=2), but it also interpolates between the last and second to last elements of the delay line. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima Last edited by JovianPyx on Tue Sep 06, 2011 6:11 pm; edited 2 times in total
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Tue Sep 06, 2011 6:05 pm Post subject:
Here is a chromatic scale demo with the current hardware. Sustain is down. Mod wheel is at maximum (meaning minimum integrator leakage) and maximum sustain.
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Wed Sep 07, 2011 4:47 pm Post subject:
Since I have 4 of these boards, I decided to try something ... I used two boards and detuned them from each other by changeing the sample rate slightly. The result is interesting in my opinion. The piece is the same sequence. One is panned left, one is panned right.
This was just for fun, so please enjoy!
Accretion_Dual_Xarp-61.mp3
Description:
Accretion - using two Xarp-61 instruments, in stereo.
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Sat Sep 10, 2011 12:10 pm Post subject:
Thanks JK... But I'm sad to say that the instrument is flawed. There's a pitch bug at least and I've got improvements I'm adding.
I will post a ver_e that will contain corrections and additions.
The pitch bug causes notes to be sharp as one goes up the scale.
There is also a pitch ROM data problem that causes the lowest C key to play a C# with that error carried up through the note range.
Lastly, the lowest octave is practically useless.
ver_e will correct the above problems and I will be doubling the sample rate to 96 kHz using some parallelism. This will put the range of the instrument in a more useful place. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
The improvements were made in the form of bug fixes and a redesign of the instrument's internal structure. The previous version implemented a single 61 string harp processed at 48 kHz sample rate. Reorganization of RAM resources as dual ported RAM allowed for a 2 harp system with the harps operating in parallel. This allowed for an increase in sample rate to 96 kHz and a rise in pitch of exactly one octave.
EDIT ADD: The code package also contains a VB.NET (Express Edition) project for the patch editor (which is required). Note that the patch editor was created by modifying another patch editor and there are tabs and functions that do nothing. The first two tabs work, and in the last tab, the MIDI channel control works. Sorry - I threw it together... _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
I don't understand much of this thread, but I can recognize a great tune when I hear one! _________________ Revenge is a dish best served with a fork... to the eye
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Mon Apr 09, 2012 7:56 pm Post subject:
I've revisited an older physical model design - PolyDaWG-8 - an 8 voice Karplus-Strong synthesizer on a Spartan-3E Start Kit Board.
This instrument is 8 voice polyphonic implementing 8 variable length Karplus-Strong strings.
The "strings" are digital waveguides - digital delay lines fed to a simple lowpass filter and then back into the input of the delay line. There are no oscillators or envelope generators in this synthesizer. All of the amplitude and timbre dynamics occur as a natural result of the mathematics (arithmetic really) involved.
The original design came into being well before I knew how to connect to the DDR SDRAM on the board. The demo attached uses 2 of these synths and each has the DDR SDRAM implementing echo/delay (very short duration in the demo).
The two instruments are tuned slightly differently, so you will hear the phasing between them (in stereo). The demo tune is basically the same one I used for this instrument earlier, but I've enhanced the piece a bit.
I plan to attempt something like this in a dsPIC (actually, more than one).
PolyDaWG8-4.flac
Description:
PolyDaWG-8 Demo using two instruments tuned slightly differently and in stereo
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum