The Ideas Collection

This forum section was originally created while we were discussing a new, additional engine and sampler format designed from scratch. In the meantime this resulted in our new SFZ2 engine, which is already implemented to a large extent. However this is still the right place for ideas, feature requests, drafts and plans for new engine / format concepts and ideas. We now have 3 sampler engines (Gig, SFZ2, SoundFont 2). Why not having more?
User avatar
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

The Ideas Collection

Post by Consul » Thu Jan 24, 2008 4:09 am

This seemed as reasonable of a place as any to start.

I thought I would collect all the ideas and bullet points off of the mailing list that we have so far. Some of these things concern the new modular engine idea directly, and some are features and capabilities that folks might like to see the new engine capable of. So, first, a few bullets in no particular order:
  • Real-time FFT/convolution (I suppose non-realtime convolution could be listed here, too)
  • Drag-and-drop back and forth from DAW timeline (suggestion courtesy Airon from the list)
  • Some great pitch-/time-shifting algorithms (the Rubber Band library came up here)
  • Disk streaming and memory caching functionality
  • Some kind of simple to use modular framework (which would likely include VST/LV2 wrapping)
  • File format support (wave, bwave, mp3, ogg, etc.)
  • GUI support (which would relate to Airon's drag and drop thing)
  • Scripting engine (I assume this would work by modules allowing scriptable parameters)
Then Bungle presented these:
Bungle (from the list) wrote:1 Ability to load a VSTi as a soundsource that can then be frozen to save CPU

2 Analysis/Resynthesis this has many possibilities not least the ability to load a single cycle wave and have an entire range resynthesised (Synclavier)

3 Loop point sequencer that would allow you to make more than one set of loop points and choose the order in which they play and how many times

4 Waveform Morphing ALA Cyndustries zero oscilator
Then I replied to Bungle:
Consul (from the list) wrote:What if we could do a convolution effect using a single-cycle wave as an impulse? The strength of the effect (wet/dry, basically) could maybe be controlled in real time. I remember reading somewhere that large FFT
windows can be split up into smaller windows and added back together for lower latency at the expense of CPU (at least I think that's what I was reading, anyway). This effect might have to be kept to single-cycle loops, but I bet it would be capable of some interesting sounds.
To which Benno replied that yes, that's basically possible. :)

Bennett Davis added this:
Bennet Davis (from the list) wrote:1) Simulated balanced mono output signal by using stereo out with inverted phases
2) Support for syncing sample loops on a common timeline with independent EGs -- for instruments containing samples of exactly the same length. This would allow for good emulation of some divide-down string synths with subtle phasing effects and "multi-track" instruments like the Optigan.
3) More amplitude EG curves -- Looks to me like Gigasampler only supports linear amp EGs. Exponential curves, etc, would make for better emulations of some instruments. (forgive my ignorance if this is in fact supported already)
4) Non-realtime rendering from a midi input file. Would like to be able to use an external mixer/summer and would be ideal to be able to render to disk using an arbitrary number of "virtual" outputs -- even one .wav per voice! Many physical samplers have oodles of outputs (my old EIII has 16), and there's a benefit to mixing in the analog domain, however tedious.
Geoff Beasley asked for channel meters, a very practical and useful suggestion. :)

Other than my musings on how to handle a GUI which isn't really necessary yet, that's about it. If I missed anything, or anyone wants to add anything, feel free to reply. :) Thank you!
Darren Landrum

songshop
Newbie
Posts: 27
Joined: Thu Jan 24, 2008 2:28 am
Location: Lower Templestowe, Victoria. Australia
Contact:

Re: The Ideas Collection

Post by songshop » Thu Jan 24, 2008 8:58 pm

one idea on the channel meter is perhaps implementing Steve Harris's 'meterbridge' as a "plug-in" so you choose which kind of meter to use; digital.pm,gellyfish etc and not much coding needs to be done. i'm not a coder of course so it might be a stupid suggestion, anyway just a thought ;)

g.

User avatar
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

Re: The Ideas Collection

Post by Consul » Thu Jan 24, 2008 9:45 pm

I'm not much of a coder either, but I'm hoping diving in to a project like this will improve my skills. ;)

Something I've been thinking about, is if everything, from the streaming engine to the filters, is going to be plug-ins, then really all we're building is another JackRack-type application, but with the ability to be hosted as a plug-in itself. However, we can also create a framework that allows those modules to interact in ways they normally could not by themselves. So, with a scripting engine as part of the framework, as long as each module exposes all of its modifiable parameters, you could then write scripts that can do things like change loop points of samples dynamically in just about any conceivable way, swap out impulse response files on the fly, or what-have-you.

Of course, this is just how I imagine a scripting engine being integrated.
Darren Landrum

lowkey
User
Posts: 69
Joined: Thu Jan 24, 2008 2:11 am

