Hello,

to introduce myself a bit, I'm a piano and flute player and a music composer and I've dedicated a lot of my theoretical work to the topic of tunings and temperaments. both historical and the newly discovered ones. In the past, I was writing small pieces of code for the old QBasic for DOS. That allowed me to do highly non-standard things which I was unable to do by any other means, particularly things likecreating or manipulating sound data in some unusual ways. I'm completely new to Faust and I was trying to find some info on how I could use it in my work. But there's a lot of things which I absolutely don't understand when I try to read the documentation.
I hope someone here can answer my questions.

#1. Even though there's also a Windows version of Faust on the website, all the instructions that I've found talk about using Faust on a Mac or on Linux. Are there some possible ways documented on how Faust can be used on Windows? When I download the installer and install Faust locally, I'd like to be presented with some examples on what I can do after completing the installation. Otherwise it's a bit like saying: "Oh yeah, let's build a Windows version just because Windows users want it; and that deals with it."

#2. If my understanding is correct, it seems that the task of the "faust.exe" is to take my input text file written in Faust and turn it into an output text file written in C++ or another language. That is, one source code is converted to another source code. From that, I assume I would then have to have something like a C++ compiler and only then could I turn my code into something that I could actually execute. So then there would be two conversions; the one from Faust code to C++ code would be done by the "faust.exe" itself, and the one from C++ code to an executable would then be done completely separately and would require me to install a C++ compiler first. Is that how it's supposed to be used?

#3. Al the examples I've read so far seem to be targeted on sending the processed signal directly to the sound card. Nowhere did I ever find any explanation of what I should do if I want to only write my processed audio into a file, without actually playing it. Honestly, 99 % of what I'd like to do is a matter of taking one or two input sound files, doing some operations on that data and writing the required result to an output file. Even a non-specialized language like QBasic for DOS didn't require me to read lods of documentation before I knew how to read or write arbitrary binary data. If some relevant explanation is contained somewhere in the Faust documentation, where do I find it?

#4. The examples given in the tutorials (at least those I've read) always suggest trying the code online. What I need is something completely different -- i.e. doing it all locally so that I can try out my code even in situations where I don't have internet connection available. Is this kind of usage being documented somewhere so that I can get an idea how I should do that?

#5. If I want to learn a completely new programming language, I'd love to read some examples that don't assume importing the standard Faust libraries. If I want to get an idea of how the unfamiliar programming language works, I think I should be informed on how I would code this or that by myself, without using any shorthand strategies whose details I'm unable to get to. So far, the only example that met this requirement at least partially was the section on making a sine oscillator from scratch. Essentially everything else that I've found was always a lot of keywords being substituted for some longer pieces of code. This is a bit as if I wanted to translate something from Czech to English by running one full paragraph of text through an automated translator without caring about the meanings of the words. My question is: Which steps would you recommend for me if I want to know more about doing everithing by myself, without needing the Faust libraries in the first place? I feel much more comfortable writing a lot of meaningful code rather than having a bunch of macro keywords that don't seem to make the understanding of the language particularly intuitive.
Let me give you an example from elsewhere.
The sound editor called GoldWave offers something called the "Expression Evaluator". After I know what the definition is of "pi" and "t" and after I know that GoldWave allows me to type in something like "sin(2*pi*f*t)", I don't need to read the documentation to be able to write something like "cos(2*pi*f*t)/10^t" or "sin(2*pi*f*2^(t/2))" or similar. If this example of "sin(2*pi*f*t)" were replaced by a dedicated macro keyword, then I would have to read the documentation for doing even a tiny adjustment to the internal maths that's involved in it.
Another example:
Let's say I want to do something like a linear frequency shifter (not a pitch shifter) whose delay could be determined up to a single sample accuracy and whose output would be fed back to the input to make a frequency-shifting echo effect. However, to do a frequency shifter, I need a Hilbert transform, and many specialized environments offer an IIR filter for doing this. The corresponding IIR filter introduces a half-sample delay. Because I want the delay to always be an integer number of samples, I'm willing to forget about IIR and rather make a FIR filter, even if I have to write the entire thing myself, just to avoid the half-sample delay. And again, I'm repeating that this would all be intended for post-processing purposes -- i.e. the input file would contain the dry sound and the output file would contain the same sound with the frequency-shifted echoes added.

#6. The documentation seems to give a lot of significance to the Faust online IDE. Now I have to admit that I'm one of the users for whom the IDE would probably be of little use. Honestly, I'm blind, which means that I use speech synthesizers for reading everything. In this regard, the best way for me to write code is to launch any word processor of my choice and write the whole thing there. For that purpose, it would be excellent if I could actually try the example code by saving it into a file and then just doing whatever Faust allows me to do with that file. And for that purpose, it would be excellent if a dedicated section of the documentation would include some steps like: "After saving the file on a Mac, you can do [such and such things to try it out]. After saving the file in Windows, you can do [such and such something else]. After saving the file in Linux, you can do [such and such another thing]." Does this kind of explanation exist there somewhere?

Thank you in advance.

Petr



--
Tento e-mail byl zkontrolován na viry programem AVG.
http://www.avg.cz



_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to