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