Add student example inputs
This commit is contained in:
98
examples/flw/flw.mc
Normal file
98
examples/flw/flw.mc
Normal file
@@ -0,0 +1,98 @@
|
||||
void print_2_signals(float[64] signal1, float[64] signal2)
|
||||
{
|
||||
int i;
|
||||
float j;
|
||||
j = 1;
|
||||
float dec;
|
||||
dec = 1.0 / 16.0;
|
||||
while (j > -0.001)
|
||||
{
|
||||
i = 0;
|
||||
while (i < 64)
|
||||
{
|
||||
if (signal2[i] < j + 0.5 * dec && signal2[i] > j - 0.5 * dec)
|
||||
{
|
||||
print("o");
|
||||
}
|
||||
else if (signal1[i] < j + 0.5 * dec && signal1[i] > j - 0.5 * dec)
|
||||
{
|
||||
print("#");
|
||||
}
|
||||
else if (j < 0.5 * dec && j > -0.5 * dec)
|
||||
{
|
||||
print("-");
|
||||
}
|
||||
else
|
||||
{
|
||||
print(" ");
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
print_nl();
|
||||
j = j - dec;
|
||||
}
|
||||
}
|
||||
|
||||
void make_gate(float[64] signal)
|
||||
{
|
||||
int i;
|
||||
i = 0;
|
||||
while (i < 64)
|
||||
{
|
||||
if (i < 32)
|
||||
{
|
||||
signal[i] = 1.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
signal[i] = 0.0;
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
void follower(float[64] in, float[64] out, float a, float r)
|
||||
{
|
||||
float p;
|
||||
p = 0.0;
|
||||
int i;
|
||||
i = 0;
|
||||
while (i < 64)
|
||||
{
|
||||
if (in[i] > p)
|
||||
{
|
||||
p = a * p + (1.0 - a) * in[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
p = r * p + (1.0 - r) * in[i];
|
||||
}
|
||||
out[i] = p;
|
||||
i = i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
print("Enter Envelope Attack value between 0 and 1 (infinity): ");
|
||||
float a;
|
||||
a = read_float();
|
||||
print_nl();
|
||||
print("Enter Envelope Release value between 0 and 1 (infinity): ");
|
||||
float r;
|
||||
r = read_float();
|
||||
print_nl();
|
||||
print("Resulting Envelope Follower:");
|
||||
print_nl();
|
||||
print_nl();
|
||||
|
||||
float[64] gate;
|
||||
make_gate(gate);
|
||||
|
||||
float[64] envelope;
|
||||
follower(gate, envelope, a, r);
|
||||
|
||||
print_2_signals(gate, envelope);
|
||||
|
||||
return 0;
|
||||
}
|
2
examples/flw/flw.stdin.txt
Normal file
2
examples/flw/flw.stdin.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
0.9
|
||||
0.9
|
21
examples/flw/flw.stdout.txt
Normal file
21
examples/flw/flw.stdout.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
Enter Envelope Attack value between 0 and 1 (infinity):
|
||||
Enter Envelope Release value between 0 and 1 (infinity):
|
||||
Resulting Envelope Follower:
|
||||
|
||||
################################
|
||||
oooooooooo
|
||||
ooooo o
|
||||
ooo o
|
||||
oo
|
||||
oo o
|
||||
oo o
|
||||
o o
|
||||
o o
|
||||
oo oo
|
||||
o o
|
||||
oo
|
||||
o ooo
|
||||
o ooo
|
||||
o ooooo
|
||||
oooooooooo
|
||||
--------------------------------################################
|
Reference in New Issue
Block a user