Re: The Ideas Collection

Post by lowkey » Fri Jan 25, 2008 4:59 am

+1 :D

That's what I'm really wishing for. Having just one instrument to learn inside out would be so cool. :shock:

Would these be possible?

Using an audio input as an oscillator? Being able to feed ReNoise through LinuxSampler and use Reaper to record the results would be seriously powerful.

Hosting audio editors inside LinuxSampler so that editing isn't as disruptive as opening up an editor, patching it in etc?

Looping like X2's Twista loop.

Thank you Dudes :D

Alex
Moderator
Posts: 316
Joined: Wed Jan 23, 2008 9:08 pm

Re: The Ideas Collection

Post by Alex » Fri Jan 25, 2008 11:02 am

lowkey wrote:+1 :D

That's what I'm really wishing for. Having just one instrument to learn inside out would be so cool. :shock:

Would these be possible?

Using an audio input as an oscillator? Being able to feed ReNoise through LinuxSampler and use Reaper to record the results would be seriously powerful.

Hosting audio editors inside LinuxSampler so that editing isn't as disruptive as opening up an editor, patching it in etc?

Looping like X2's Twista loop.

Thank you Dudes :D
Lowkey, great to see you here!

Alex.

lowkey
User
Posts: 69
Joined: Thu Jan 24, 2008 2:11 am

Re: The Ideas Collection

Post by lowkey » Fri Jan 25, 2008 1:56 pm

Thanks Alex :D

Your insane set up compelled me to join up lol

Cant wait for the modular stuff to come in. It'll fun to see if I can break it hehe.

sbenno
Developer
Posts: 80
Joined: Wed Jan 23, 2008 8:30 pm

Re: The Ideas Collection

Post by sbenno » Fri Jan 25, 2008 3:24 pm

Hi all, thanks everyone for your informative posts.
BTW Darren your post on LAD about DSP algorithm prototyping is interesting, it would be nice
if you could summarize it below (links to those packages like clam etc along with a small description etc).
These tools will certainly come handy at some point when implementing the modular engine.
thanks again,
Benno

User avatar
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

Re: The Ideas Collection

Post by Consul » Fri Jan 25, 2008 6:23 pm

I can do that.

I had asked the question, "what are the best ways to rapidly prototype a DSP algorithm?" I got a lot of responses, the best of which are:
  • CLAM - http://clam.iua.upf.edu : This allows visual prototyping and creation of plug-ins, not unlike Reaktor. A new version is imminent.
  • Faust - http://faust.grame.fr/ : A functional language designed especially for DSP. I like this one because it is functional (I can think more like a mathematician), and because its compiler outputs a C++ class, optionally wrapped in GUI and interface code, such as VST, LADSPA, or JACK. Faust can interface with CLAM via LADSPA.
  • Csound - http://csounds.com/ : A very mature DSP and synth-building language. I've played with this one before.
  • Pd - http://puredata.info/ : A lot of votes came up for this one, but to tell you the truth, I've tried out Pd several times, and was never able to get it to make a sound. That could just be me, though. It's a graphical DSP-synthbuilder in the same vein as Max/MSP.
Of those, I think I'm most excited about CLAM and Faust. Others that were mentioned:
  • Common Lisp Music - http://ccrma.stanford.edu/software/clm/ : I know very little about this one. Maybe someone can educate us further on it.
  • ChucK - http://chuck.cs.princeton.edu/ : A synthesizer/DSP language, designed to be fairly easy to dive into. There were reservations about this one on the list, as it does have a few issues, CPU-inefficiency being one (the software creator fully acknowledges this flaw).
That's about it!
Darren Landrum

User avatar
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

Re: The Ideas Collection

Post by Consul » Fri Jan 25, 2008 9:12 pm

D'oh! I can't believe I forgot these:
  • Key-switching
  • Key latching
Again, though, I imagine these can be implemented in a quite custom fashion in the scripting engine. Still, I'm imagining the making of a didgeridoo library that will require both of these features, with multiple cross-faded loops controlled by the key-switching. I think it could work!
Darren Landrum

sletz
Newbie
Posts: 5
Joined: Sat Jan 26, 2008 1:12 pm

Re: The Ideas Collection

Post by sletz » Sat Jan 26, 2008 1:21 pm

Concerning Faust, Julius Smith, a "master" of DSP seems to like it very much, see:

http://ccrma.stanford.edu/~jos/filters/ and http://ccrma.stanford.edu/realsimple/fa ... rings.html.

Faust is currently limited to temporal based DSP (not multi-rate or fft..) but it would be interesting to see what part of LS could be expressed as Faust programs. Yann Orlarey is working very hard to make the system compile better optimized code, by allowing vector based code to be produced (for SSE or Altivec architectures), or even using OpenMP kind of approach.

Stephane

Post Reply