A draft whitepaper of my parameterization idea

Everything and anything, but nothing about the LinuxSampler project.
User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: A draft whitepaper of my parameterization idea

Post by dahnielson » Sun Mar 30, 2008 2:48 am

My Latin isn't up to shape, but isn't sylvestris regularly associated with "wild" things in taxonomies? Felis sylvestris etc.
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: A draft whitepaper of my parameterization idea

Post by dahnielson » Sun Mar 30, 2008 3:26 am

Well, we can always call it Pudel. :D
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

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

Re: A draft whitepaper of my parameterization idea

Post by Consul » Sun Mar 30, 2008 3:39 am

We can call it Sylvester, as in Sylvester and Tweety. :D I don't see what's wrong with Sylvestris, though. So far, this whole brainstorm has been rather wild. ;)

Anyway, never mind that for now. What's the first thing that needs to happen to implement a visual editor for FAUST? I guess we need to decide what current code bases and libraries to use. I think FlowCanvas is an obvious choice for the interface.
Darren Landrum

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: A draft whitepaper of my parameterization idea

Post by dahnielson » Sun Mar 30, 2008 12:34 pm

Regarding the name: Something with Kern? Which I find brilliant since it combine the literary reference of Pudel and Faust with your desire for something "nuclear". :D But you're right, the name should be our least concern at the moment.

My proposed plan to start practical experimentation:

  1. Learn to code FAUST manually.
  2. Make it possible to compile FAUST into LV2.
  3. Manually code proof-of-concept synth in FAUST compiled as LV2.
  4. Create file format (XML-based) for the Visual Programming Editor ("VPE") to generate and parse and that the .dsp code will be generated from.
  5. Create the VPE to author the block diagrams (XML-file).
For each step we will learn if we chosen the right path or not for what we intend to create.

Agree with you on FlowCanvas, it fits the bill.

BTW, brainstorming is supposed to be wild. A big no-no is to start off a session with the words: "So, does anyone have any good ideas?" which will make everyone self-censor themselves. Brainstorming isn't about good or bad ideas, it's about ideas, period. So this IMHO has been a good one.
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

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

Re: A draft whitepaper of my parameterization idea

Post by Consul » Sun Mar 30, 2008 3:12 pm

dahnielson wrote:Learn to code FAUST manually.


I'm working on that one. I'm used to math functions and functional notation, so I'm actually finding the concept behind FAUST fairly easy to follow.

Make it possible to compile FAUST into LV2.


This would involve making a new wrapper. I took a look at the various other wrappers included in FAUST, but I didn't try to analyze how they work. I'm sure the Grame guys would love for us to make an LV2 wrapper, though. :) Actually, we might want to make sure they aren't already working on one. I'll be joining their mailing list, so I can find out.

Manually code proof-of-concept synth in FAUST compiled as LV2.


If we can nail one and two, this one should be easy enough.

Create file format (XML-based) for the Visual Programming Editor ("VPE") to generate and parse and that the .dsp code will be generated from.


This is one place where my brain lets me down. I suppose our file format would operate in a similar way to Reaktor's .ens (ensemble) files. Well, I'm here to learn, after all.

Create the VPE to author the block diagrams (XML-file).


Hopefully, by the time I get through the first four, this one will be a lot easier.
Darren Landrum

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

Re: A draft whitepaper of my parameterization idea

Post by Consul » Sun Mar 30, 2008 3:34 pm

I wonder how much of this we could do in Python? It won't be handling any of the real-time stuff, after all. :mrgreen: Drawing networks, controlling compilers, dynamically loading compiled objects, drawing GUIs... Do we really need C++ for that?
Darren Landrum

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: A draft whitepaper of my parameterization idea

Post by dahnielson » Sun Mar 30, 2008 3:51 pm

Consul wrote:I wonder how much of this we could do in Python? It won't be handling any of the real-time stuff, after all. :mrgreen: Drawing networks, controlling compilers, dynamically loading compiled objects, drawing GUIs... Do we really need C++ for that?


Was thinking along the same lines myself.

http://xkcd.com/353/
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

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

Re: A draft whitepaper of my parameterization idea

Post by Consul » Sun Mar 30, 2008 7:21 pm

dahnielson wrote:http://xkcd.com/353/


Hehe. That guy always hits the nail on the head.

Anyway, one thing I really want to build in to the core functionality it the ability to oversample processing blocks. FAUST itself doesn't have the inherent ability to do that, but Omnibus could handle it by wrapping the block(s) to be oversampled around a nested for() loop with the needed interpolation and decimation filters.

That brings us to how our FAUST blocks are going to communicate with Omnibus. Because FAUST makes a class with a set of five functions, I'm assuming there's a way to call those functions from the outside world with the desired parameters. That way, we can use them with our "control signals as audio signals" paradigm, which FAUST actually already follows in its own way (every piece of data is a signal in FAUST).
Darren Landrum

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: A draft whitepaper of my parameterization idea

Post by dahnielson » Mon Mar 31, 2008 12:05 am

Consul wrote:
dahnielson wrote:http://xkcd.com/353/


Hehe. That guy always hits the nail on the head.

Anyway, one thing I really want to build in to the core functionality it the ability to oversample processing blocks. FAUST itself doesn't have the inherent ability to do that, but Omnibus could handle it by wrapping the block(s) to be oversampled around a nested for() loop with the needed interpolation and decimation filters.

That brings us to how our FAUST blocks are going to communicate with Omnibus. Because FAUST makes a class with a set of five functions, I'm assuming there's a way to call those functions from the outside world with the desired parameters. That way, we can use them with our "control signals as audio signals" paradigm, which FAUST actually already follows in its own way (every piece of data is a signal in FAUST).


Agree. We don't have to make vanilla LV2. We can stuff it with as much support code we need outside the FAUST code. From what I understand everything inside the FAUST using BDA need to be written in FAUST from scratch. (Seriously, I need to study FAUST more.)

PS. Randall Munroe was invited to speak at Google some time ago, think it's up on YouTube or Google Video somewhere. BTW, I enjoyed this eulogy to Gary Gygax previously this month.
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

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

Re: A draft whitepaper of my parameterization idea

Post by Consul » Mon Mar 31, 2008 12:38 am

I've studied the output source code of FAUST, and it looks like it might embed its own inner loop, rather than being designed to be part of another, larger inner loop. I also can't figure out how to tweak any parameters (sliders, basically) externally other than with the generated GUI. I'm going to ask about these questions on the FAUST dev list, if you don't mind. Seeing as this conversation is public, I don't suppose it matters too much. ;)
Darren Landrum

Post Reply