Forum: FPGA, VHDL & Co. CPLD als Top Octave Generator nutzen?


von Kon Lion (Gast)


Lesenswert?

Hallo,

gleich vorweg geschickt die Ankündigung, dass ich nicht allzuviel Ahnung 
im Bereich CPLD- Programmierung habe. Vielleicht kann mir ja bei meinem 
Vorhaben dennoch jemand helfen oder mir die Idee des Vorgehen 
vermitteln:

Ich würde gerne den TOG S50240 mit dem CPLD MAXII EPMT100 simmulieren. 
Eine Inputclock von 2MHz wird in 13 Ausgangssignale mit 50% duty cycle 
geteilt (/451, /426, /402, /379, /358, /478, /239, /253, /268, /284, 
/301, /319, /339).

Soll ich einfach versuchen 13 Divide-by-N counter zu programmieren oder 
gibt es eine effizientere Art? Ich würde Quartus als Programm nutzen, 
dann als Verilog schreiben oder Blockdiagramme nutzen, was ist für den 
Anfang der einfachere Weg?

Dann danke ich schon mal, lg

von Audiomann (Gast)


Lesenswert?

So ein Thema gab es hier vor Jahren bereits. Finde es aber nicht. Da 
wurden genau diese Frequenzen behandelt. Irgendeiner hatte sogar noch 
einen besseren Vorschlag für die Teiler. Musst mal suchen.

Zur Frage:

Ja, das geht natürlich. Das sind 12 Zähler. Ob das musikalisch Sinn 
macht, ist eine andere Frage, weil die entstehenden Frequenzen nicht 
perfekt sind.

Passend zu Deinem Thema wäre vielleicht das hier:
Beitrag "Musik aus dem CPLD ;-)"

Was ich gerade sehe: Warum sind es 13 Teilerfrequenzen?

von ./. (Gast)


Lesenswert?

> So ein Thema gab es hier vor Jahren bereits.

Ja, da hatte jemand ein kaputte Orgel.

Mit einem kleinen Cyclone II geht es natuerlich ohne Probleme.
Sogar mit noch wesentlich perfekteren Teilerverhaelnissen.
In VHDL geht das recht uebersichtlich zu beschreiben.

Bei einem CPLD koennten es von den verfuegbaren Flip-Flops
zu wenige geben. Da wuerde ich vorher nochmal durchzaehlen
und mit dem DB vergleichen.

von J. S. (engineer) Benutzerseite



Lesenswert?

Ich würde auch einen FPGA vorziehen, es sei denn, es braucht ein 
bestimmtes Gehäuse. Die Originalbausteine sind ja teilweise erschreckend 
teuer. Es gibt bekanntlich kleine Platinen mit DIL-Füsschen und 
aufgelötetem Chip, die als universelles replacement fungieren.

>Soll ich einfach versuchen 13 Divide-by-N counter zu programmieren oder
>gibt es eine effizientere Art?

Ja, Ich würde hier z.B. keine DDS verwenden, wenn da nicht Dithering und 
Werteinterpolation verwendet wird, bzw. reine Sinuswellen erzeugt werden 
sollen, weil sich das sonst nicht gut filtern lässt. Das erzeugt 
unharmonische Spektrem, speziell beim Phasing etc.

Besser ist es tatsächlich, eine stärker verstimmte Frequenz hinzunehmen 
und dafür ein sauberes Primärsignal zu haben.

Als Anregung:
http://www.96khz.org/htm/pldmodularorgan.htm

Die Stimmen kann man frequenzmäßig im PLD sogar besser hinbekommen, als 
das über TOS mit 2MHz und den o.g. Teilern möglich ist. Beispiele im 
Bild. Unter 10ppm Abweichung bei der gewählten Taktfrequenz (24 fache 
S/PDIF @ 192kHz).

von Nils P. (torus)


Lesenswert?

Nur mal so in den Raum geworfen:

Die LPC17XX Microcontroller von NXP haben vier Timer mit jeweils vier 
Countern und Toggle Outputs. Das macht 16 Divider Ausgänge, die komplett 
in Hardware laufen.

Clock Input kann entweder intern oder über externe Clocks laufen.

D.h. so einen Top Octave Divider könnte man komplett in der Periphery 
des Microcontrollers implementieren. Die CPU muss nur die Pins 
konfigurieren, die Teiler und den Timer Mode setzen und kann dann in den 
Deep Sleep.

Aber klar, in einem etwas größeren CPLD ist das auch schnell gemacht.

von A. F. (chefdesigner)


Lesenswert?

Nils P. schrieb:
> Die LPC17XX Microcontroller von NXP haben vier Timer mit jeweils vier
> Countern und Toggle Outputs. Das macht 16 Divider Ausgänge, die komplett
> in Hardware laufen.

... und die bieten darüber hinaus noch die Option, die Timer 
umzuschalten, um die Frequenz ganz genau zu bekommen. In jedem 
Gitarrenstimmgerät wird das so gemacht.

von Michael W. (Gast)


Lesenswert?

Kon Lion schrieb:
> Eine Inputclock von 2MHz wird in 13 Ausgangssignale mit 50% duty cycle
> geteilt (/451, /426, /402, /379, /358, /478, /239, /253, /268, /284,
> /301, /319, /339).

Hallo, ist Dir oder sonst jemandem zufällig bekannt, woher diese Zahlen 
kommen und warum sie mit ausgerechnet diesem Takt betrieben werden 
müssen?

von foobar (Gast)


Lesenswert?

Der Takt ist 2.00024MHz. Das durch die Teiler und nochmals durch ne 
2er-Potenz ergibt ne gleichstufige Stimmung. Z.B. 2000240Hz/284/16 = 
440Hz = a. Die Teiler selbst sind im Abstand von 2^(1/12), also 
239*2^(i/12) für i=0..12.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Markus W. schrieb:
> Hallo, ist Dir oder sonst jemandem zufällig bekannt, woher diese Zahlen
> kommen und warum sie mit ausgerechnet diesem Takt betrieben werden
> müssen?
Ich würde sagen, das sind einfach die tiefst möglichen Zahlen, die ein 
einigermaßen akzeptables Ergebnis liefern. Diese bringen unter 2 Cent 
Abweichung in der Tonlage und eine Standardabweichung von <1%. Das 
nächst bessere Zahlenset wäre ein minimaler Faktor 301 danach Faktor 
353. Das wird tendenziell immer besser, es gibt aber Bessere und 
Schlechtere.

Um die Werte an sich zu beurteilen, hatte ich mal eine DB programmiert, 
die die Werte alle durchspielt und nach Güte sortiert. Die Güte ist 
dabei der Lageoffset gegenüber dem absoluten Ton und zudem die 
Standardabweichung, also die Homogentität der Töne. Diese bestimmt - 
unabhängig von der Lage - die Qualität der Akkorde. Man könnte z.B. auch 
die absolute Lage ignorieren und eine möglichst hohe Homogenität 
anstreben. Anders herum könnte man nach einer optimalen Taktfrequenz 
suchen.

Wenn man sich die Werte für die 239 ansieht, sind die eigentlich recht 
gut, bis auf den Ton Nummer 7, das wäre allerdings das Fis in C-Dur und 
das wird kaum benötigt. Etwas anderes ist es, wenn man in einer anderen 
Tonart spielt.

Die 2MHz werden auch hier im Betrag genannt:
Beitrag "Re: FPGA als digitaler Oszillator?"
Dort sind es auch die 2,00024

Wie das real in den Orgeln jeweils gemacht wird, weiß ich nicht. Ich 
habe für mein PLD-Orgel damals das Bestmögliche aus dem jeweils 
gegebenen FPGA-Takt herauszuholen versucht. Welchen Takt man dabei 
verwendet, ist natürlich willkürlich.

: Bearbeitet durch User
Beitrag #5514287 wurde vom Autor gelöscht.
von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich habe mir das nochmal angesehen und musste feststellen, dass ich für 
eine C-Dur-Stimmung auf 1,682 MHz herauskomme. Das hatte ich auch bei 
der Tabelle zugrundegelegt, kann ich mich erinnern.

Bei den angegebenen 2,00024 MHz errechne ich einen Lageoffset für die 
gleichstufige Stimmung zu 0,5%. Besser wäre meines Erachtens eine 
Frequenz von 1,999360 MHz. Das würde das C exakt treffen, liegt halt von 
den Fehlern nicht mehr so balanciert.

Was man auch sieht: Der TOS-Chip produziert bei der Normfrequenz zweimal 
das Dis, wozu auch immer. Ich bevorzugte daher 1,6MHz von oben. Die 
lassen sich über 3 Ecken auch aus einer PLL gewinnen und zu 126,1 MHz 
umbauen. Die sind genau das 75fache des Taktes und zugleich ein 
Vielfaches von 48kHz. Damit kann man so einen Chip emulieren.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier ist noch was Nettes:

Basisteiler 150, normiert auf 7040Hz für C, Takt = 1,056MHz.

Das Besondere ist, dass sich die gerundeten Teiler von der 
gleichförmigen Stimmung hin zur reinen Stimmung bewegen. Die Teiler für 
F und G passen exakt für C-Dur und für das E nimmt man einen Wert 
geringer und liegt fast dran.

Das Schöne ist auch, dass hier direkt auch ein 96kHz Takt heraus kommt: 
1056/11 = 48000*2.

Für 873 klappt es sehr gut mit dem digitalen S/PDIF-Takt für 48kHz.

von Kon Lion (Gast)


Lesenswert?

Es ist nun etwas Zeit vergangen - andere Dinge hatten Priorität - aber 
ich habe versucht der Diskussion zu folgen. Vielen Dank für den Input!

Ich verstehe die grundlegenden Konzepte der Tonerzeugung und 
Frequenzteilung via Flip-Flops, wie anfangs erwähnt habe ich allerdings 
noch nicht so viel Ahnung von der Programmierung und Anwendung. Das soll 
sozusagen ein erstes Projekt sein, um in die Welt von CPLD/FPGA 
einzutauchen. Irgendwie komme ich aber nicht voran.

Runtergebrochen wären meine Fragen eigentlich: Ich habe ein Max II 
(EPM240T100C5N) Experemiertboard (mit 50MHz Clock Onboard, soweit ich 
verstehe) rumliegen, wie schaffe ich es daraus ein TOG-Chip Ersatz zu 
machen?

(Wie sähe ein einfacher Code aus? Lagetoleranz der Töne kann natürlich 
optimiert werden. Soll ich gleich die Onboard Clock nutzen oder die 
vorhandene 2MHz als Input? Und ließen sich in dem Zuge auch die weiten 
Divid-by-2-Counter ersetzen? (~80 I/O-Pins vorhanden))

Was ich als Beispiel-Code gefunden habe, ließe sich das 
anwenden/vereinfachen?
1
`timescale 1ns / 1ps
2
3
module clk2freq(
4
    input clk2mhz,
5
    output [4:0] notes
6
    );
7
 parameter ctarget = 239;
8
 reg [10:0] ctr;
9
 reg [4:0] out;
10
 initial ctr = 0;
11
 initial out = 0;
12
 assign notes[4:0] = out[4:0];
13
14
 always @(posedge clk2mhz) begin
15
   ctr = ctr + 1;
16
   if (ctr == ctarget) begin
17
    ctr = 0;
18
    out = out + 1;
19
   end
20
 end
21
endmodule
22
23
24
module main_clk_div(
25
    input clk,
26
    output mhz2
27
    );
28
 
29
 reg  [3:0] div_clk;
30
 initial div_clk = 0;
31
 assign mhz2 = div_clk[2];
32
 
33
 always @(posedge clk) begin
34
  div_clk = div_clk + 1;
35
 end
36
endmodule
37
38
module organ(
39
 input clk16,
40
 output [4:0] c_notes,
41
42
 output [4:0] cs_notes,
43
44
 output [4:0] d_notes,
45
46
 output [4:0] ds_notes,
47
48
 output [4:0] e_notes,
49
50
 output [4:0] f_notes,
51
52
 output [4:0] fs_notes,
53
54
 output [4:0] g_notes,
55
56
 output [4:0] gs_notes,
57
58
 output [4:0] a_notes,
59
60
 output [4:0] as_notes,
61
62
 output [4:0] b_notes
63
 );
64
65
   
66
 // create a 2mhz clock generator
67
 wire  clock2mhz;
68
 main_clk_div main_clock_gen(clk16, clock2mhz);
69
70
71
 clk2freq #(239) c_generator (clock2mhz, c_notes);
72
73
 clk2freq #(253) b_generator (clock2mhz, b_notes);
74
75
 clk2freq #(268) as_generator (clock2mhz, as_notes);
76
77
 clk2freq #(284) a_generator (clock2mhz, a_notes);
78
79
 clk2freq #(301) gs_generator (clock2mhz, gs_notes);
80
81
 clk2freq #(319) g_generator (clock2mhz, g_notes);
82
83
 clk2freq #(338) fs_generator (clock2mhz, fs_notes);
84
85
 clk2freq #(358) f_generator (clock2mhz, f_notes);
86
87
 clk2freq #(379) e_generator (clock2mhz, e_notes);
88
89
 clk2freq #(402) ds_generator (clock2mhz, ds_notes);
90
91
 clk2freq #(426) d_generator (clock2mhz, d_notes);
92
93
 clk2freq #(451) cs_generator (clock2mhz, cs_notes);
94
95
     
96
endmodule

von Michael W. (Gast)


Lesenswert?

Einmal scheint mir da was zu fehlen, nämlich die Erzeugung der Teiler 
und dann möchte ich die Frage stellen, wo Du wirklich sicher bist, dass 
Du Verilog verwenden möchtest?

von Kon Lion (Gast)


Lesenswert?

Ma W. schrieb:
> Einmal scheint mir da was zu fehlen, nämlich die Erzeugung der Teiler
> und dann möchte ich die Frage stellen, wo Du wirklich sicher bist, dass
> Du Verilog verwenden möchtest?

Hab mich zumindest bisher eher mit Verilog beschäftigt, VHDL ist 
gebräuchlicher? ICh entscheide mich halt am Anfang eine Sprache zu 
lernen, dachte das macht kein Unterschied?

von Andi (Gast)


Lesenswert?

Kon Lion schrieb:
> Was ich als Beispiel-Code gefunden habe, ließe sich das
> anwenden/vereinfachen?

Das ist doch schon ziemlich einfach.
modul organ ist das Top-Modul, das alles zusammenfasst.

modul clk2freq erzeugt die einzelnen Teiler für die 12 Noten (mit dem 
Teilfaktor als Parameter für jede Instanz, siehe organ Modul).
Das erzeugt dir gleich 5 Oktaven als Ausgang an 5 Pins für jede Note, 
nicht nur die Top-Oktave.

modul main_clk_div generiert die 2 MHz Grundfrequenz, anscheinend ist 
hier ein 16 MHz Eingang an einem Pin vorgesehen, aus dem die 2 MHz 
erzeugt werden. Dieser externe Clock Eingang, ermöglicht die ganze Orgel 
zu stimmen und z.B. mit Vibrato Modulation zu versehen. Zum Testen 
kannst du auch ein 2 MHz clock aus dem 50 MHz Oszillator deines Boards 
erzeugen.

Alles was du noch brauchst ist ein Pinmapping File, das den Clock 
Eingang und die Noten Ausgänge den gewünschten Pins zuordnet. Für einen 
ersten Syntheseversuch ist das aber nicht mal nötig, es werden dann 
einfach zufällige Pins verwendet.


Wenn man die freie Wahl hat zwischen Verilog und VHDL würde ich mich 
jederzeit für Verilog entscheiden. Hat fast nur Vorteile. Aber in diesem 
Teil der Welt wurden halt die meisten zu VHDL gezwungen, und können sich 
gar nicht vorstellen, dass es auch etwas einfacher geht. (Soll nicht der 
Aufruf zu einer neuen Runde language-war sein, sondern nur den TO in 
seiner Entscheidung bestätigen).

von ./. (Gast)


Lesenswert?

1
LIBRARY IEEE;
2
USE IEEE.STD_LOGIC_1164.ALL;
3
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
4
USE IEEE.NUMERIC_STD.ALL;
5
6
entity TOP is
7
  Port (
8
    clk    : in    STD_LOGIC;  -- 50 MHz
9
    t0    : buffer  STD_LOGIC_VECTOR (7 downto 0);
10
    t1    : buffer  STD_LOGIC_VECTOR (7 downto 0);
11
    t2    : buffer  STD_LOGIC_VECTOR (7 downto 0);
12
    t3    : buffer  STD_LOGIC_VECTOR (7 downto 0);
13
    t4    : buffer  STD_LOGIC_VECTOR (7 downto 0);
14
    t5    : buffer  STD_LOGIC_VECTOR (7 downto 0);
15
    t6    : buffer  STD_LOGIC_VECTOR (7 downto 0);
16
    t7    : buffer  STD_LOGIC_VECTOR (7 downto 0);
17
    t8    : buffer  STD_LOGIC_VECTOR (7 downto 0);
18
    t9    : buffer  STD_LOGIC_VECTOR (7 downto 0);
19
    t10    : buffer  STD_LOGIC_VECTOR (7 downto 0);
20
    t11    : buffer  STD_LOGIC_VECTOR (7 downto 0)
21
  );
22
end TOP;
23
24
architecture Behavioral of TOP is
25
signal c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11  :  integer;
26
27
begin
28
29
process (clk)
30
begin
31
  if rising_edge(clk) then
32
    c0 <= c0 + 1;
33
    c1 <= c1 + 1;
34
    c2 <= c2 + 1;
35
    c3 <= c3 + 1;
36
    c4 <= c4 + 1;
37
    c5 <= c5 + 1;
38
    c6 <= c6 + 1;
39
    c7 <= c7 + 1;
40
    c8 <= c8 + 1;
41
    c9 <= c9 + 1;
42
    c10 <= c10 + 1;
43
    c11 <= c11 + 1;
44
    if c0 = 5972  then  c0 <= 0; t0 <= t0 + 1;    end if;
45
    if c1 = 5637  then  c1 <= 0; t1 <= t1 + 1;    end if;
46
    if c2 = 5321  then  c2 <= 0; t2 <= t2 + 1;    end if;
47
    if c3 = 5022  then  c3 <= 0; t3 <= t3 + 1;    end if;
48
    if c4 = 4740  then  c4 <= 0; t4 <= t4 + 1;    end if;
49
    if c5 = 4474  then  c5 <= 0; t5 <= t5 + 1;    end if;
50
    if c6 = 4223  then  c6 <= 0; t6 <= t6 + 1;    end if;
51
    if c7 = 3986  then  c7 <= 0; t7 <= t7 + 1;    end if;
52
    if c8 = 3762  then  c8 <= 0; t8 <= t8 + 1;    end if;
53
    if c9 = 3551  then  c9 <= 0; t9 <= t9 + 1;    end if;
54
    if c10 = 3352  then  c10 <= 0; t10 <= t10 + 1;  end if;
55
    if c11 = 3163  then  c11 <= 0; t11 <= t11 + 1;  end if;
56
  end if;
57
end process;
58
59
end Behavioral;
1
*******************************************************
2
 Number of ports :                      97
3
 Number of nets :                     3783
4
 Number of instances :                1730
5
 Number of references to this view :     0
6
7
Total accumulated area : 
8
9
 Number of BUFG :                        1
10
 Number of CLB Flip Flops :            480
11
 Number of CY4 :                       264
12
 Number of FG Function Generators :    600
13
 Number of H Function Generators :      24
14
 Number of OBUF :                       96
15
 Number of Packed CLBs :               300
16
 Number of accumulated instances :    1730
17
***********************************************
18
Device Utilization for S40xlBG256
19
***********************************************
20
Resource                Used    Avail   Utilization
21
-----------------------------------------------
22
IOs                     97      205      47.32%
23
FG Function Generators  600     1568     38.27%
24
H Function Generators   24      784       3.06%
25
CLB Flip Flops          480     1568     30.61%

Ist aber nicht gerade ein CPLD...

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Beitrag "Re: analoge Orgel reparieren"
da hatten wir das Thema vor fünf Jahren mal

von ./. (Gast)


Lesenswert?

> da hatten wir das Thema vor fünf Jahren mal

Ja, da war das aber noch ohne die Oktavteiler dahinter :-).

von Andi (Gast)


Lesenswert?

Hier eine vereinfachte und verbesserte Verilog Version. Verbessert wurde 
der "off by one" Teiler Fehler, und es wird nur noch ein 2 MHz Eingang 
von einem Pin verwendet.

Auf einem MachXO2 Breakoutboard ergibt sich folgender 
Ressourcenverbrauch:
1
Design Summary:
2
   Number of registers:    166 out of  7209 (2%)
3
   Number of SLICEs:       114 out of  3432 (3%)
4
   Number of LUT4s:        228 out of  6864 (3%)
5
   Number of PIO sites used: 61 + 4(JTAG) out of 115 (57%)

1
module organ (
2
 input clock2M,                  // 2 MHz Input Pin
3
 output [4:0] c_notes,           // 5 Oktav-Ausgänge für jede Note
4
 output [4:0] cs_notes,
5
 output [4:0] d_notes,
6
 output [4:0] ds_notes,
7
 output [4:0] e_notes,
8
 output [4:0] f_notes,
9
 output [4:0] fs_notes,
10
 output [4:0] g_notes,
11
 output [4:0] gs_notes,
12
 output [4:0] a_notes,
13
 output [4:0] as_notes,
14
 output [4:0] b_notes
15
 );
16
   
17
 clk2freq #(239) c_generator  (clock2M, c_notes);    // 12 Teiler Instanzen mit je 5 Oktaven
18
 clk2freq #(253) b_generator  (clock2M, b_notes);
19
 clk2freq #(268) as_generator (clock2M, as_notes);
20
 clk2freq #(284) a_generator  (clock2M, a_notes);
21
 clk2freq #(301) gs_generator (clock2M, gs_notes);
22
 clk2freq #(319) g_generator  (clock2M, g_notes);
23
 clk2freq #(338) fs_generator (clock2M, fs_notes);
24
 clk2freq #(358) f_generator  (clock2M, f_notes);
25
 clk2freq #(379) e_generator  (clock2M, e_notes);
26
 clk2freq #(402) ds_generator (clock2M, ds_notes);
27
 clk2freq #(426) d_generator  (clock2M, d_notes);
28
 clk2freq #(451) cs_generator (clock2M, cs_notes);
29
30
endmodule
31
32
33
module clk2freq (                  // Teiler Modul (wird 12 mal verwendet)
34
    input clk2mhz,
35
    output [4:0] notes
36
 );
37
 parameter ctarget = 239;          // Teilerwert (wird durch Parameter beim Instanzieren überschrieben)
38
39
 reg [8:0] ctr = 0;                // 9 bit counter reicht für Teiler bis 451
40
 reg [4:0] out = 0;                // Zähler für 5 Oktaven
41
 assign notes[4:0] = out[4:0];     // Zähler mit Ausgängen verbinden 
42
43
 always @(posedge clk2mhz) begin
44
   ctr = ctr + 1;
45
   if (ctr == ctarget-1) begin     //Reset counter bei Erreichen des Teilerwertes-1
46
    ctr = 0;
47
    out = out + 1;                 //Zähler für 5 Oktaven, +1 bei jedem Reset des Teilers 
48
   end
49
 end
50
endmodule

von Organist (Gast)


Lesenswert?

Was passiert denn dann mit den so erzeugten Rechtecksignalen? Die 
müssten doch noch weiter geteilt werden, um auch die restlichen 
Frequenzen für die anderen Tasten zu erhalten. Sollte man dies nicht 
gleich mitrealisieren?

von ./. (Gast)


Lesenswert?

> Sollte man dies nicht gleich mitrealisieren?

Ist doch. Die harmlos aussehenden:
1
t0 <= t0 + 1;
2
t1 <= t1 + 1;
3
...

erzeugen in Verbindung mit den Portdefinitionen:
1
    t0    : buffer  STD_LOGIC_VECTOR (7 downto 0);
2
    t1    : buffer  STD_LOGIC_VECTOR (7 downto 0);
3
...

auch noch 8 Oktaven nach unten.
Nur 4, wie im Verilog-Beispiel sind natuerlich viel zu wenig.
Fuer die Fusslagen 16" bis 1" braucht man schon 5 Oktaven,
dazu kommen noch die u.U. 5 Oktaven des Manuals.

Aber: Praktisch wuerde man das so im Orgelbau kaum machen.
Da wuerde man eher simple Binaerzaehler (z.B. 4520, 4040) benutzen.
Die kann man naemlich nahe bei den Schaltkontakten des Manuals
unterbringen und muss nicht 8 x 12 Leitungen durch die Gegend
ziehen...

Die "alten" CMOS-ICs haben auch den Vorteil hohe Pegel fuer
die subtraktiven Filterschaltungen bereitzustellen und
die geringe Flankensteilheit ihrer Ausgangssignale erzeugt
weniger Stoerungen.

von Kon Lion (Gast)


Lesenswert?

Andi schrieb:
> Hier eine vereinfachte und verbesserte Verilog Version. Verbessert wurde
> der "off by one" Teiler Fehler, und es wird nur noch ein 2 MHz Eingang
> von einem Pin verwendet.

Klasse, vielen Dank! Sieht jetzt auch strukturierter aus und die 
Kommentare dazu haben mir fürs Verständnis einiges gebracht.

Auch der VHDL Code sieht verständlich und einfach aus, nur wie gesagt 
mit Verilog habe ich mich bisher etwas intensiver beschäftigt.

Die 5 Oktaven sollten für den Anfang auch passen, was genau der Tastatur 
der String-Maschine entspräche.

von J. S. (engineer) Benutzerseite


Lesenswert?

./. schrieb:
> Die kann man naemlich nahe bei den Schaltkontakten des Manuals
> unterbringen und muss nicht 8 x 12 Leitungen durch die Gegend
> ziehen...

So! würde ich das gar nicht machen. Die Tonsignale sollte man - gerade 
wegen der Rechtecke - tunlichst nicht durch die Gegend schicken. Besser 
ist es, die Tastatur parallel abzufragen, zu multiplexen und das Signal 
zur Erzeugerplatine zu leiten und dort in Schieberegister zu legen, um 
sie wieder aufzufächern.

Diese werden dann mit UND-Gattern verknüpft und den einzelnen 
Orgel-Registerstufen zugeleitet, die dann die Klangformung aus den 
Rechtecken machen. Das ist wesentlich weniger störanfällig.

Das Allerbeste ist nach wie vor, man produziert die Töne auch gleich 
virtuell im PLD auf der Basis eines Sägezahns:
http://www.96khz.org/oldpages/simplesoundgenerator.htm

von ./. (Gast)


Lesenswert?

> Die Tonsignale sollte man - gerade
> wegen der Rechtecke - tunlichst nicht durch die Gegend schicken.

Ja, aus so einem CPLD/FPGA kommen Signale aequivalent der AC-Serie
heraus. Deswegen ja der Hinweis diese Signale so nicht in einer
klassisch aufgebauten (Register-)Orgel zu benutzen.

Den Aufwand die Tastatursignale in einem CPLD/FPGA fuer eine
subtraktive Klangsynthese zu "gaten" wird glaub ich eh
niemand betreiben. Aber ich mag mich ja taeuschen.

Instrumente dieser Art waren z.B. das Roland RS-09 Organ/Strings.
Da waren dann 2 Kaefer fuer die Tonaufbereitung zustaendig.

Heute kann man da nun wirklich bessere Dinge anstellen.

Wie man sieht, gibt es aber die "klassischen" Orgelbauer noch.
Die wollen die vielleicht unzuverlaessig gewordenen Generatorsaetze
durch etwas zeitgemaesses ersetzen.
Und fuer die war dieser Hinweis, auch auf die CMOS-Teiler, gedacht.

von Duke Scarring (Gast)


Angehängte Dateien:

Lesenswert?

./. schrieb:
> USE IEEE.STD_LOGIC_UNSIGNED.ALL;
> USE IEEE.NUMERIC_STD.ALL;
Autsch.
Beitrag "IEEE.STD_LOGIC_ARITH.ALL obsolete"

./. schrieb:
> t0    : buffer  STD_LOGIC_VECTOR (7 downto 0);
          ^^^^^^
Und nochmal Autsch.

Hier eine VHDL-Version, die beide Probleme umgeht.
Und passend dazu eine Testbench.

In einen CPLD passt es trotzdem nicht ;-)

Duke

von ./. (Gast)


Lesenswert?

Ja, ohne die "alten" Libs mochte das "betagte" Tool nicht.
Auch das "Buffer" war so in die Quelle gekommen.

Im uebrigen, solang unten etwas raus kommt ist es mir
herzlich egal...

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

./. schrieb:
> Wie man sieht, gibt es aber die "klassischen" Orgelbauer noch.
> Die wollen die vielleicht unzuverlaessig gewordenen Generatorsaetze
> durch etwas zeitgemaesses ersetzen.

Den von mir beschriebenen Ansatz fände ich aber sehr zeitgemäß und 
soweit ich weiß wird das in digitalen Orgeln auch so gemacht. Der 
Hintergrund ist einfach, dass die Signale durch ihre Nachbartasten 
zuviele Störung mitschleppen und eine direkte analoge Verarbeitung nicht 
machbar ist.
Wenigstens sollte man noch Schmitt-trigger einsetzen. Wenn man es 
hingegen total analog machen will, kann man auch die Register erst mit 
den Rechtecken beschießen, dann mischen sie sie den Tasten zuführen. 
Dann hat man mit den Tasten einen Analogmischer.

Es macht dann nichts aus, wenn eine gedrückte Taste sich nicht nur in 
ihrem Pfad sondern auch noch in den Nachbarn bemerkbar macht. So ist das 
bei meiner 1980er Ingrid-Orgel gemacht. Die ist made in italy, was den 
Ansatz möglicherweise erklärt.

Ein Bastler, der sein Böhm-Orgel mit Conrad-Teilen aufgezogen hat, hat 
mir aber mal erklärt, dass das Murks ist und sich das so gebaut, wie ich 
es oben beschrieb. Die Messungen, die wir gemacht hatten, ergaben, dass 
das Böhmsystem im Original pegelmässig in die Knie ging, wenn man 
mehrere Ausgänge desselben Teilers belastete. Schon deshalb sollte man 
das entkoppeln finde ich und dann ist das gaten direkt miterledigt.

Das saubere gaten erzeugt zudem auch präzise Phasen, was für den 
Zusammenklang wichtig ist, wenn die Frequenzen sehr genau stimmen. Dann 
kann man nämlich den einzelnen Teilwellen einen passenden Vorlauf 
spendieren, dass es zu keiner Interferenz kommt.

Beispiel im Bild: 2 digitale Wellen (rot und grün) und ihre gefilterten 
Pendants mit der Summe aus beiden (gelb), im unteren Bereich mit einer 
90 Grad Verschiebung der hohen Freuquenz.

Bei dem Thema Phase mit man z.B. mit Blick auf Phasing und Vibrato 
ohnehin noch genauer nachdanken, wie man die einzelnen Pfade behandeln 
will und da reicht eine einfach Ausgabe des Binärteiles über die Ports 
nicht.

von Koo (Gast)


Lesenswert?

Andi schrieb:
>
1
 module organ (
2
>  input clock2M,                  // 2 MHz Input Pin
3
>  output [4:0] c_notes,           // 5 Oktav-Ausgänge für jede Note
4
>  output [4:0] cs_notes,
5
>  output [4:0] d_notes,
6
>  output [4:0] ds_notes,
7
>  output [4:0] e_notes,
8
>  output [4:0] f_notes,
9
>  output [4:0] fs_notes,
10
>  output [4:0] g_notes,
11
>  output [4:0] gs_notes,
12
>  output [4:0] a_notes,
13
>  output [4:0] as_notes,
14
>  output [4:0] b_notes
15
>  );
16
> 
17
>  clk2freq #(239) c_generator  (clock2M, c_notes);    // 12 Teiler 
18
> Instanzen mit je 5 Oktaven
19
>  clk2freq #(253) b_generator  (clock2M, b_notes);
20
>  clk2freq #(268) as_generator (clock2M, as_notes);
21
>  clk2freq #(284) a_generator  (clock2M, a_notes);
22
>  clk2freq #(301) gs_generator (clock2M, gs_notes);
23
>  clk2freq #(319) g_generator  (clock2M, g_notes);
24
>  clk2freq #(338) fs_generator (clock2M, fs_notes);
25
>  clk2freq #(358) f_generator  (clock2M, f_notes);
26
>  clk2freq #(379) e_generator  (clock2M, e_notes);
27
>  clk2freq #(402) ds_generator (clock2M, ds_notes);
28
>  clk2freq #(426) d_generator  (clock2M, d_notes);
29
>  clk2freq #(451) cs_generator (clock2M, cs_notes);
30
> 
31
> endmodule
32
> 
33
> module clk2freq (                  // Teiler Modul (wird 12 mal 
34
> verwendet)
35
>     input clk2mhz,
36
>     output [4:0] notes
37
>  );
38
>  parameter ctarget = 239;          // Teilerwert (wird durch Parameter 
39
> beim Instanzieren überschrieben)
40
> 
41
>  reg [8:0] ctr = 0;                // 9 bit counter reicht für Teiler 
42
> bis 451
43
>  reg [4:0] out = 0;                // Zähler für 5 Oktaven
44
>  assign notes[4:0] = out[4:0];     // Zähler mit Ausgängen verbinden
45
> 
46
>  always @(posedge clk2mhz) begin
47
>    ctr = ctr + 1;
48
>    if (ctr == ctarget-1) begin     //Reset counter bei Erreichen des 
49
> Teilerwertes-1
50
>     ctr = 0;
51
>     out = out + 1;                 //Zähler für 5 Oktaven, +1 bei jedem 
52
> Reset des Teilers
53
>    end
54
>  end
55
> endmodule

Hoffe es stört nicht das mal wieder auszugraben... versuche den Code 
gerade zu simulieren, in Quartus Prime Lite. Compilern kein Problem, 
aber sich so wavetables ausgeben zu lassen scheint mir etwas komplexer. 
Muss ich in eine Testbench nur das Top-Level-Modul einbinden? Und dann 
in ModelSim starten?

Mein erster kläglicher Versuch:
1
module TOG_test;          
2
3
reg clock2M;             
4
wire [59:0] notes;
5
6
TOG DUT(.clock2M(clock2M),             
7
    .c_notes(notes),           
8
    .cs_notes(notes),
9
    .d_notes(notes),
10
    .ds_notes(notes),
11
    .e_notes(notes),
12
    .f_notes(notes),
13
    .fs_notes(notes),
14
    .g_notes(notes),
15
    .gs_notes(notes),
16
    .a_notes(notes),
17
    .as_notes(notes),
18
    .b_notes(notes)
19
    );
20
21
initial begin 
22
clock2M=0;
23
forever #500 clock2M=~clock2M;
24
end
25
26
endmodule

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Du brauchst eine Testbench, darin enthalten eine Stimuli die die 
Eingänge deiner Schaltung bedient und die Schaltung selbst. Gfs noch 
einen Analyszer, der die Ausgänge abfängt und mit Vorgaben vergleicht.

von Kon W. (koo)


Angehängte Dateien:

Lesenswert?

Weltbester FPGA-Pongo schrieb im Beitrag #5739037:
> Du brauchst eine Testbench, darin enthalten eine Stimuli die die
> Eingänge deiner Schaltung bedient und die Schaltung selbst. Gfs noch
> einen Analyszer, der die Ausgänge abfängt und mit Vorgaben vergleicht.

Ich habe den Code jetzt einfach ohne Testbench in ModelSim geladen und 
einen clock input "erzwungen". Das scheint auch zu funktionieren, alle 
60 gewünschte Frequenzen werden erzeugt.


Bevor ich jetzt einen passendes CPLD board bestelle (eins mit EPM570: 
scheint günstig und alle 306 logic elements zu fassen), wollte ich mir 
noch mal Gedanken um die grundsätzliche Verschaltung des TOG Moduls 
machen. Ich habe mir ein Schema überlegt, um den Weg zu den Filterbänken 
zu verkürzen (nicht über Tastenkontakte leiten) und evtl. Midi in/out zu 
erlauben.

Was meint ihr, könnte das funktionieren? Oder wo sind Fehler / 
Schwierigkeiten?
z.B wie nutze ich am besten die 61 demux bits zum gaten der 
Ausgangssignale..

: Bearbeitet durch User
von ... (Gast)


Lesenswert?

Du solltest dir erstmal die Verschaltung des TOP+Teiler, einer
mechanischen Tastatur fuer mehrere Fusslagen und der Filterbaenke
ansehen.

So wie du das da gezeichnet hast, wird das nichts.
Bei 6 Fusslagen: 16", 8", 5 1/3", 4", 2" und 1 3/5" z.B. sind
per Taste im Manual 6 Umschalter. Im Ruhezustand liegt am
Tastenausgang GND. Und wenn gedrueckt der Ton der aus den
Generatoren kommt.

Fuer 61 Tasten und z.B. 6 Fusslagen braeuchtest du 61 x 6 Schalter...

Da reicht dein CPLD hinten und vorne nicht.

Im uebrigen: Aus der ganzen Konstruktion kommt dann 60iger Jahre
Rechteckton mit ein wenig Filter dahinter.
Sowas will doch keiner mehr hoeren.

von Kon W. (koo)


Lesenswert?

... schrieb:
> Du solltest dir erstmal die Verschaltung des TOP+Teiler, einer
> mechanischen Tastatur fuer mehrere Fusslagen und der Filterbaenke
> ansehen.
>
> So wie du das da gezeichnet hast, wird das nichts.
> Bei 6 Fusslagen: 16", 8", 5 1/3", 4", 2" und 1 3/5" z.B. sind
> per Taste im Manual 6 Umschalter. Im Ruhezustand liegt am
> Tastenausgang GND. Und wenn gedrueckt der Ton der aus den
> Generatoren kommt.

Verstehe nicht ganz was Fußlagen sind, es geht um eine String-Maschine 
aus den 70ern, richtig. 61 Tasten, mehr nicht. Dachte halt eine Taste 
ein Bit zum steuern der 61 CPLD-Ausgänge (an /aus). Die Verarbeitung der 
Signale danach bleibt wie sie ist, mit filter, chourus, mixen ect.

Im Orginal wird die 2MHz clock eben in mehreren ICs in 61 Frequenzen 
zerlegt dann jede einzelne durch die Tastenkontakte geleitet und dann 
erst in die Filter, also viel Kabel.

Ob oder wie man die CLPD Ausgänge kontrollieren kann ist halt die frage, 
ich bin da leider sehr unerfahren. Das ganze Projekt soll mir eher zum 
lernen der Technik dienen als groß was zu revolutionieren..

: Bearbeitet durch User
von ... (Gast)


Angehängte Dateien:

Lesenswert?

Die klassischen Stringsensemble haben die Ausgaenge der Teiler
gewichtet verknuepft, um als Rohmaterial etwas aehnliches wie
einen Saegezahn zu produzieren.

Also etwa: 1/16

Aber auch die hatten mehrere Fusslagen. Z.B. 8" und 4".

Die dort verwendeten Schaltkreise konnter aber auch analoge
Signale verarbeiten.

Dort wurde auch die VCA-Funktion Attack und Release analog
realisiert.

Die 8X, 4X, 2X und X waeren da dann die entsprechenden
Fusslagen der Generatorbank.

von ... (Gast)


Angehängte Dateien:

Lesenswert?

In einem FPGA wuerde ich das heute eher wie im Bild machen.

Das ist natuerlich geringfuegig aufwendiger.

Aber dafuer ist alle digital berechnbar und braucht keine
analoge Verarbeitung.

von J. S. (engineer) Benutzerseite


Lesenswert?

und warum nicht gleich ein echtes Dreieck/Sägezahn, wenn man unbedingt 
eins haben will?

Wenn, würde ich die Oberwellen aus den Sin passend skalieren und 
modulieren, denn das ist es ,was den Ton am Ende real(er) macht.

von happyfreddy (Gast)


Lesenswert?

Kon Lion schrieb:
> Ich würde gerne den TOG S50240 mit dem CPLD MAXII EPMT100 simmulieren.
> Eine Inputclock von 2MHz wird in 13 Ausgangssignale mit 50% duty cycle
> geteilt (/451, /426, /402, /379, /358, /478, /239, /253, /268, /284,
> /301, /319, /339).


Ein Blick in das Datenblatt des S 50240  = MK 50240 verrät,
daß es sich um einen TOS IC handelt der 13 Töne der obersten Oktave
eines Musikinstrumentes produziert.
Der Ton C ist jedoch doppelt vorhanden  einmal als
TOP C und als  C / 2 - also eine Oktave tiefer.
Folglich braucht man auch nicht 13 Töne zu erzeugen sondern nur 12

Das grundlegende Prinzip dieser Teilfaktoren ist der Abstand der Töne 
zueinander  mit dem Faktor "12te Wurzel aus 2".
Der übliche Näherungswert wird von vielen Herstellern mit dem Bruch
196 / 185 realisiert.
Die Nachkommastellen jedoch verursachen einen JITTER der auf jeden Fall
beseitigt werden muß.
Deswegen geht man mit so hoher Clockrate an das Problem heran und teilt 
die so erzeugten Frequenzen nochmals durch 2, wodurch der Jitter nahezu 
verschwindet zumindest nicht mehr hörbar ist
Spätere TOS IC Versionen hatten eine Clockrate bis zu 4 Mhz ( AY 3-214 
ua )
Solche ICs deckten den Bereich der obersten Oktave von C bis B ( unser H 
) ab. Der Top Ton war dann das B. Der in einer  Tastatur dann höchste 
Ton  - ein C - wurde einfach durch Repetition des eine Oktave tiefer 
liegenden C ersetzt. Bei einem 13 Ton TOS wie dem MK 50240 wird der 
allerhöchste Ton eh nur für die allerhöchste Taste und der höchsten 
Fußlage benötigt. Den tiefsten Ton C  bekommt man durch 8 fach 
Oktavteilung auch aus dem Ton C/2 .
An so einen TOS IC schließen sich immer noch 12  Oktavteilerkaskaden an 
um
eine Frequenzbreite von 8 Oktaven zu generieren. Üblich waren in der 
anfangszeit der SAJ 110  und später ein CMOS 4024.

Ich will niemanden abhalten sowas mit einem CLPD zu versuchen. Nur 
angesicht noch verfügbarer TOS ICs reichlich Aufwand an Programmiererei.
Durchaus realisieren läßt sich sowas auch mittels PWM und einem Atmel.
Hat man einen Ton brauchen nur die Zähler für die PWM Erzeugung 
verändert werden, womit sich das eigentliche Programm sehr vereinfacht

von J. S. (engineer) Benutzerseite


Lesenswert?

happyfreddy schrieb:
> Der übliche Näherungswert wird von vielen Herstellern mit dem Bruch
> 196 / 185 realisiert.

Hast du dafür einen link oder eine andere Referenz?

Klassische TOS produzieren die Töne ja durch 12 Teiler, der Rest ist wie 
schon angedeutet mehrfaches Teilen durch 2.

Wo soll hier der Bruch auftauchen?

Du kannst dir denken, warum ausgerechnet ich das frage :-)

von happyfreddy (Gast)


Lesenswert?

TOS ICs = Top Octave Synthesizer
werden allgemein auch als "12te Wurzel 2" Teiler bezeichnet

Diese Wurzel ist der Frequenzabstand zwischen zwei Halbtönen
einer "wohltemperierten Tonleiter"

Ein guter Näherungswert für die Wurzel ist numal der Bruch 196/185
Man kann es noch genauer machen nur die Unterschiede sind kaum hörbar

Näher ausgelassen wird sich darüber in diverser Literatur
zB
TÜNKER  elektronische Orgeln im Selbstbau
Franzis Verlag 1977 ISBN 3 - 7723-6301-6

Radio Praktiker Bücherei Franzis Verlag
Dr Böhm,  Orgeln und ihr Selbstbau RPB Reihe Bd 101

Franzis Verlag  ISBN 3-7723-5765-2  1994
Bo Hanus,  Erfolgreicher Service elektronischer
Musikinstrumente

Ganz spezielle Hinweise jedoch in einer Firmenbroschüre
von ITT über Integrierte ICs in Musikinstrumenten
erschienen um 1970 - wohl heute nicht mehr erhältlich
Behandelt werden nur Firmeneigene ICs wie TCA 430 , TD 470
TCA 250, SAH 190  etc

Datenblatt SAH 190 :
http://www.web-bcs.com/pdf/ITT/SA/SAH190.pdf

Die Verwendung des Bruches 195/185 wird detailliert in der
Funktionsweise des ICs  SAH 190 beschrieben. Durch verschiedene
Beschaltung eines einzigen Pins wurden die Preteiler umgeschaltet,
sodaß mit 3 solcher ICs alle 12 Töne abgedeckt wurden.
Mitbenutzt wurde dabei auch das Ausblendprinzip von Impulsen.


Ein weiteres IC was den 12teWurzel2 Faktor benutzte
war das VALVO IC SAH 220,  eine 19 stufige Frequenzteilerschaltung
in I³L Technik.

Aus einer Eingangsfrequenz werden  11 Oktavteilertöne plus
der Halbton 12teWurzel2 erzeugt. Mit 12 solcher ICs wird ein Bereich von 
11 Oktaven Tonumfang abgedeckt.

Also Taktgenerator an ersten SAH 220 dort abgenommen die 11 Okatavtöne
dieses Tones. Vom Ausgang 12teWurzel2 dann auf den Eingang des 
nachfolgenden SAH 220 und dort die nächsten 11 Oktavtöne als Ausgang usw 
. Maximale Eingangsfrequenz 9 MHz

Übrigens .........
TOS ICs fanden sich früher auch in den kleinen akustischen 
Fernabfragegerätchen für Anrufbeantworter mit Cassettenbetrieb

Ähnlich sind die einzelnen Teilfaktoren eines MK 50240 ua
nach dem Prinzip der Hammondorgel, wo die Teilfaktoren durch mechanische
Getriebe umgesetzt wurden. Angetrieben wird die Hauptwelle durch einen 
Syncronmotor vergleichbar mit dem Clockoszillator. Diese Getriebe in den 
einzelnen Kammern werden so untersetzt, daß die Nebenwelle auf der 
richtigen Drehzal läuft. Die damit angetriebenen eigentlichen Tonräder 
erzeugen dann zwei Oktavtöne im Abstand von 4 Oktaven deren Frequenz nur 
durch das Profil des Tonewheels gegeben ist.
Entweder 2  "Zähne" oder 4 oder 8 oder 16 , 32 , 64 , 128 , 256
Diese "Zähne" laufen dann an einem Pickup vorbei der durch Induktion 
eines Magnetfeldes dann den Ton erzeugt. Hierbei ist die Pickupspule wie 
bei einem Humbucker einer E Gitarre mit einem Magneten versehen und die 
rotiernde Tonwheelscheibe erzeugt dann durch Annäherung im Takt der 
Zähne die gewünschte Tonfrequenz.
das ganze muß man sich so vorstellen :
https://www.youtube.com/watch?v=7Qqmr6IiFLE

von happyfreddy (Gast)


Lesenswert?

Ergänzung

Der Bruch  196/185  wird in solchen TOS IC genau 11 mal verwendet
Clock auf ersten Zähler für einen Ton und gleichzeitig an einen Teiler
196/185 . Vom Ausgang dieses Teiler auf den nächsten Zähler für den 
nächsten Ton und gleichzeitig auch auf den nächsten Teiler 196/185.
Von diesem dann auf die nächste Teilerkette für den dritten Ton und 
wieder auf einen Teiler 196/185  usw

Relativ viel Aufwand, vermute daher daß man doch mit Vorteilern arbeitet
oder zumindest  bei Terzen und Quinten mit ganzzahligen Teilern 
vorteilt.
Im Tünker Buch wird sowas behandelt.

von happyfreddy (Gast)


Lesenswert?

Eine dritte Variante, die ich in den 70ern mal mit TTL ICs
aufgebaut hatte war folgende :
Ein 1 MHz Oszillator triggert eine Teilerkette aus Flip Flops.
Ähnlich von den Teilfaktoren eines TOS ICs habe ich mir diese
Teilerzahl in binäre Form gewandelt und mit logischen Gattern
die einzelnen Zustände der Teilerkettenausgänge miteinander so
verknüpft, daß nur bei einem bestimmten dem Teilfaktor
entsprechenden Zählerstand ein Impuls erzeugt wurde. Dieser
Impuls triggerte dann ein nachfolgendes Flipflop sodaß damit
ein Duty Cycle 50:50 erreicht wurde.
Die Teilfaktoren mußten dann natürlich an die 1 Mhz Clock
angepaßt werden

Frequenztabelle:
http://www.sengpielaudio.com/Rechner-notennamen.htm

und im Übrigen eine recht interessante Seite, wo man viel
Hintergrundwissen über Töne etc  bekommt
(mal bis ganz nach unten scrollen zu den Unterrubriken ...)

Die Frequenzen die ein TOS erzeugt liegen zwischen C 8 und C 9
in der MIDI Tabelle des obigen Link
also zwischen 4186 Hz und 8392 Hz

Vielleicht gibt das auch einige Anregungen bzgl des CLPD Projektes

Nur eines sollte man im Hinterkopf behalten.
Jede Elektronische Lösung mittels Teilerketten ist phasengekoppelt
Bei einem Hammond Tonewheelgenerator sind nur die beiden Tonewheels 
innerhalb einer Kammer phasengekoppelt weil sie auf derselben Welle
sitzen. Jede andere Kammer mit zwei Tonewheels ist aufgrund der 
Rutschkupplung an der Nebenwelle davon entkoppelt und somit nicht 
phasenstarr. Das ergibt dann beim Einschalten
des Motors jedesmal andere Konstellationen was den Klang lebendiger
macht.
Aber das ist eine andere Geschichte ...

von happyfreddy (Gast)


Lesenswert?

Ich habe im Microcontroller Forum schon anderen Stellen
mich zum Thema Orgeln - Generatoren - Technik ausgelassen :

Beitrag "analoge Orgel reparieren"
Beitrag "Re: Analogorgel reparieren (Ahlborn CL310)"

weitere Hinweise zum Thema älterer Orgeln, deren Technik,
Klangformung, Tastenkontakte habe ich in unserem Forum
zusammengetragen.
Einfach mal die Seiten durchblättern:
http://forum.keyboardpartner.de/viewtopic.php?f=20&t=859
http://forum.keyboardpartner.de/viewtopic.php?f=18&t=863

Alles in einem CLPD unterzubringen wird wohl nicht gehen.
Ein FPGA da schon besser.
Wenn es jedoch mehr um eine Arbeitsplattform Grundlagen
älterer Orgeln geht, sollte man dies besser in einzelnen
Abschnitten organisieren :
eigentlicher Tongenerator
Tastenkontakteinheit
Klangformung

Midi ist das kleinste Problem und es beeinflußt hier in erster Linie
die Tastenkontakteinheit quasi Fernsteuer Sender und Empfänger.
Natürlich kann man damit auch noch anderes steuern. Wenn es erstmal um
ein Prinzip geht würde ich das ganz nach hinten schieben für den Anfang.

In einem der Postings ganz zu Anfang wurden Unklarheiten
bezüglich des Begriffes FUSSLAGEN geäußert.
Der Begriff Fußlagen kommt vom Sakralen Orgelbau mit Orgelpfeifen.
Die Fußlage wird anhand der mechanischen Länge einer Orgelpfeife
des TIEFSTEN TONES einer Tastatur bestimmt.Somit hat die tiefste Taste
einer 5 Oktaven Tastatur im 16 Fuß eben die Länge von 16 FUSS
die einer 8 Fuß Lage dann  8 FUSS Länge.
Von einer Tastatur werden also immer mehere Schalter  ( oder Ventile bei 
Pfeifenorgeln ) pro Taste betätigt.
Registerschalter oder Registerzüge bei Pfeifenorgeln geben dann den Weg
frei damit diese Töne erklingen können.
Für eine Tonerzeugung beim elektronischen Generator gibt es zwei
Varianten:
Dauertongenerator  ( dazu zählt auch ein TOS )
oder Einschwinggenerator der erst durch Tastendruck aktiviert wird.

Letzteres Verfahren soll den Aufbau einer Luftsäule in der Orgelpfeife
simulieren die dann den eigentlichen Ton erzeugt.
Dieses Verfahren findet man oft im älteren sakralen Orgelbau

In der reinen Digitaltechnik findet man obendrein auch noch zwei 
Verfahren.
Einmal daß erst durch Tastendruck der zu erzeugende Ton berechnet wird
oder
das vorhandene Samples von den zu erzeugenden Tönen aktiviert werden
durch gewählte Register und gedrückte Tasten.

In jedem Fall sind bei den Tastenkontakten die Signale vom Generator
durch Widerstände zu entkoppeln um den Generator bei mehreren gedrückten
Tasten nicht zu stark zu belasten. Diese Widerstandswerte sind über den 
Fußlagenbereich jedoch auch nicht vom Wert her konstant, sondern sind
lautstärkemäßig angepaßt. Hohe Töne weisen eine kleinere Amplitude auf
als tiefe Töne

Für den eigentlichen Klang ist die Schwingungsform des erzeugten Tones
von Bedeutung
Man unterscheidet hier
Sägezahn:
ideal nur durch Sperrschwingerschaltungen erzeugbar mit sehr
obertonreichem Signal,früher in der Philicorda Orgel mit Glimmröhren 
erzeugt oder dem Sägezahngenerator der Dr Böhm nT Serie
Rechteck :
das ideale Signal was fast alle Hersteller verwendet haben weil durch 
Zähler und Flipflops erzeugbar später dann reine Digitaltechnik mit 
Prozessoren
Sinus :
das Verfahren was Hammond benutzte

Später ging man dann dazu über aus dem Rechteck alle Schwingungsformen
abzuleiten:
Sägezahn wurde mittels Treppenspannung ersetzt ( nicht ganz ideal weil
einige Harmonische halt fehlten  dennoch brauchbar )
Sinus wurde durch RC Filter oder aktive Filter erzeugt

In einer Klangformung unterscheidet man hier ein

subtraktives Verfahren
ausfiltern von Frequenzanteilen bzw deren Hervorhebung durch 
Resonanzkreise

additives Verfahren
hier werden meist Sinustöne (Grundschwingungen) aufaddiert  , siehe
Zugriegel einer Hammondorgel  bzw Prinzip der Fouriersynthese

von ... (Gast)


Lesenswert?

Wenn, dann arbeiten diese TOS-Teilerkaefer vermutlich umgekehrt,
mit einem Faktor von 185/196. Ich wuerde auch nicht annehmen,
dass dort die Eingangsfrequenz mit 185 multipliziert und dann
durch 196 dividiert wird, sondern das von 196 Pulsen nur 185 am
Ausgang ankommen. Bei Getrieben geht das ja einfacher :-).
Die letzte Pulsreihe wird da schon ziemlich zermanscht aussehen
wenn das kaskadiert wird.

Wenn das ganze dann oft genug geteilt wird, mittelt sich diese
Unsymmetrie hoffentlich hinreichend heraus.

Ich werde das ganze mal in naechsten Tagen mal testen.

von happyfreddy (Gast)


Lesenswert?

Der Bruch 196 / 185 ist der Abstand in der Frequenz zwischen zwei
Halbtönen

Beispiel

Ton GIS  :  415,305 Hz
                          Frequenz  Differenz : 12te Wurzel 2
Ton A    :  440 Hz
                          Frequenz  Differenz : 12te Wurzel 2
Ton AIS  :  466,164 Hz


Oktavabstand

eine Oktave tiefer   A    220 Hz
                                   Differenz :  x 2
Kammerton A               440 Hz
                                   Differenz :  x 2
eine Okzave höher    A    880 Hz


 Dh  12 x  12te Wurzel 2  = 2

Wenn es also im Ausgangsposting hieß:

Eine Inputclock von 2MHz wird in 13 Ausgangssignale mit 50% duty cycle
geteilt (/451, /426, /402, /379, /358, /478, /239, /253, /268, /284,
/301, /319, /339).
folgt daraus
der Oktavabstand ( Faktor 2 ) findet sich somit auch bei den 
Teilerfaktoren
hier wieder : 239 x 2 = 478 ; das sind die Töne C top und C/2.

Desgleichen beträgt der Frequenzabstand zwischen
Teilfaktor 451 und 426 zB ebenfalls 12te Wurzel 2
Teilfaktor 426 und 402 zB ebenfalls 12te Wurzel 2
Teilfaktor 402 und 379 zB ebenfalls 12te Wurzel 2
usw

somit kann der Bruch nur lauten  196 / 185 und nicht umgekehrt

Eine Teilerkette :478 wird auch garnicht so realsiert sein wie die 
übrigen.
Man verwendet einfach den Ausgang der 239er Kette und teilt diese 
Frequenz nochmals durch 2
Die Frage war ja seinerzeit als es die ersten TOS IC gab
( siehe links zu den Ahlborn Orgeln hier im Forum )
wie man dies mit dem verfügbaren Platz aufgrund der Technologie in der
IC Herstellung seinerzeit umsetzen konnte.
Die ersten TOS bestand idR immer aus zwei ICs von denen jeder nur 6 Töne
lieferte - obendrein da auch noch mehrere Betriebsspannungen.
Erst später war man in der Lage dies mit nur einer Betriebsspannung und 
alle 12 zu erzeugenden Töne in einem einzigen IC herzustellen.

Die Teilfaktoren besagen ja nur, daß für eine Zählkette zB nur nach 
jedem 239ten Eingangsimpuls ein Ausgangsimpuls erscheinen soll.
Dies ließe sich durchaus mit Ringzählern umsetzen.
Experimente kann da jeder zB mit einer Kette an CMOS 4017 machen nur daß 
hier bei der Kürze der Schiebekette mit kleineren Clockrates gearbeitet 
werden muß.
Die seinerzeit angesprochenen Vorteiler bezogen sich nur auf den SAH 190
in Bezug auf den einen Pin dessen Potential zur Umschaltung für drei
Anwendnúngszwecke vorhanden war. Deswegen sind für die Erzeugung der 12 
Töne auch drei ICs notwendig

Die beim MK 50240 angegebenen Teilfaktoren sind deshalb so hoch um die 
gewünschte Ausgangsfrequenz der 13 Ausgänge möglichst genau zu erzielen.
Schon eine Halbierung würde hörbare Ungenauigkeiten bewirken.
Natürlich weichen auch die erzeugten Ausgangsfrequenzen von der 
richtigen
Tonhöhe ab um einen gewissen prozentualen Faktor. Nur der liegt noch 
innerhalb des annehmbaren Bereiches.
Selbst bei dem Tonwheelgenerator von Hammond mit seinem Zahnradgetriebe 
sind prozentuale Fehler vorhanden. Der einzige Ton der zu 100 % stimmt 
ist der Kammerton A. An diese Toleranzen hat man sich ja bei dem Konzept 
der
TOS  IC auch weitgehend gehalten und man ist hier sogar noch um einiges
genauer.

Ich glaube aber kaum, daß man in einem CPLD hier 12 
Schieberegisterketten unterschiedlicher Länge unterbringen kann - kenn 
mich da jedoch nicht so genau mit aus weil noch nie einen CLPD in den 
Fingern gehabt.

von ... (Gast)


Lesenswert?

> Der Bruch 196 / 185 ist der Abstand in der Frequenz zwischen zwei
> Halbtönen

Ja, der Kehrwert ist der Abstand zwischen zwei Halbtoenen nach unten.

> Eine Inputclock von 2MHz wird in 13 Ausgangssignale mit 50% duty cycle
> geteilt (/451, /426, /402, /379, /358, /478, /239, /253, /268, /284,
> /301, /319, /339).

Ja, mit diesen oder anderen Teilern wird wohl die Mehrzahl der TOS-IC
arbeiten.

Es gibt aber noch das Verfahren der Impulssynthese. Dort werden aus
einem "Masterclock" die Pulse "ausgesiebt", die die gewuenschte
Frequenz erzeugen. was du ja auch in etwa beschreibst.
Sowas habe ich mal 74193 und einem Gatterbergwerk versucht.

Vielleicht kann man mit den von mir beschriebenen 185/196
Pseudoteilern eine etwas exotisch klingende LoFi-Version
erzeugen. Oder als zusaetzliche Stimmen zur Anreicherung des
Klangs woanders integrieren.

> daß man in einem CPLD hier 12 Schieberegisterketten
> unterschiedlicher Länge unterbringen kann

Mit CPLD muss man sich nicht herumaergern. Selbst kleine alte
Cyclone II haben fuer solche Vorhaben genug Platz und sind
aus Fernost erschwinglich.

von happyfreddy (Gast)


Lesenswert?

Wenn es  um eine Tonerzeugung wie in Instrumenten aus den 70ern
geht so bediene ich mich immer noch der TOS IC.
Es gibt sie heute noch zu kaufen in irgendwelchen Buchten.
Man muß nur etwas Insiderwissen haben was wo verbaut war
- that´s all
Ich kaufe also nicht irgendeine Baugruppe wegen der Baugruppe,
sondern weil ich genau weiß was da an ICs drauf ist.

Die einzelnen Teilerfaktoren sind jeweils abhängig von der
Clockfrequenz des TOS Chips.
Anfänglich war ein überlappender 2 Phasen Clock nötig wie zB
beim TMS 3839 von Texas.

Vermutlich werden TOS auch demnächst wieder nachproduziert,
da es heute schon wieder die CURTIS IC´s gibt, die in reinen
Synthies verbaut waren.

Aussieben von Impulsen natürlich eine Möglichkeit, nur sie hat
sich nie so richtig durchgesetzt.

Ein anderes Verfahren war damals beim Yamaha DX 7 die FM Synthese.
Auch der wohl weniger bekannte THEREMIN bediente sich der
Tonerzeugung durch Schwebung zweier Oszillatoren die durch bloßes
Bewegen einer Hand beeinflußt wurden.
Zur Hype Zeit der Synthies hat Firma DOEPFER, München den
MOOGLY Handschuh entwickelt wo über Sensoren Töne erzeugt wurden.

Eine der ersten Digitalorgeln war seinerzeit die HOHNER D 85.
Prozessor ein simpler 8085. Dürfte wohl keine Schwierigkeiten
bereiten das Eprom mal über einen Disassembler laufen zu lassen

Eine weitere Möglichkait wären dann noch die alten SOUNDCHIPS wie
sie in Amiga´s oder ATARI´s und auf Soundkarten der ersten PC
Generation verbaut waren.

Wer es ganz trivial möchte könnte auch ein simples Eprom dazu
benutzen was von einem Zähler in Endlosschleife hochgezählt wird.
Entsprechende Bit programmieren und mit der richtigen Clock
betreiben.
Wenn man den Speicher in passende  Elementareinheiten aufteilt
kann man auch "krumme" Teilfaktoren umsetzen incl einem evtl
notwendigen Reset.
Elementarzeit bedeutet, man faßt hier zb  4 oder 8
aufeinanderfolgende Speicheradressen als eine einzige auf.
Klar daß dann die Clock entsprechend erhöht werden muß, aber man
hat dann eben die gewünschten "Unterstellen" um dort seinen Reset 
einzubinden.
Verweise hier mal gezielt auf die Elektor Ausgabe wo die DRUMBOX
Story mit Schieberegistern realisiert wurde . War so um 1975/76
rum wenn ich recht erinnere . Hierbei ging es jedoch in erster
Linie um die Umschaltung zwischen  3/4 und 4/4 bzw 5/4 Takt per
Reset an der passenden Stelle.

Wiegesagt bei allem obigen ( Ausnahme die D 85 ) wird nur jeweils
ein Ton erzeugt pro angelegter Spannung / Datenwort.
Für 12 bzw 13 Töne reichlich Aufwand.

Bei einer Umsetzung mittels einer Schieberegisterkette kann man
leider auch nicht einen bestimmten Teil davon für alle 12 bzw 13
Töne gemeinsam benutzen. Somit bliebe es bei den 12 bzw 13 einzelnen
Schieberegisterketten - jeder Zähler muß für sich getrennt zu Ende
zählen können.

von Elbi (Gast)


Lesenswert?

Also Orgelfreak muss ich sagen, dass die Diskussion sehr interessant 
finde. Ich habe aber ein Verständnisproblem:

... schrieb:
>> Der Bruch 196 / 185 ist der Abstand in der Frequenz zwischen zwei
>> Halbtönen
> Ja, der Kehrwert ist der Abstand zwischen zwei Halbtoenen nach unten.
Das ist zunächst ein mathematischer Zusammenhang und impliziert noch 
nicht, dass diese Töne so erzeugt werden müssen. Ich halte das für 
kompliziert, solche Teiler und Multiplizierer zu kaskadieren.

>> Eine Inputclock von 2MHz wird in 13 Ausgangssignale mit 50% duty cycle
>> geteilt (/451, /426, /402, /379, /358, /478, /239, /253, /268, /284,
>> /301, /319, /339).
>
> Ja, mit diesen oder anderen Teilern wird wohl die Mehrzahl der TOS-IC
> arbeiten.
Das dürfte sehr viel genauer sind, als den Fehler mit jedem Bruch 
mitzuschleppen.

von happyfreddy (Gast)


Lesenswert?

Der Bruch  196/185 ist ja nur eine herausgefundene praktikablere
Rechengröße für die 12te Wurzel 2.
Berechnet man beides für sich wird man eine Übereinstimmung bis
zu einer bestimmten ( und damit in der Praxis unhörbaren )
Nachkommastelle erkennen. Ab 3 Nachkommastellen sind Unterschiede
schon nicht mehr hörbar nur noch messbar.

In einer temperierten Tonskala (führt auf Johann Sebastian Bach
zurück ) ist der Frequenzabstand zweier Halbtöne eben dieser
Multiplikator des vorhergehenden Halbtones zum folgenden.

Es gibt auch anders gestimmte Tonskalen wo dies nicht gilt
wie zB Penatonik etc.
Da die einzelnen Tonfrequenzen international genormt sind
und ein TOS IC eine bestimmte Oktave ( 12 Töne ) als höchste
Frequenzen generieren muß braucht nur noch die Taktfrequenz durch
diese zu erzeugende Frequenz getelt zu werden um auf besagte
Teilfaktoren eines TOS IC zu kommen.
Der Abstand der einzelnen Töne zueinander ist immer besagte
Differenz 12te Wurzel 2 oder 196/185 als vereinfachte Rechengröße.

Selbst wenn ein Herr Karajan sein Orchester nicht auf die genormte
Stimmung von Kammerton A = 440 Hz stimmen läßt sondern wegen der
Bläser auf 443 Hz stimmen die Abstände der anderen Halbtöne
zueinander immer noch mit ein und demselben Faktor
12te Wurzel 2   =   196/185.

Die Rechengänge sind im Grunde simpel.
Clockfrequenz ./. gewünschte Frequenz = Teilfaktor des Zählers

Da Teilfaktoren keine Nachkommastellen aufweisen, ist das Ergebnis
mit einem prozentualen Fehler behaftet.
Diesen Fehler reduziert man indem man eine höhere Clockfrequenz
verwendet
Üblich waren seinerzeit zwischen 2 und 4 Mhz als Taktfrequenz des 
Hauptoszillators
Somit ist ein TOS genauso genau wie eine andere Lösung.
Der Faktor 12te Wurzel2 oder 196/185 läßt sich technisch nur mit 
Kompromissen umsetzen aber nie genau auf X Nachkommastellen.
Maßstab ist hier ein Hörvermögen diese Nyancen noch wahrzunehmen

Mal nach ganz unten runterscrollen
http://www.sengpielaudio.com/Rechner-centfrequenz.htm

Eine Anwendung dieses Bruches habe ich auch nur in der Broschüre
von ITT gefunden wo die Entwicklung zum SAH 190 beschrieben wurde.
Wenn die Töne eines TOS mit Zählerketten erzeugt werden, braucht man
dieses nicht zu berücksichtigen, weil ein Teilfaktor einer Kette
bereits die Frequenzabstände der Halbtöne zueinander mit
berücksichtigt.
Ändert man den Teilfaktor einer Kette  nur um  " +/- 1 " liegt der
Abstand zum nächsten Halbton nicht mehr bei 12te Wurzel 2 bzw
196/185.
Die Teilfaktoren somit auch nur der Wert mit dem minimalsten
prozentualen Fehler gegenüber dem zu erzielenden Ton.

von ... (Gast)


Lesenswert?

> Das dürfte sehr viel genauer sind, als den Fehler mit jedem Bruch
> mitzuschleppen.

Du solltest das vielleicht einmal ausrechnen und den resultierenden
Fehler...

> Das ist zunächst ein mathematischer Zusammenhang und impliziert noch
> nicht, dass diese Töne so erzeugt werden müssen. Ich halte das für
> kompliziert, solche Teiler und Multiplizierer zu kaskadieren.

Es spricht nichts dagegen die Toene auch so zu erzeugen.
Interessanter Nebeneffekt waere, dass jeder Halbton phasenstarr
an seinen Vorgaenger gekoppelt ist. Klanglich sicher noch
interessanter waere, alle Halbtoene auf diesem Weg zu
erzeugen, also ohne die sonst uebliche einfache Oktavteilung.
Damit waere dann jeder Ton phasenstarr an den Ausgangston
gekoppelt.

Der Aufwand per Halbton liegt bei einem 74HC4046, zwei 4520 und
ein paar Gattern. Der Faktor 185/196 statt 196/185 ist da besser,
weil 196 durch 2 teilbar ist und ein Tastverhaeltnis von 50 %
erlaubt. Die PLL muss dabei "nur" mit einer maximalen Frequenz
von ca. 1.5 MHz arbeiten. Fuer einen 4046 wird das knapp,
ein HC4046 schafft das aber ohne Probleme.

Fuer einen FPGA laesst sich ein "Impulssieb" 185 aus 196 recht
einfach in VHDL in hinschreiben und genauso einfach auch
kaskadieren. Dabei setzen sich die Halbtoene dann aus
Impulssequenzen zusammen die (nur) im Mittel die richtige
Ausgangsfrequenz haben. Dafuer braucht man aber keine
Multiplizierer mehr.

von happyfreddy (Gast)


Lesenswert?

Das phasenstarre kommt ja nur daher, weil logische Schaltkreise
entweder nur bei abfallender oder steigender Flanke schalten.
Egal wie man das nun umsetzt, ob direkt oder per Oktavteiler,
die Phasenstarrheit bleibt. Das gilt dann leider jedoch für alle
Töne, weil die Basis der Taktgenerator des Ganzen ist und bleibt.
Rein musikalisch wenig sinnvoll nur man hat sich halt daran gewöhnt.
Man nehme nur einmal einen Oktavteiler mit 7 Stufen wie den SAJ 110
oder andere. Schließt man an jeden Ausgang ein RC Filter an um aus
dem Rechtecksignal einen Sinus zu machen und mischt diese dann
zusammen in einem Zugriegelsatz ( additive Klangformung ),
so ist das resultierende Tonsignal dann völlig anders  als es zB
bei einer Hammondorgel mit freilaufenden Sinusoszillatoren ist.
Beide Verfahren haben nur eines gemeinsam : den Zugriegelsatz

Das fatale was in den 70ern zu Hypezeit der Heimorgeln passiert ist
sind die vielen vielen Schallplatten die zb von einem Franz Lambert
erschienen sind, gespielt auf Wersi Orgeln mit eben diesem Sinus
Sound.
Dieser Klang sitzt den Leuten jedoch sowas von im Ohr, daß sie der
Meinung sind das ist der Hammond Sinusklang.Das ging dann sogar
soweit, daß jede Heimorgel als Hammondorgel bezeichnet wurde.
Weit gefehlt ! Wersi Sinus ist ein eigenständiger Sound, jedoch hat
dieser mit dem Sinus einer Hammondorgel nichts zu tun.

Nochmals auf den Bruch 196/185 zurück.
Bei einer steigenden chromatischen Tonleiter ist ein Ton der auf
einen vorhergehenden folgt in der Frequenz um den Faktor 196/185
größer, ausgerechnet das 1,05945 fache

Bei einer absteigenden chromatischen Tonleiter ist ein Ton der auf
den vorhergehnden folgt in der Frequenz um den Faktor 185/196
kleiner, ausgerechnet das 0,94387 fache

Beide Werte sind jedoch fehlerbehaftet durch die Nachkommastellen.

Was jedoch in jedem Fall gelten muß ist, daß im Oktavabstand
= nach jeweils 12 Tönen sich die Frequenz verdoppelt/halbiert !!!

Verdoppeln bedeutet den Faktor 2 und was bietet sich hier mehr an
als dies durch FlipFlops vom höchsten Ton abwärts zu realisieren.

Tonerzeugung durch laufende Erhöhung durch den Bruch 196/185
oder Absenkung durch den Bruch 185/196 beinhaltet in jedem Fall
eine Fehlerfortschreibung.

Wenn man also einen Generator mit 8 Oktaven Frequenzumfang
realisieren will, braucht man nur die oberste Oktave an 12 Tönen
zu erzeugen und jeden Ton einem 7fach Frequenzteiler zuzuführen.
Sind die obersten Töne alle richtig gestimmt, stimmen automatisch
auch die Töne der Oktavteilerstufen.
Nachteil jedoch , diese sind phasengekoppelt aufgrund der
Arbeitsweise eines Flipflops.
Bei einem Generator mit freischwingenden Hauptoszillatoren sind
nur die jeweiligen Oktavteilertöne phasengekoppelt, jede Kaskade
für sich jedoch nicht.
Ganz anders jedoch in einem TOS IC, der von einem einzigen
Taktgenerator für alle 12 bzw 13 Töne getaktet wird.

Ganz interessant ist jedoch das was man den einzelnen Datenblättern
der TOS IC´s entnehmen kann.
Es gibt Typen mit einem Tastverhältnis (Dutycycle) 50:50 und
solche mit einem Tastverhältnis von 30:70
Diese Angaben lassen Rückschlüsse auf die Konstruktion im Innern
eines solchen ICs zu. Und genau das dürfte in Bezug auf eine Lösung
per CPLD Chip doch schon interessant sein.
Zur Reduzierung eines JITTERS verwenden viele Hersteller eine 
nachgeschaltete Teilerstufe 2:1 am Ausgang eines Tones
Einige TOS IC haben nur für den allerhöchsten Ton ein Tastverhältnis
von 50:50  der Rest jedoch 30:70.
Ich vermute, daß trotz Jitterbeseitigung immer noch markante
Störfaktoren im Signal vorliegen, die mit der Lösung Tastverhältnis
30:70 ausgemerzt werden.
Ein Tastverhältnis 30:70 läßt sich relativ einfach erreichen :
Man braucht nur zwei benachbarte Tonausgänge mit 50:50 Tastverhältnis 
addieren und erhält so das gewünschte andere Tastverhältnis.

Impulssiebe sind nach meiner Meinung keine gute Lösung weil hier 
Gatterlaufzeiten doch schon eine entscheidende Rolle spielen.
Beim SAH 190 hat man das sicher noch so gemacht, durchgesetzt hat
sich das IC dennoch nicht.
Auch die Variante eines SAH 220 mit separatem 12te Wurzel 2 Teiler
hat sich letztlich nicht durchgesetzt.

Die Teilfaktoren der einzelnen TOS IC sind denen des MK 50240
identisch.
Ausnahme bleibt hier nur der AY 3-214, der bei gleicher
Taktfrequenz seine Töne noch eine Oktave höher liefert, maW die 
Teilfaktoren gegenüber einem MK 50240 sind halbiert und aufgerundet.
Diese Aufrundung hat jedoch keine Relevanz weil Tonhöhenunterschiede
bei so hohen Tönen einen anderen Toleranzbereich genießen ehe er
akustisch ins Gewicht fällt.

Was mich jetzt mal interessieren würde ist ob es möglich ist 12
Teilerketten ähnlich dem TOS Ic in einem CPLD unterzubringen,
abgesehen von viel größerer Pinzahl.
Per TTL Grab habe ich sowas schon in den 70ern mal gemacht nur
die Fläche des Versuchsaufbaus betrug fast ein DIN A 4 Blatt.

Interessant sind auch die Ansätze im Buch von TÜNKER eines TTL
Generators
Er schlägt vor von einem Hauptoszillator ausgehend die
Frequenz durch 15 zu teilen dann damit die Septimen zu erzeugen
Für die Terzen die Frequenz des Hauptoszillators durch 7 und
anschließend durch 3 zu teilen
Für die Quinten die Hauptoszillatorfrequenz durch 7 danach durch
5 zu teilen
und für die Grundstimmen die Hauptoszillatorfrequenz durch 5 danach
durch 3 zu teilen.
Allein das würde die eigentlichen Teilerketten schonmal verkürzen.

Noch einfacher würde es jedoch wenn man zwei getrennte
Hauptoszillatoren verwendet, was auch einer Phasenstarrheit etwas
entgegenwirkt

von Bernd (Gast)


Lesenswert?

>Wersi Sinus ist ein eigenständiger Sound, jedoch hat
>dieser mit dem Sinus einer Hammondorgel nichts zu tun.

Erzeugt die Hammondorgel einen Sinus? Ich hätte gedacht, der Ton einer 
Hammondorgel ist ziemlich "nicht linear".

von Andi (Gast)


Lesenswert?

happyfreddy schrieb:
> Was mich jetzt mal interessieren würde ist ob es möglich ist 12
> Teilerketten ähnlich dem TOS Ic in einem CPLD unterzubringen,
> abgesehen von viel größerer Pinzahl.

Natürlich, das wurde ja im oberen Teil des Threads schon gezeigt, mit 
Verilog und VHDL Beispielen. Auch die nötigen Resourcen wurden 
angegeben.
Eigentlich war die Frage des OP schon längst beantwortet, bevor du den 
Thread wieder ausgegraben hast um uns mit deinen Weisheiten zu 
beglücken.

Schon die kleinsten Lattice FPGAs (~1..3€) sind gut genug um die 12 
obersten Halbtöne zu generieren, willst du auch die Oktavteiler, 
braucht's halt eines mit etwas mehr Pins z.B TQFP100. Wenn du ein 
MachXO2 nimmst, hast du sogar den Segen des Lattice Marketings das als 
CPLD zu bezeichnen, auch wenn es eigentlich ein FPGA mit integriertem 
Flash Speicher ist.

Wenn es ein fertiges Platinchen sein soll, dann eignet sich z.B ein 
TinyFPGA A1 oder A2, oder ein Upduino.

von happyfreddy (Gast)


Angehängte Dateien:

Lesenswert?

Eine Hammond mit Tonewheelgenerator erzeugt schon guten Sinus.
Idealer Sinus sieht jedoch anders aus, aber dennoch der Klang
hat sich durchgesetzt und ist schon so etwas wie " Maßstab "
was Sinussound angeht.
Immerhin muß man dabei auch das Jahr der Erfindung  1934
berücksichtigen mit dem was werkzeugtechnisch und an
Genauigkeiten überhaupt machbar war.
Es sind jedoch all die Unzulänglichkeiten die diesen Sound
berühmt gemacht haben.
Das heute mit CNC Maschinen zu fertigen wird zwar wesentlich
genauer sein, aber sicher nicht die Liebhaber des Sounds
überzeugen. Sie wollen es halt etwas ungenauer oder wie sie
sagen "schmutziger"
Bilder

Einzelsignal am Strip eines H 112 Tonewheelgenerators
abgenommen

"Strip" nennt man die Anschlußleiste aller Pickup Ausgänge der
Tonewheelgeneratoren. Die H 112 hat 96 Tonewheels, eine B 3 oder
A 100 , C 3  hat nur 91 Tonewheels

Schirmbild mit zwei Kurven
oben Referenz DDS Signal
unten H 112 Signal am Strip

PC Schirmbild zeigt den Pegelverlauf der gemessenen Stripausgänge
( grün )  Rote Linie auf Schirm ist die Sollkurve für die
Pegel der einzelnen Pickups.
Bei diesem Generator lag so einiges daneben, also neu kalibrieren
angesagt.

von happyfreddy (Gast)


Lesenswert?

Andi schrieb:
> Eigentlich war die Frage des OP schon längst beantwortet, bevor du den
> Thread wieder ausgegraben hast um uns mit deinen Weisheiten zu
> beglücken.

Naja wie Du das mit  "Weisheiten beglücken" meinst ist unschwer zu 
erraten.

Ist Deine Meinung, nur wenn Juergen S. ( engeneer ) schon Fragen bzgl
meines Posting hat oder der Threadersteller Kon W ( Koo ) nicht weiß was 
Fußlagen sind, gebe ich gerne Auskunft.

Nur wenn schon eine CPLD Lösung umsetzbar ist und es als Ersatz für 
nicht mehr erhältliche Chips dienen kann um so besser.

Nur wenn schon Ersatz so sollte das auch im gleichen DIL 16 Gehäuse 
untergebracht sein und was immens wichtig wäre auch die entsprechenden
Pegel am Ausgang liefern.
Bei CMOS hat man hier 15 Volt Pegel und keine 3,3 V oder 5 V.
Denke aber, daß das für einen CPLD kein Problem darstellt , oder ??

von ... (Gast)


Lesenswert?

> im gleichen DIL 16 Gehäuse
Es gibt ja DIL16 Stecker fuer Flachbandkabel :-).
Die passen ganz vorzueglich.

Fuer die Orgeln der Welt wird kein Hersteller HV-CPLDs auflegen.
Also IO eher 3.3 V und mittlerweile ganz selten 5 V.
Aber der Pegelwandler ist ja schon erfunden.
Zur Not etwas passendes bei der ULN-Serie suchen.
Den Muttertakt erzeugt man sicher einfacher direkt fuer
das CPLD mit der passenden Spannung und Flankensteilheit.

Mein Boehm IC3 tut es noch. Also fuer mich keine Gefahr.

von happyfreddy (Gast)


Lesenswert?

eben .... DIL Stecker wenn es nicht anderes geht  ;-))
Ich habe da auch keine Probleme und mein kleiner Vorrat
an diversen  TOS IC von noch ca 60 Exemplaren reicht nicht nur
für mich sondern hat auch schon anderen geholfen
Man begann zwar auch hier in dem Thread mit CPLD´s nur warum hier
ein Rad neu erfinden, wenn es noch genügend Ersatzteile gibt auch
solche die nicht direkt verwendbar sind aber so adaptiert werden
können daß es paßt und funktioniert :
Beitrag "analoge Orgel reparieren"
War mir ein Vergnügen zunächst per Ferndiagnose und dann nach kurzer 
Vorlaufzeit innerhalb weniger Stunden jemanden mehr als zu erfreuen.
oder auch hier :
Beitrag "Re: Analogorgel reparieren (Ahlborn CL310)"
Sorry ich habe was gegen Wegwerfgesellschaft .......

HV CLPD werden hier mit Sicherheit nicht aufgelegt eher fährt man die
alte Produktion an TOS wieder hoch. Für mich kam es letztes Jahr auch
relativ überraschend, daß die Produktion an Synthie ICs von CURTIS
wieder angelaufen ist ....
LP´s werden auch wieder produziert und sogar die alte Cassette kommt
wieder und seit kurzem werden auch wieder Tonbandgeräte gebaut.
Somit ist es für mich auch nicht verwunderlich, daß ich gerade in den
letzten Jahren vermehrt von jungen Leuten zwischen 20 und 30 kontaktiert
werde die alten Orgeln der Hype Zeit wieder flott zu kriegen.
So auch letztes Jahr vor Weihnachten als ein Student ratlos vor seinem
defekten Neuerwerb stand  ( Fotos solcher Orgel aus dem Netz )
http://skerjanc.de/Lowrey_C500.htm
Kein Plan wo der Fehler sitzt, keinerlei Unterlagen vorhanden
Innerhalb von 48 Std lief das Ungetüm wieder
Noch Fragen  ?

von Xilinx Entwickler (Gast)


Lesenswert?

happyfreddy schrieb:
> Nur wenn schon eine CPLD Lösung umsetzbar ist und es als Ersatz für
> nicht mehr erhältliche Chips dienen kann um so besser.

Was müsste denn da im Einzelnen gebaut werden (was es nicht schon gibt)?

Die Teilerei mit den 12 (11) Zählern ist trivial und lässt sich im 
kleinstmöglichen Spartan 3 FPGA zu 3,- unterbringen. Lassen wir also 
aussen vor.

Bei dieser Impulserzeugung/-Filterung mit den 196/185 sieht es schon 
anders aus. Es würde mich interessieren, wie das funktionieren soll!
Nehme ich z.B. 440Hz für den Kammerton, braucht es eine PLL, die 185 
Impulse erzeugt und dann durch 196 teilt. Das geht mit PLLs im FPGA so 
schon einmal nicht. Denkbar wäre eine Impulsfolge, die mit einer 
n-fachen Frequenz der 440Hz läuft und auf den Takt abgestimmt ist. Das 
lässt sich aber nicht ganzzahlig realisieren.

Habe einfach mal gegoogelt, wie das geht, denn dieses Teilerverhältnis 
scheint recht beliebt zu sein. Eine Recherche ergibt diese Tabelle:
http://www.96khz.org/oldpages/musicfrequencygeneration.htm

Der Autor schlägt neben dem kleinen Bruch die Verwendung einer besseren 
Teilung mit 61858 / 65536 vor. Aber auch da fragt ich mich, wie es 
möglich sein soll, diese Pulse so zu erzeugen, dass dort ein passendes 
Verhältnis herauskommt.

Nach meiner Einschätzung geht das nur unganzahlih mit Phasensprüngen. 
Leider ist der Seite auch nicht zu entnehmen, wie er es macht. Andere 
Seiten finde ich ad hoc nicht, weil die Begriff TOS immer auf Atari oder 
Amiga linken.

Ich frage mich auch welchen Wert die starr verkoppelten Frequenzen haben 
sollen, weil die Phasendurchgänge letztlich doch zufällig sind, wenn man 
die Taste drückt. Die haben irgendeine Konstellation.

von happyfreddy (Gast)


Lesenswert?

Die Intermetall Publikation auf die ich mich beziehe
ist diese hier

INTEGRIERTE SCHALTUNGEN FÜR ELEKTRONISCHE MUSIKINSTRUMENTE

https://www.google.de/search?q=intermetall+publikationen&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiqncS1y8PkAhUF3qQKHZgqB1oQ_AUIEygC&biw=1008&bih=825#imgrc=ZCTe3WNZRFec9M:

In der sehr genauen Beschreibung dort, wie man bei der Konzeption
des SAH 190 vorgegangen ist, kommt diese "Magic Number"
196/185 ins Spiel.
Es ist auch vollkommen klar, daß man hier das eigene herausgefundene
Verfahren gegenüber anderen mehr als hervorhebt.
Ich habe dieses Buch vorliegen. Bitte jedoch um etwas Geduld
es in meinem in gut 50 Jahren angewachsenen Archiv über Orgeln etc
zu finden ( Murphys Gesetze haben eben ihre Gültigkeit )

Eine Suche nach dem Begriff TOS wird meist auf ATARI hinauslaufen
besser ist es hier nach
TOP OCTAVE SYNTHESIZER / GENERATOR zu suchen.

Basis der ganzen Diskussion um den Frequenzabstand der Halbtöne
ist und bleibt die WOHLTEMPERIERTE STIMMUNG von Instrumenten
in der westlichen Musik. Jeder Instrumentenbauer muß sich an diese
Regel halten, wenn er mit seinem Produkt Erfolg haben will.
Daran führt leider kein Weg vorbei.
Der konstante Abstand dieser Halbtöne ist somit der
genaue Ausdruck 12te Wurzel 2
Um dies als praktikable Rechengröße umzusetzen ist man auf diese
"magic Number" gekommen. Ein Vielfaches dieses Bruches wird zwangsläufig
auch genauer sein und nichts anderes stellt das was da im Link zur 96Khz
Theorie dargestellt ist dar.

Man hat sich neulich im Musikerboard Forum auch heftig ereifert, wo von 
jemandem behauptet wurde, sein System auf 196 Khz basierend
wäre das nonplus Ultra und er hätte dafür DA Wandler enwickelt und sogar 
Lautsprecher erfunden die Frequenzen oberhalb von 20 Khz hörbar bessser 
abstrahlen würden als andere.  Na denn ... viel Spaß ....

Eine starre Phasenkopplung ist nur dadurch gegeben, weil jedes Gatter 
oder FlipFlop nur auf eine Richtung des Impulses reagiert. Entweder 
steigende
oder fallende Flanke, nie jedoch beides.

Ich denke hier wird ein Fehler in den Überlegungen gemacht, der sich 
derart
äußert, daß hier gerade mit dem letzten Absatz des vorhergehenden 
Postings
vieles in einen Topf geworfen wird.

Ein TOS Generator stellt einen Dauertongenerator dar, bei dem alle zu 
erzeugenden Töne STÄNDIG vorhanden sind.

Ein Tastenkontakt wählt nur die gewünschten Frequenzen/Töne aus, die 
einer
Klangformung und später dem Verstärker zugeführt werden.
Pro Taste sind mehrere Schalter parallel vorhanden, die die einzelnen
Fußlagen  durchschalten.
Eine Taste C zB schaltet in der Fußlage 8 Fuß die Frequenz F durch

Die Fußlage 8 Fuß entspricht in der Frequenz der Anordnung der Taste C 
auf der Tastatur ( Taste, Tonhöhe stimmen also hier überein )

in der Fußlage 16 Fuß wird die Frequenz F/2 durchgeschaltet
in der Fußlage 4 Fuß wird die Frequenz 2F  durchgeschaltet
in der Fußlage 2 Fuß wird die Frequenz 4F durchgeschaltet
Darüber hinaus gibt es auch ungerade Fußlagen
So zB die Fußlage 2 2/3
Hier erklingt bei der Taste C die Frequenz des Tones G mit der
Tonhöhe 2F des Tones G.
Dies wäre in der Fußlage 8 Fuß eine Taste G die zwei Oktaven höher 
liegt.
Der Begriff Verharfung kommt daher, weil eine Grafik die alle 
Verbindungen
aller Fußlagen Kontakte darstelt, den Saiten einer Harfe gleicht
Siehe mein Beitrag zum Thema Verharfung hier
Beitrag "Re: Analogorgel reparieren (Ahlborn CL310)"

In Orgeln werden also pro Taste bis zu 11 oder 13 Fußlagen gleichzeitig 
geschaltet.
Von den einzelnen Fußlagen gehen dann die Töne zu den Registern der 
Klangformung. Hier entscheidet dann ein eingeschaltetes Register ob der 
Ton
am Verstärker ankommt oder nicht.

Wenn jetzt ein Tastenkontakt einen Dauerton des Generators durchschaltet
so kann nicht vorhergesagt werden zu welchem Zeitpunkt sich die
Phase des Tonsignal gerade befindet.
Die Folge ist ein Klicken durch Prellen des Schalters und der Phase des
Tonsignals.
Dies hat man durch Antibounceschaltungen oder durch hochlegen der Masse
um 4 Volt versucht zu begrenzen bzw zu eleminieren.
Kurioserweise ist dieser Click oder besser gesagt "schmatzen"  der 
Tastenkontakte  bei einer Hammond genau das was so geliebt wird.
Erst hat man das Klicken aus den Heimorgeln beseitigt und weil der
Effekt ja so schön ist später durch Schaltungen wieder hinzugefügt.

Die Probleme eines Phasendurchgangs sollten jedoch bei der Betrachtung
des TOS Generators keinerlei Rolle spielen.
Ein TOS IC liefert an seinen Ausgängen einandfreie Rechtecksignale
egal nun in welchem Tastverhältnis.
Ich kann mir jedoch gut vorstellen, daß bei einer Lösung eines TOS
durch Impulsketten Generierung genau solche Phasenprobleme auftreten
können und werden - allein durch interne  Laufzeiten in Gattern etc 
begründet.
Somit muß wenn hier von einer Phasenlage gesprochen wird dies nur auf 
die
Tonerzeugung innerhalb des TOS Generators bezogen bleiben.
Phasenprobleme bei Tastenkontakten sind ein anderes Kapitel was mit dem
eigentlichen Thema nichts zu tun hat.

von Elbi (Gast)


Lesenswert?

... schrieb:
> Dabei setzen sich die Halbtoene dann aus
> Impulssequenzen zusammen die (nur) im Mittel die richtige
> Ausgangsfrequenz haben.
Und eben jene Impulssequenzen werden dazu führen, dass es Sprünge in den 
Frequenzen gibt. Auch FPGAs können nicht zaubern. Daher baut die halbe 
Welt DDS.

Xilinx Entwickler schrieb:
> Bei dieser Impulserzeugung/-Filterung mit den 196/185 sieht es schon
> anders aus. Es würde mich interessieren, wie das funktionieren soll!
me too!

> Nehme ich z.B. 440Hz für den Kammerton, braucht es eine PLL, die 185
> Impulse erzeugt und dann durch 196 teilt. Das geht mit PLLs im FPGA so
> schon einmal nicht.
Das ginge schon, wenn du statt der 440Hz einfach 4,4 MHz nimmst und PLLs 
kaskadierst, um auf die 185 und 196 zu gelangen. z.B. eine mit Faktor 5 
und 185/5 sowie 4 und 196/4.

Macht aber kein Mensch.

happyfreddy schrieb:
> Ein TOS IC liefert an seinen Ausgängen einandfreie Rechtecksignale
> egal nun in welchem Tastverhältnis.
Ich nehme an, dass diese noch durch 2 geteilt wird, um 50% zu erzeugen. 
Aus meinen Orgelbauversuchen ist mir erinnerllich, dass das 
Tastverhältnis sehr wohl eine Rolle spielt.

von ... (Gast)


Lesenswert?

> Ich frage mich auch welchen Wert die starr verkoppelten Frequenzen haben
> sollen

Weil die Schwebung zwischen den Halbtoenen dadurch exakt ebenfalls
mit diesem Faktor auftritt. Das ist bei klassischen TOS, trotz
des scheinbar nur kleinen Fehlers, nicht der Fall.

> Und eben jene Impulssequenzen werden dazu führen, dass es Sprünge in den
> Frequenzen gibt.

Jein. Man wird bei einer konkreten Umsetzung eben nicht beim
hohen C anfangen, sondern bei einer Frequenz die vom FPGA noch
sicher beherrscht wird. Also z.B. (1024 x 8372 Hz) ca. 8.5 MHz.
Die wird man mit der DCM/PLL des FPGA erzeugen.
Die daraus generierten Halbtoene koennen dann durch 1024
geteilt werden. Jede Teilerstufe verbessert die Stetigkeit
der Sequenz. Gewissermassen eine Mittelwertbildung.
Ausserdem schrieb ich ja, dass ich explizit an einer LoFi-Version
interessiert bin. Das darf, muss und soll sich ein wenig
eigenartig anhoeren :-).

> Daher baut die halbe Welt DDS.

Kann sie ja.

von Elbi (Gast)


Lesenswert?

... schrieb:
> eil die Schwebung zwischen den Halbtoenen dadurch exakt ebenfalls
> mit diesem Faktor auftritt.

Und die ist zu hören?

Wenn der Unterschied in den Frequenzen an sich schon kaum vorhanden ist, 
weil das ominöse Ganzzahlverhhältnis fast der zwölften Wurzel 
entspricht, dann kann die Abweichung nur extrem gering sein. Das sollte 
auch für die Schwebung zutreffen.

von happyfreddy (Gast)


Lesenswert?

Also Tastverhältnisse spielen doch schon eine Rolle.
So hat sich herausgestellt, daß ein Tastverhältnis
von 30 : 70 für die Erzeugung von Piano Sounds wesentlich
besser geeigent ist als 50 : 50.

Nochmals zum besseren Verständnis:
Die Frequenzen der Töne eines Musikinstrumentes sind international
festgelegt. Daran gibt es nichts zu deuteln, man muß sie nehmen
wie sie sind.
Wenn man jetzt einen hörbaren Ton generieren will aus einer
Taktfrequenz mit Teilerstufen, so muß man Fosz durch Fgesucht
dividieren um auf den Faktor der Teilerstufe zu kommen.
Auf diese Art generiert man dann die übrigen Töne einer obersten
Oktave.
Es muß deswegen die oberste Oktave sein weil es einfacher ist hier
dann jeden Ton mehrfach durch 2 zu teilen um auf die
darunterliegenden Oktavtöne zu kommen.
Niemand wird den umgekehrten Weg gehen und die tiefste Oktave
generieren um dann jeden Ton mit 2 zu multiplizieren um auf einen
Ton einer höheren Oktave zu kommen usw bis man die oberste Oktave
erhält.

Bei dieser Vorgehensweise oberste Oktave erzeugen und jeden
Tonfrequnz mehrfach durch 2 zu teilen bis man seine meinetwegen
8 Oktaven Umfang hat braucht man sich um die Magic Number oder
den genauen Ausdruck 12te Wurzel 2 absolut nicht zu kümmern.
Dieser Ausdruck steckt bereits in den festgelegten international
genormten Frequenzen der Töne drin :
es ist eben der Frequenz Abstand der Halbtöne zueinander.

Ein Verfahren einen Ton zu generieren und von dem aus mit der
Magic Number oder dem Wurzelausdruck die restlichen Töne zu
errechnen wird nicht von Erfolg gekrönt sein.
Frequenzen einer Oktave stehen im Verhältnis 1:2
Fehlerquote = NULL
Schon 12maliges weiterrechnen mit der Magic Number führt zu einer
Fehlerquote > NULL

Wenn gesagt wurde, daß es kein Problem ist 12 Teilerketten für die
oberste Oktave in einen CPLD zu packen ist dies ein  gangbarer Weg.
Berücksichtigen muß man dabei jedoch daß der Taktgenerator auch durch
einen LFO modulierbar sein muß um ein Frequenzvibrato  zu
implementieren und das ganze muß auch per Pitch anderen Instrumenten
angleichbar sein.

Wenn dann auch noch die Oktavteiler darin Platz haben um so besser.
So ein Käfer hat dann jedoch schon 108 Pins nur für die
Frequenzausgänge.

Die Ausgangsfrequenzen eines TOS sind bereits intern durch 2 geteilt
um den Jitter zu beseitigen
Ein TOS IC einfach als black box betrachten mit sauberen
Rechteckausgängen

Bei solchen TOS mit 30:70 Tastverhältnis sind die IC intern genauso 
aufgebaut. Zusätzlich folgt jedoch noch ein UND Glied zwischen zwei 
benachbarten Tönen:

TOP C  bleibt bei 50:50 ; Dieses Tastverhältnis liegt dann am 
Anschlußpin an

TOP C mit dem 50:50 Ausgang der Teilerkette des Tone H per UND verknüpft 
ergibt den Ton H mit einem Tastverhältnis 30:70. Dieses Tastverhältnis 
liegt dann am Anschlußpin an

50:50 Teilerketten Ausgang Ton H per UND mit dem 50:50 
Teilerkettenausgang
des Tones B ergibt den Ton B mit einem 30:70 Tastverhältnis.
Dieses Tastverhältnis liegt dann am Anschlußpin an

usw

von Elbi (Gast)


Lesenswert?

Ist das nun eine Antwort auf meinen Beitrag oder auf einen der 
vorherigen? Für mich ist immer noch nicht geklärt, warum es diese 
Fortpflanzung der Töne braucht, also eine Art PLL zwischen 10 
Frequenzen. Die Werte sind doch festgelegt, wie du sagst, also lassen 
sie sich ausrechnen und direkt erzeugen.

In der Zwischenzeit noch diese Rückfrage: Wie wird das 70:30 erzeugt? 
Das muss doch auch für jeden Ton einzeln passieren, weil die unteren 
geteilt wurden und 50:50 haben. Monoflop?

von ... (Gast)


Lesenswert?

> Und die ist zu hören?

> Wenn der Unterschied in den Frequenzen an sich schon kaum vorhanden ist,
> weil das ominöse Ganzzahlverhhältnis fast der zwölften Wurzel
> entspricht, dann kann die Abweichung nur extrem gering sein. Das sollte
> auch für die Schwebung zutreffen.

Sicher hoert man die Schwebungen bei gespielten Akkorden.
Bei einem TOS der mit ganzzahligen Teilern arbeitet, sind die
Fehler so, dass eben manche Akkorde in manchen Tonlagen
merkwuerdig klingen. Aus dem Verhaeltnis 185/196 hergeleitete
Halbtoene sind wesentlich praeziser als aus dem ganzzahligen
TOS-Teiler.
Ein weiterer Punkt ist auch, dass die Schwebungsfrequenz
zwischen Toenen eben exakt mit der Tonhoehe mitlaeuft.
Gewissermassen die (fast) perfekte gleichschwebend temperierte
Stimmung. Wobei gleichschwebend sich immer auf den Faktor
und nicht den Absolutwert bezieht.
Unter Umstaenden ist es sogar klanglich von Vorteil, dass
der Faktor aus relativ kleinen ganzen Zahlen gebildet wird
und nicht aus dem exakten reellen Wert der 12. Wurzel aus 2.

Da es mich interessiert, mache ich mir fuer mich den Aufwand
herauszufinden ob diese subtilen Differenzen klangliche
Auswirkungen haben. Wie gesagt:

> Daher baut die halbe Welt DDS.

Kann sie ja.

von happyfreddy (Gast)


Lesenswert?

... schrieb:
>> Ich frage mich auch welchen Wert die starr verkoppelten Frequenzen haben
>> sollen
>
> Weil die Schwebung zwischen den Halbtoenen dadurch exakt ebenfalls
> mit diesem Faktor auftritt. Das ist bei klassischen TOS, trotz
> des scheinbar nur kleinen Fehlers, nicht der Fall.

Wenn die oberste Oktave durch Teilfaktoren generiert ist
haben diese Töne eine gewisse Schwebung zueinander.
Diese pflanzt sich auch durch nachgeschaltete Oktavteiler fort
In den Oktavteilern liegt eine starre Phasenkopplung vor.
Trotzdem weisen sie zueinander die gleiche gewisse Schwebung auf.

Gerade im Sakralbereich kann man sich mit einer temperierten Schwebung
bei Terzen, Quinten , Septimen und Nonen nicht so recht anfreunden.
Das was man dann will sind rein gestimmte Terzen,Quinten,Septimen und
Nonen.

Diesen Wunsch kann ein TOS Generator jedoch nicht liefern weil
er nach einer temperierten Stimmung ausgelegt ist.

Diese reine Stimmung im Sakralbereich hat wesentlich mit den festen
und fortlaufenden Formanten der Register sowie den Mixturen (sind
ein Gemisch aus mehreren Fußlagen) zu tun. So finden sich oft in
Sakralorgeln zwei Generatorsätze einen wohl temperierten mit TOS und
einen zweiten mit rein gestimmten Teiltönen speziell für solche
Register.

Denke aber das führt hier zu weit und ist nicht Teilthema eines TOS
mit CPLD.

Wer sich dait beschäftigen will kann in " Wälzern "
von Lottermoser oder Klotz zum Thema Kirchen Orgeln und deren Klang
und wie er erzeugt wird  schlau machen.

von Andi (Gast)


Lesenswert?

Elbi schrieb:
> Daher baut die halbe
> Welt DDS.

Was macht denn die andere Hälfte?
Ich denke jede moderne Klangerzeugung benutzt DDS Oszillatoren in 
irgendeiner Form. Ich kann mir nicht vorstellen, dass heute noch Orgeln 
nach dem TOS Prinzip hergestellt werden.

Mit einem FPGA, dass mit 100 MHz getacktet wird, und einer 
Abtastfrequenz von 96 kHz, kann man z.B. leicht 1024 DDS Oszillatoren 
berechnen, und zusammenmischen.
Dabei kann die Wellenform frei bestimmt werden, durch eine Tabelle in 
einem Blockram. Man kann also z.B. genau die Wellenformen der Hammond 
Zahnräder generieren. Das "Verharfen" und die Register erzeugt man 
einfach durch die Gewichtung beim Zusammenmischen der Oszillatoren.
Man spart sich also die vielen Kontakte der Orgeltasten, all die Filter 
und die komplizierte Verdrahtung.

von chris (Gast)


Lesenswert?

Was ist TOS? Ich kenne das nur als Betriebssystem:
https://de.wikipedia.org/wiki/TOS_(Betriebssystem)

von Volker S. (sjv)


Lesenswert?

chris schrieb:
> Was ist TOS? Ich kenne das nur als Betriebssystem:

Thread Thema lesen und Generator durch Syntheziser ersetzen!

von Carl (Gast)


Lesenswert?

Er spricht aber die ganze Zeit von TOS-ICs, die er noch auf Lager hat.
Ich hätte gerne das Datenblatt.

von ... (Gast)


Lesenswert?

> Ich hätte gerne das Datenblatt.

Such die von Happyfreddy gelinkten Freds durch.
Die wesentliche Information sind ohnehin die Teilerfaktoren.
Keiner wuerde sich heute gerne P-MOS mit 2 Betriebsspannungen
und einem nicht ueberlappenden 2 Phasentakt antun...

von Zynq-Entwickler (Gast)


Lesenswert?

happyfreddy schrieb:
> In der sehr genauen Beschreibung dort, wie man bei der Konzeption
> des SAH 190 vorgegangen ist, kommt diese "Magic Number"
> 196/185 ins Spiel.

Das müsste ich mir dann wohl einmal besorgen. Ich hätte nämlich für 
andere Anwendungen Bedarf für solche phasenstarre Umsetzer. So wie ich 
es verstehe, ist es ein hochfrequenter Impulsgenerator, der (wie auch 
immer) 185 Pulse für eine eingehende Frequenz erzeugen kann, die dann 
geteilt wird.

Mir geht es nur nicht ein, dass dies völlig ohne Phasensprünge sein 
soll, welche sich durch das Teilen völlig erledigen. Bei jeder PLL habe 
ich einen Drift.

Da das Umsetzen an dieser Stelle digital, also mit dem Takt von Statten 
gehen wird, kann es nicht genauer sein, als die Rasterung des Taktes. 
Läuft auf DDS hinaus.

von Carl (Gast)


Lesenswert?

Wenn man das FPGA mit 200MHz betreibt, sollte der Frequenzfehler 
ziemlich klein sein, wenn man ganz normal statt fraktional teilt. Ich 
glaube kaum, dass irgend jemand den Unterschied hört.

von happyfreddy (Gast)


Lesenswert?

Das ITT Buch ist derzeit dort verfügbar
https://www.ebay.de/itm/Integrierte-Schaltungen-fur-elektronische-Musikinstrumente-ITT-Intermetall-Halbl/392326544357?hash=item5b587bfbe5:g:UAwAAOSwXV9dG6iq

https://www.ebay.de/itm/Fachbucher-gebraucht-Elektronik-ITT-Integriert-Schaltungen-fur-Musikinstrumente/264456169437?hash=item3d92d0e7dd:g:LNgAAOSwrCFdcsk4

Datenblatt  SGS ATES   TOS  IC  :

http://www.elektronikjk.pl/elementy_czynne/IC/M086.pdf


Andi schrieb:
"Das "Verharfen" und die Register erzeugt man
einfach durch die Gewichtung beim Zusammenmischen der
Oszillatoren. Man spart sich also die vielen Kontakte der
Orgeltasten, all die Filter und die komplizierte Verdrahtung."

Man muß sich jedoch schon die Mühe machen eine Verharfung oder
wie es heute heißt ein TAPERING in den FPGA zu implementieren.
Tapering beinhaltet einmal die Verdrahtung aufgrund der
unterschiedlichen Fußlagen, sowie eine Abstufung der Pegel
durch Entkoppelungswiderstände, um den gewünschten
Lautstärkeverlauf (tiefe Frequenzen lauter als hohe Frequenzen)
umzusetzen.
Von der Tastatur kommt minimal nur eine Einschaltinformation.
In früheren Orgeln saßen dort bis zu 13 Einschaltkontakte, für
jede Fußlage einer.
Bei nur einem Schaltkontakt müssen jedoch dann im FPGA je nach
Anzahl der Fußlagen die übrigen Schalter elektronisch umgesetzt
werden.
Vorteil bei einem Kontakt, daß man hier diesen mit einer ADSR
Hüllkurve ausstatten kann, somit auch Effekte wie DECAY oder
SUSTAIN möglich.
In früheren Orgeln wurde dies mit dem IC TDA 470 ( ITT )
umgesetzt. Auch das ist in dem ITT Buch beschrieben mit
praktischen Beispielen und entspechenden Platinenlayouts .

Heute baut niemand mehr mit TOS ICs.
Viele Modelle arbeiten heute mit SAMPLES bzw PC gestützter
Hardware unter Einbindung von VST Instrumenten.
Zu erzeugende SOUNDS werden erst auf Tastendruck hin BERECHNET
und alles muß dann zwangsläufig durch das Nadelöhr DA Wandler.
Das hat zur Folge, daß eine Stimmenzahl hier begrenzt ist und das
vom System her dann Töne, die sich in einer Ausklingphase befinden
vorzeitig abgeschaltet werden, um die neue Information von weiteren 
gedrückten Tasten verarbeiten zu können.

Dazu nur mal einangenommener Test:
Man nehme ein Brett das so geformt ist, daß damit ALLE 61 Tasten
eines Manuals GLEICHZEITIG gedrückt werden.
Dann schaltet man alle verfügbaren Registrierungen ein und betätigt
dieses " Tastenbrett "
Die Orgel müßte dann alle gedrückten Tasten als hörbaren Ton
durchschalten.
Das kann sie jedoch nicht aufgrund des Konzeptes diese PC gestützten 
Variante. Das einzige was dann zu hören ist ist ein undefinierbares
Geräusch eines überforderten Systems : sie kommt unweigerlich ins
Stottern, weil sie die Daten garnicht mehr verarbeiten kann.
Ab und zu kam bei einigen Modellen dann die dankenswerte
Meldung auf dem Display
MASTER ERROR DATA OVERFLOW USE RESET FOR RECOVERY
Reset hieß dann Auschalten neu starten und System wieder hochfahren.

Eine herkömmliche Orgel mit TOS IC wird jedoch alle Töne
anstandslos wiedergeben. Tastenkontakte sind nur die Auslöser
eines Durchschaltens der Auswahlkriterien, nicht jedoch ein
Startsignal irgendeiner Berechnung.


Ist ein FPGA nach diesem TOS System incl der Tastenkontakte und
Verharfung aufgebaut wird er genauso anstandslos die Töne
wiedergeben : er arbeitet genauso PARALLEL wie das TOS Konzept
zu früheren Zeiten.

@ Zynq-Entwickler:
Einen Generator nach DDS Prinzip aufgebaut nach dem Dauerton
Verfahren würde bedeuten, daß bei 8 Oktaven Umfang hier 108 einzelne
DDS am werkeln wären. Dabei kommt dann jedoch nur eine Wellenform
zur Auswahl. Soll gleichzeitig Rechteck, Sägezahn und Sinus  erzeugt
werden halte ich das für nicht umsetzbar.

von ... (Gast)


Lesenswert?

Hallo happyfreddy,

> bei 8 Oktaven Umfang hier 108 einzelne DDS am werkeln wären

Wenn diese Huerde genommen ist,

stellt das:

> Soll gleichzeitig Rechteck, Sägezahn und Sinus erzeugt
> werden halte ich das für nicht umsetzbar.

ueberhaupt kein Problem dar. Das sind "nur" Zugriffe auf
gerade mal 3 unterschiedliche Tabellen, die sogenannten LUTs,
aus denen derAusgabewert gepflueckt wird.
Unter Umstaenden muss der Wert dann noch interpoliert werden,
wenn naemlich die LUTs nur Stuetzwerte enthalten.
Mit noch geringfuegig mehr Aufwand, kann man diese Tabellen
auch noch anschlagdynamisch modifizieren und/oder ueber die
Zeit variieren.
Am Ende landet man da beim polyphonen und multitimbralen
Sampleplayer.


LUT: Look-Up Table

Lass dir deine TOSse nicht von den Bastlern abknoepfen :-).
Die alten Orgeln dieser Welt brauchen die noch.

von happyfreddy (Gast)


Lesenswert?

... schrieb:
> ueberhaupt kein Problem dar. Das sind "nur" Zugriffe auf
> gerade mal 3 unterschiedliche Tabellen, die sogenannten LUTs,
> aus denen derAusgabewert gepflueckt wird.
> Unter Umstaenden muss der Wert dann noch interpoliert werden,
> wenn naemlich die LUTs nur Stuetzwerte enthalten.
> Mit noch geringfuegig mehr Aufwand, kann man diese Tabellen
> auch noch anschlagdynamisch modifizieren und/oder ueber die
> Zeit variieren.

Wie das funktioniert ist mir bekannt. Habe selber schon mit dem
AD 9850 experimentiert.
Nur mal so als Beispiel:
Einen  Klavierakkord möglichst mit Dynamik und gleichzeitig unterlegte
Strings.
Das ganze dann als simpler C Dur Akkord ( C , E , G ) meinetwegen.
Wenn der Klavierakkord ausgeklungen ist wird die C Taste erneut 
angeschlagen.
Streicher bleiben mit E und G Ton dabei liegen.
Man benötigt somit drei Tabellen für die Klaviertöne mit Dynamik
zu Beginn des Anschlages, drei Tabellen Klaviertöne wenn die Tasten 
liegen
sowie drei Tabellen für die Stringtöne.
Alles der Einfachheit in Mono mit nur einem DDS.
Machbar ?
Glaube nicht zumindest nicht mit einem DDS alleine

Mit den TOS gehe ich schon sorgsam um - keine Bange...

von ... (Gast)


Lesenswert?

Die urspruengliche Intention einer LUT ist die Speicherung der
Werte einer Periode der Funktion die man synthetisieren will.

Bei so vielen DDS-Oszillatoren die LUTs erfordern, wird man
wohl mit einer zentralen Instanz die LUTs arbitrieren weil sonst
der Platz im FPGA irgendwann mal knapp wird, die LUTs selber
aber zeitlich kaum ausgelastet sind.

Was du da beschreibst ist eher ein simpler (und schlechter)
Sampleplayer.

Weil:

> mit nur einem DDS

Damit muesste man fuer jeden unterschiedlichen Ton Speicher
bereitstellen. Der Witz an einer DDS ist ja, dass man
den gespeicherten Ton in gewissen Grenzen frei transponieren
kann.

So entartet nur die simple LUT in einen Speicher der
die Samples haelt. Bei einem Ueberlauf der DDS wird nicht
gewrappt sondert weiter fortlaufend adressiert und unter
Umstaenden geloopt, wenn das Sample es so mag.

Die Frequenz der DDS entspricht der Samplefrequenz mit
der die/das Sample(s) ausgegeben wird.

Sicher ist sowas machbar. Aber sowas will ja keiner.
Dafuer gibt es ja Sampler. Als VST z.B. Halion,
in PC-Hardware Creative Labs AWE32/AWE Live und Konsorten.

Im allgemeinen wuerde man aber auch mit einem Sampler
keine Akkorde als Sample benutzen. Das wird bei mod-Playern
nur benutzt um Platz zu sparen.
In einem richtigen Instrument hat sowas eher nichts zu suchen.

Richtig waere es so:
Fuer die insgesamt sechs Toene (3 x Klavier, 3 x Streicher)
treten 6 DDS Oszillatoren in Aktion, die aus jeweils
2 Tabellen (Klavier/Streicher) die Samples auslesen,
gewichtet addieren und ausgeben. Jede DDS arbeitet auf einer
Frequenz die der gewuenschten Tonhoehe entspricht.
Das kann u.U. auch die selbe sein, z.B. wenn Klavier und Strings
die selbe Note spielen.
So in etwa wuerde es ein Sampler machen.
U.U. wuerde die DDS Frequenz noch angepasst, weil das Sample
mit einer anderen Samplerate gespeichert wurde.

von happyfreddy (Gast)


Lesenswert?

etwas off topic .....
Ein Sample ist immer ein Abbild des aufgenommenen Original
Klanges. Je mehr Bitbreite desto höher ein Auflösungsvermögen.
Nicht zuletzt ist auch einem Nyquist Theorem Rechnung zu
tragen sowie dem Clipping was eine Aussteuerung beim Sample
erstellen betrifft. Bei einer anschließenden DA Wandlung
dann das Problem des Granularrauschens.

Wenn zb ein Klaviersound gesampelt wird so reicht ein Sample
pro Oktave schon nicht mehr aus, man muß mindestens jeden
dritten Ton sampeln wenn nicht sogar jeden einzeln.
Dazu dann auch noch mit verschieden starkem Anschlag.
Beim Klavier klingt auch nicht nur eine Saite sondern man hat
erstmal pro Ton drei Saiten ab einem gewissen Frequenzbereich
und wenn eine Saite angeschlagen wurde erklingen auf Grund der
Resonanz auch andere mit.
Kurz gesagt Klavier ist schon eine ganze Datenbank an Samples.
Und das ist nur ein Instrument von vielen die umgesetzt werden
sollen will man flexibel sein mit einem DDS System
Rechner sind zwar schnell heutzutage doch auch denen sind
Grenzen gesetzt.

Das was man auf dem Sektor heute anstrebt ist schon sowas
wie eine " eierlegende Wollmilchsau" . Für meine Begriffe kann
sowas nur in eine Sackgasse führen egal ob nun mit Halion als
Ablösung einer Creamware Variante oder anderes. Hört man sich
einige VST Instrumente heuzutage an ist das schon so etwas wie
gequake und derart " clean " daß man vergeblich eine Anknüpfung
zum Original Instrument sucht. Der Fehler der heute gemacht wird
ist der, daß fast jedes Sample dem eines Soloinstrumentes gleicht
nie jedoch von einem Instrument was im Verbund mit anderen erklingt.
Es macht einfach keinen Sinn ein Solo Saxophon zu sampeln um damit
dann einen Saxophonsatz eines Glenn Miller zu spielen, selbst wenn
man hier Samples eines Tenorsaxophons, Sopransaxophons und
Altsaxophons einzeln sampelt und zusammen - jedes doppelt
vorhanden -  erklingen läßt.

Ganz anders da ein Ansatz ein System auf Basis einer Fouriersynthese
zu konzipieren. Jeder Klang läßt sich in eine Vielzahl an
Sinusschwingungen unterschiedlichster Frequenz und Amplitude sowie
Phasenlage zerlegen.
Dies braucht man sicher auch nicht bis zu letzten Harmonischen
realisieren, sondern kann sich auf eine bestimmte Anzahl begrenzen.
Der alte MOOG läßt zwar unbekannterweise hier grüßen aber vom Ansatz
her sicher eine erfolgversprechende Aufgabe für ein DDS System.
Zudem hat man es eh nur mit einer Schwingungsform zu tun.

von ... (Gast)


Lesenswert?

Ja,

die meissten Sampler lassen eben jede Phrasierung vermissen die
ein live gespieltes Instrument erzeugen kann.

Aber man muss deswegen Sampler nicht grundlegend verdammen.
Ich hatte mir vor einigen Jahren mal ein E-Piano mit Virtual Waves
gewissermassen erzeugt und um es live spielen zu koennen
in einen Sampler geladen. Damals haette die (Rechner-)Hardware
eine echte physikalische Emulation von der Leistung nicht
zugelassen bzw. es existierte damals keine Software die das
unterstuetzt haette.
Das arbeitete mit 3 Velocitylevels fuer seine spektrale
Komposition und war zumindest nicht voellig unbrauchbar.

Heute gibt verschiedene Piano-VSTs die entweder samplebasiert
oder per Emulation arbeiten.
Die samplebasierten ergeben eine Perfektion des Klanges
die nicht einmal ein gut gepflegtes originales Instrument
auch nur annaehernd erreicht. Sowas muss man halt sparsam
einsetzen :-). Die Pianoemulatoren auf der anderen Seite
erlauben weitestgehende Freiheit bei der Gestaltung des
Klanges.

Es gibt auch Sampler die in der Intonation der Klaenge etwas
breiter aufgestellt daherkommen als Halion, z.B. Hypersonic.
Bei dem sind die Libraries halt fix und nicht selbst
erweiterbar.

Ein echter Fluegel ist natuerlich immer besonders problematisch.
Da braucht man wirklich sehr viele Samples, z.T. sogar mehrere
von der selben Tonhoehe mit identischem Anschlag um aus diesen
dann per Zufall auszuwaehlen. So machen es auch die VST-Sampler
fuer Gitarren.

> Ganz anders da ein Ansatz ein System auf Basis einer Fouriersynthese
> zu konzipieren. Jeder Klang läßt sich in eine Vielzahl an
> Sinusschwingungen unterschiedlichster Frequenz und Amplitude sowie
> Phasenlage zerlegen.

Auch sowas gibt es als VST-Intrument. Nur besonders authentisch
fallen die Ergebnisse da auch nicht aus und der Resourcenbedarf ist
ausserordentlich hoch.

Ich koennte hier sicher noch stundenlang weiterschreiben.
Um es frei nach einem Satz eines Schriftstellers abzuschliessen:

"Die Qual der Begrenzung der Moeglichkeiten wurde durch
die Qual des voelligen Fehlens jeder Begrenzung abgeloest."

von Elbi (Gast)


Lesenswert?

... schrieb:
> Ein weiterer Punkt ist auch, dass die Schwebungsfrequenz
> zwischen Toenen eben exakt mit der Tonhoehe mitlaeuft.
> Gewissermassen die (fast) perfekte gleichschwebend temperierte
> Stimmung. Wobei gleichschwebend sich immer auf den Faktor
> und nicht den Absolutwert bezieht.

Moin, sehr interessanter Beitrag. Ich verstehe nur nicht ganz, was du 
mit "Tonhoehe mitlaeuft" meinst. Eine Schwebung, so wie wir Mechaniker 
es kennen, hat eine Amplitude und eine Frequenz. Wenn dieses Verhältnis 
gleich bleibt, bleibt auch die relative Frequenzänderung konstant. 
Allerdings nicht die absolute. Ich kann mir vorstellen, dass die 
Schwebung immer dasselbe Tempo haben sollte, wie ein Tremolo bei dem 
Sänger.

von Elbi (Gast)


Lesenswert?

happyfreddy schrieb:
> Heute baut niemand mehr mit TOS ICs.
Na offenbar schon, sonst täte der TE nicht fragen :-)

> Viele Modelle arbeiten heute mit SAMPLES bzw PC gestützter
> Hardware unter Einbindung von VST Instrumenten.
Orgeln?

> Zu erzeugende SOUNDS werden erst auf Tastendruck hin BERECHNET
> und alles muß dann zwangsläufig durch das Nadelöhr DA Wandler.
Ich halte den DAC nicht für ein Nadelöhr.

Die Frage, um die es hier geht, ist auch die einfache Erzeugung der 
Grundfrequenzen. An der Stelle kommt dann eher die Auflösung des PCs ins 
Spiel. Wie genau kann der denn die Frequenzen erzeugen?


> Das hat zur Folge, daß eine Stimmenzahl hier begrenzt ist und das
> vom System her dann Töne, die sich in einer Ausklingphase befinden
> vorzeitig abgeschaltet werden,
Eine reine Frage der Polyphonie. Moderne Systeme haben 128 Stimmen.

von happyfreddy (Gast)


Lesenswert?

... schrieb:
> "Die Qual der Begrenzung der Moeglichkeiten wurde durch
> die Qual des voelligen Fehlens jeder Begrenzung abgeloest."

Genauso ist es !!
Daraus habe ich  meine Schlüsse gezogen und wende mich deshalb
mehr einer analogen Simulation wieder zu.
Das Ergebnis liegt dabei schon fest bevor man beginnt es umzusetzen:

Es wird eine Simulation bleiben so oder so .

Ein Weg dorthin kann jedoch nur davon geprägt sein es so gut wie
möglich hinzubekommen.
Auch eine raffinierte rein digitale Lösung ist und bleibt Simulation

Was in den 70er Jahren mit der Erfindung des Realton Variophon
gelang

https://www.youtube.com/watch?v=K12LpYMrqPM

https://www.youtube.com/watch?v=pZOzA-9i4JM

dürfte heute auch noch analog machbar sein.
Man beachte einfach mal die Bandbreite der schon damaligen erreichten 
Artikulationsmöglichkeiten.
Breath Controller lassen sich aber auch durch Touch Controller
oder  andere bedienbare ersetzen

von ... (Gast)


Lesenswert?

> Ich verstehe nur nicht ganz, was du mit "Tonhoehe mitlaeuft" meinst.

> Ich kann mir vorstellen, dass die
> Schwebung immer dasselbe Tempo haben sollte, wie ein Tremolo bei dem
> Sänger.

Das waere ganz schlecht :-).

Die Schwebung zwischen zwei Toenen ist ganz einfach ihre Differenz.

Machen wir doch einfach mal eine Rechnung, bei
der ich der Einfachheit mal von C := 261.64 Hz und 196/185 ausgehe:

Dann ist die Differenz zwischen 2 Halbtoenen immer exakt 
(196-185)/185.
Und wie man sieht nimmt die Differenz bzw. Schwebung zwischen zwei
Halbtoenen genau mit der Tonhoehe zu:
1
  Freq   Differenz zum naechsten Halbton
2
...
3
C  261.64   15.56  277.20
4
Cis  277.20   16.48  293.68
5
D  293.68   17.46  311.14
6
Dis  311.14   18.50  329.64
7
E  329.64   19.60  349.24
8
F  349.24   20.77  370.01
9
Fis  370.01   22.00  392.01
10
G  392.01   23.31  415.32
11
Gis  415.32   24.69  440.01
12
A  440.01   26.16  466.17
13
B  466.17   27.72  493.89
14
H  493.89   29.37  523.26
15
C  523.26   31.11  554.37
16
Cis  554.37   32.96  587.33
17
D  587.33   34.92  622.26
18
Dis  622.26   37.00  659.26
19
E  659.26   39.20  698.45
20
F  698.45   41.53  739.98
21
Fis  739.98   44.00  783.98
22
G  783.98   46.62  830.60
23
Gis  830.60   49.39  879.99
24
A  879.99   52.32  932.31
25
B  932.31   55.43  987.74
26
H  987.74   58.73  1046.47
27
C  1046.47  62.22  1108.70
28
...

Wie man ausserdem sieht, ist der entstehende Fehler durch die
Abweichung von 196/185 zu 2^(1/12) vernachlaessigbar.
Gleiches gilt natuerlich fuer den Kehrwert.

Je nach Betrachtungsweise klingen damit alle Akkorde unabhaengig
von ihrer chromatischen Ausgangslage gleich gut oder gleich
schlecht :-).

von ... (Gast)


Lesenswert?

Lieber happyfreddy,

> Genauso ist es !!
> Daraus habe ich  meine Schlüsse gezogen und wende mich deshalb
> mehr einer analogen Simulation wieder zu.

Man muss das Kind ja nicht gleich mit dem Bade ausschuetten.
Entscheidend dabei ist doch nur das man selber noch an alle
Knoepfe kommt.

Z.B. eine digitale Orgelsimulation die mit einigen zehntausend
Oszillatoren daherkommt und selbst Wagnerfreunde noch staunen lassen
wuerde.

Oder auch die LoFi-Version mit phasenstarren "Impulsverstuemmlern" :-).

Es gibt noch viel zu tun!

Der Gigagantomanie sind digital keine Grenzen gesetzt.

von Elbi (Gast)


Lesenswert?

Ich sehe, das Thema mutiert von einer rein technischen Frage wieder hin 
zu einer philosophischen, nämlich analog und digital. Und wie immer ist 
digital schlecht.:-)

happyfreddy schrieb:
> mit der Erfindung des Realton Variophon

das hätte einen eigenen thread verdient. Vielleicht möchte es einer der 
CPLD-Experten nachbauen? Gänzlich digital? Für das Clavichord gibt es 
das schon.

von happyfreddy (Gast)


Lesenswert?

Elbi schrieb:
>> Viele Modelle arbeiten heute mit SAMPLES bzw PC gestützter
>> Hardware unter Einbindung von VST Instrumenten.
> Orgeln?
>
>> Zu erzeugende SOUNDS werden erst auf Tastendruck hin BERECHNET
>> und alles muß dann zwangsläufig durch das Nadelöhr DA Wandler.
> Ich halte den DAC nicht für ein Nadelöhr.
>
> Die Frage, um die es hier geht, ist auch die einfache Erzeugung der
> Grundfrequenzen. An der Stelle kommt dann eher die Auflösung des PCs ins
> Spiel. Wie genau kann der denn die Frequenzen erzeugen?
>
>> Das hat zur Folge, daß eine Stimmenzahl hier begrenzt ist und das
>> vom System her dann Töne, die sich in einer Ausklingphase befinden
>> vorzeitig abgeschaltet werden,
> Eine reine Frage der Polyphonie. Moderne Systeme haben 128 Stimmen.


Wenn es machbar ist einen TOS in einem CPLD mit gleichem Verfahren der
Tonerzeugung unterzubringen ist ja alles in Butter.
Und diese Auflöusng und Genauigkeit  reicht allemal für weiteres.

Orgeln auf Basis eines PC´s ?

Zb in der da werkelt ein PC  mit WIN Betriebssystem plus der Software
für das Instrument :

https://www.youtube.com/watch?v=o5djMNiopDM

Habe das Beispiel bewußt ausgewählt um zu zeigen welche Soundbandbreite
heute machbar ist.
Die Genaugkeit der errechneten Töne ist dieselbe weil man sich an die 
Vorgabe der Frequenzen hält.
Der Grund warum man einen PC als Basis verwendet ist, weil hiermit
auch anders wie Waves und VST machbar ist.Ja man kann auch gleich eine 
CD mit der Orgel aufnehmen und sie brennen.
Der Nachteil eines PC Systems ist jedoch der ständige Wandel an neuen
Mainboards und hin und wieder des PC Betriebssystems.
Mit einem Celeron und WIN 98  wurde seinerzeit begonnen, dann kam XP,
dann Win 7 und nun plötzlich WIN 10 und 64 bit.
Will heißen man ist schlicht von einer PC Industrie abhängig ...
und die ändert sich ständig !

Ein DAC ist immer ein Nadelöhr. Alles auf einmal kann da garnicht 
durchlaufen, man wird also hier Aufteilungen vornehmen und anschließend
die Audiosignale zusammenführen in einem MIXER. Dies ist auch im obigen 
Videobeispiel der Fall: mehrere DAC´s

128 Stimmen sind nicht gerade viel.
Viele unterliegen dem Irrtum  Stimme sei gleich Sound !
Weit gefehlt.......
Ein Sound setzt sich immer aus mehreren Stimmen zusammen.
So hat ein angeschlagener Flügelton schon  mehrere Stimmen
1.  Anschlaggeräusch
2.  im mittleren Tastaturbereich erklingen drei Saiten gleichzeitig
sind also schonmal 4 Stimmen pro Taste.
Sind alle 10 Finger vollgriffig im Spiel sind das 4 x 10 Stimmen
Kommen dann noch automatische Begleitung und weiteres dazu sind
128 Stimmen sehr schnell verbraucht und das System muß
nachdenken was da nicht mehr so wichtig ist und abgeschaltet werden kann 
nur weil ein neuer Event umgesetzt werden soll.

Das hier ist eine Orgel mit einem eigenen Betriebssystem ( kein PC )
Man achte  mal auf die Spielweise mit der Layertechnik
Je nach Anschlagstärke werden hier zwei verschiedene Sounds generiert
Somit nicht nur einfach Taste drücken sondern mit dem richtigen Gefühl,
weil eben der gewählte Sound davon abhängt

https://www.youtube.com/watch?v=jBvj7dqroeU

Viel Spaß

übrigens so zu spielen ist garnicht so schwer.
Man muß nur mit dem richtigen Finger zur richtigen Zeit die richtige
Taste drücken. Das hat Hector Olivera schon mit 4 Jahren gelernt und 
seitdem nichts anderes gemacht.
Schön das es ihn gibt und man ihn in wenigen Wochen wieder live erleben
kann
https://www.tasten-festival.de/
übrigens Ady Zehnpfennig und Hady Wolff (für diejenigen denen der Name 
noch was sagt) sind auch da

von happyfreddy (Gast)


Lesenswert?

... schrieb:
> Je nach Betrachtungsweise klingen damit alle Akkorde unabhaengig
> von ihrer chromatischen Ausgangslage gleich gut oder gleich
> schlecht :-).

Theoretisch schon richtig nur die Praxis sieht halt anders aus

Schüler eines Tasteninstrumentes lernen brav ihre Etüden etc
in C Dur und quälen sich mit einem Fingersatz.
Sieht alles einfach aus weil nur weisse Tasten.
Geht man jetzt die Hitlisten rauf und runter und will das
nachspielen, findet man kaum Noten in C Dur wohl aber in anderen
Tonarten.
Spielt man dann später in irgendeiner Band mit kommt man mit C Dur
Kenntnissen nicht weit. Titel werden in E, F , A oder anderen
Tonarten gespielt, folglich muß man umlernen und sich mit deren 
Fingersätzen auseinandersetzen. Noch krasser dann wenn man mit
Bläsern zusammenspielt.
Dort mit sehr vielen Vorzeichen in As , Es oder B Dur
Hat man das gerafft stellt man plötzlich fest hoppla in der Tonart
klingt das viel besser als in C Dur und obendrein liegen die Griffe
viel günstiger als in gelernter C Dur Variante. Auch die Intervalle 
empfindet man plötzlich wesentlich interessanter als in C Dur,
obwohl vom Intervallabstand identisch.

Dieses Empfinden eines besser klingen hat jedoch auch etwas mit dem
eigenen Wohlbefinden zu tun. Scheinbar git es da doch so einige
Zusammenhänge, die man nicht erklären kann warum das so ist.

Bei heutigen Instrumenten ist es jedoch sehr einfach trotz nur
Kenntnisse in C Dur in einer anderen Tonart su spielen. Man dreht
einfach den Transposer runter. Nicht ideal aber immer noch besser
als garnichts.
Richtig fein raus sind diejenigen die keinerlei Noten kennen und
nur nach Gehör und  der eigenen Stimme spielen so zB Stevie Wonder
oder der verstorbene Ray Charles.
Ganz krass dagegen ein Beethoven der später taub wurde aber dennoch
berühmte Werke komponiert hat. Wie es klingen sollte hatte er nur
im Kopf und das waren Partituren für ein ganzes Orchster mit vielen 
Solisten.

von ... (Gast)


Lesenswert?

> Schüler eines Tasteninstrumentes lernen brav ihre Etüden etc
> in C Dur und quälen sich mit einem Fingersatz.

Ich habe Klavier am Konservatorium nebst Theorie, Gehoerbildung
und Chor gelernt. Da gab es ganz sicher nicht nur weisse Tasten.

Die klassischen Komponisten hatten aber schon eine gewisse
Vorliebe fuer Tonarten ohne viele Vorzeichen.

Aber man kann jedes Uebungsstueck ja chromatisch ruecken.
Jeden Tag einen Halbton :-).

Und natuerlich am Klavier und nicht an der Orgel mit Dr. Boehm #3.

von happyfreddy (Gast)


Lesenswert?

Also ich bin da eher für Gleichberechtigung und mir ist es egal
ob BLACK & WHITE an Tasten.
Bei Erkältung spiele ich am liebsten in PULL-Moll
Zur Hippiezeit Ende der 60er war ja mehr LSD-Dur angesagt.
Aber jeder wie er mag.
Klavier hatte ich nur drei Jahre und deswegen aufgehört,
weil bei jedem Vorspiel mein Lehrer ( Kirchenorganist ) seine
Geige vorkramte und mich begleitete. Dieses "Gesäge" war mir
einfach zuwider und habe dann alleine weitergmacht.
Mein Klassennachbar spielte R´Roll und Boogie auf dem Piano
was wesentlich mehr Spaß machte. Das haben wir dann zu zweit
gemacht an zwei Klavieren bei Schulveranstaltungen.
Ach ja Kontrabass durfte ich mir auch selbst beibringen, weil
ich den Basschlüssel kannte ( seltsame Begründung ). War jedoch
garnicht mal so verkehrt als die Schuldixieband gegründet
wurde ;-)

Aber egal Musik ist ein schönes Hobby gibt da schlimmeres ...
Hätte ich früher von einem chromatischen B oder C Griff
Akkordeon gehört hättte ich dieses gelernt.
Transponieren ist dort ein Kinderspiel :
immer die gleiche Grifffolge egal in welcher Tonart.
Eine Taste hoch - runter - rechts oder links und schon ist man
sattelfest in der nächsten Tonart !!

Schön jedoch, daß man Musik und Elektronik mehr als gut
miteinander verknüpfen kann.

von J. S. (engineer) Benutzerseite


Lesenswert?

happyfreddy schrieb:
> wenn Juergen S. ( engeneer ) schon Fragen bzgl
> meines Posting hat oder der Threadersteller Kon W ( Koo ) nicht
> weiß was Fußlagen sind, gebe ich gerne Auskunft.
Ich lese Deine Beiträge mit großem Interesse!

Ich für meinen Teil hatte deshalb zurückgefragt, weil mir nicht bewusst 
war, dass die TOS-ICs mit eben jenem Faktor arbeiten. Mir ist auch nicht 
bewusst, dass Orgeln der 70er so funktioniert haben sollen.

Ich wurde deshalb hellhörig, weil ich eben diese Skalierung für manche 
meiner Trance-Stücke verwende(te), nachdem ich den Faktor beim 
Experimentieren mit Zahlen am C64er in den 80ern zufällig entdeckt 
hatte. Damals war das ja noch nicht so mit Internet und gegenseitigem 
Austausch. Wir Elektromusiker haben alle alleine vor uns hingewurschtelt 
:-)

Benutzt hatte ich den zunächst wegen der einfachen Darstellung in 8 Bit. 
Die tatsächlichen Auflösungen mit denen die Frequenzen erzeugt werden, 
sind natürlich höher, besonders in den FPGA-Systemen, aber auch den 
DSP-Systemen der 90er:

von J. S. (engineer) Benutzerseite


Lesenswert?

Dazu:

Xilinx Entwickler schrieb:
> Der Autor schlägt neben dem kleinen Bruch die Verwendung
> einer besseren Teilung mit 61858 / 65536 vor.
Das ist meine Seite und benutzt wird das Verhältnis, weil es eine binäre 
Abbildung des Faktors darstellt und zwar in 16 Bit, die man schon beim 
Amiga zur Verfügung hatte. Die nächste bessere Version ist 1484586 zu 
1572864 oder 15835583 zu 16777216 in 24 Bit, passend zum seinerzeit 
verwendeten DSP56301.

Binär sind die Nenner, um fortlaufend neue Frequenzen berechnen zu 
können. Wenn z.B. eine Tonhöhenänderung des Geräts vorgenommen wird, 
passen sich die Frequenzen an. In den FPGA-Synths werden die Frequenzen 
dynamisch zur Laufzeit für jeden (Klavier-)kanal berechnet und dabei die 
Spreizung reingezogen. Die neue Frequenzvorgabe für die Synth-pipeline 
ergibt sich dann einfach aus der vorherigen Note und einigen Faktoren. 
Man braucht keine Frequenztabelle.

> Leider ist der Seite auch nicht zu entnehmen, wie er es macht.
Ich verwende das nicht so, wie es hier im thread beschrieben ist. Das 
fast! perfekte Teilerverhältnis hat einen rein musikalischen Sinn, 
nämlich den, dass eine definierte Interferenz der Wellen stattfindet die 
sich periodisch voraussagbar wiederholt. Das ergibt bei Akkorden eine 
ganz bestimmte Rhythmizität bei Schwebungen. Inwieweit das jeweils 
tauglich ist, muss man im Detail sehen:

Bei klassischen Orgeln macht das eventuell weniger Sinn, weil es für die 
Begleitung akustischer Musik keinen Mehrwert hat. Ich gehe davon aus, 
dass man die Chips aus Einfachheitsgründen so gebaut hat. Die 
Ausführungen die inzwischen verfasst wurden, deuten auch darauf hin, 
dass man mit geringen Mastertaktfrequenzen auskommen musste. Diese 
gestatten keine gute Näherung der Frequenzen.

Wie ich im Artikel weiter oben beschrieben habe, liegen die erzielbaren 
Fehler bei hochfrequenter Synthese im ppm-Bereich.

> Ich frage mich auch welchen Wert die starr verkoppelten
> Frequenzen haben sollen, weil die Phasendurchgänge letztlich doch
> zufällig sind, wenn man die Taste drückt. Die haben
> irgendeine Konstellation.
Kommt drauf an, wie man die Orgel baut. Bei Synthies kann man den 
Tongenerator ja zum Tastendruckzeitpunkt starten, um immer wieder 
dieselbe Transiente zu erhalten. (Wenn man einen TG pro Taste hat :-)

von J. S. (engineer) Benutzerseite


Lesenswert?

> Da das Umsetzen an dieser Stelle digital, also mit dem Takt von
> Statten gehen wird, kann es nicht genauer sein, als die Rasterung
> des Taktes. Läuft auf DDS hinaus.

Nicht ganz, denn die TOS-IC-Entwickler wissen, mit welcher Taktfrequenz 
sie arbeiten werden und können folglich die analogen Verzögerungsglieder 
und Pulse so einstellen, dass sie genau passend zu den Taktflanken 
fertig werden und praktisch einen exakten kontinuierlichen Takt 
erzeugen. Es bleibt nur das Temperatur- und Spannungsproblem, welche die 
Schalteigenschaften driften lassen.

Es entsteht so nur ein kleiner Sprung, der sich auf die 196 Takte als 
Jitter verteilt. Das wird schon recht genau und trifft auch Zeitpunkte, 
die nicht in das 2MHz-Raster des Chips fallen.

Wie gesagt kann man heute mittels einfacher Teilung im FPGA auch mit 
einer Granularität eines Taktes die Abweichungen auf ppm begrenzen. Das 
ist unterhalb dessen, was FPGA-PLLs jittern. Um also einen 
Super-Frequenz-Synthesizer zu bauen, muss man mit DCMs arbeiten und 
einen sehr präzisen Taktoszillator außen hernehmen.

Um wiederum von den TOS-ICs dieser speziellen Technik profitieren zu 
können, würde ich vorschlagen, statt der 2MHz einfach ein 64MHz / 128MHz 
Quarz anzuschließen, und mehr davon zu kaskadieren. Dann lässt man die 
oberen Oktaven wegfallen und bekommt super saubere untere Oktaven mit 
einem kleineren Fehler.

Wer es ganz auf die Spitze treiben will, haut eine phasenverrauschte 
Frequenz auf die TOS, damit der Phasensprung nicht rhytmisch auftritt, 
sondern sich über das Spektrum verteilt. In einer nichtmusikalischen 
FPGA-Anwendung habe ich das mal erfolgreich gemacht.


Allerdings muss man sich bei allen Betrachtungen stets im Hinterkopf 
behalten, dass das Frequenzverhältnis eben doch nicht exakt stimmt und 
es damit über die Oktaven hinweg zu einem anderen Phasenverhältnis 
kommt. Das nutze ich z.B. gezielt aus, um Schwebungen in oktavierten 
Akkorden zu haben. Auch auch da muss man wieder fragen, ob das immer 
passt.

Hinzu kommt, dass dieses Verhältnis ja überhaupt nur dann gültig wäre, 
wenn es sich um eine gleichstufige Stimmung handelt. Man kann sein 
Instrument ja auch so stimmen, dass es rein klingt. Dann ergeben sich 
auch andere Teiler für die TOS-Frequenzen.

Ich meine, dass wenn man schon einen FPGA ins Spiel bringt, man sich von 
der TOS-Struktur lösen könnte und alle Frequenzen einzeln geteilt 
herstellen sollte. Das schafft den geringsten Fehler - Umschaltung der 
Stimmungen und Vibrato inklusive.

von J. S. (engineer) Benutzerseite



Lesenswert?

hier ist eine Tabelle für die minimale Taktfrequenz zur Herstellung 
einer reinen Stimmung, am Beispiel für C-DUR, ausgerichtet an A = 443 
für Orchester, mit Dur und Mol. Wenn man die "schwarzen" Tasten 
auslässt, geht es mit unter 1MHz, also auch mit Microprozessoren.

von J. S. (engineer) Benutzerseite


Lesenswert?

happyfreddy schrieb:
> Man hat sich neulich im Musikerboard Forum auch heftig ereifert, wo von
> jemandem behauptet wurde, sein System auf 196 Khz basierend
> wäre das nonplus Ultra und er hätte dafür DA Wandler enwickelt
> und sogar Lautsprecher erfunden die Frequenzen oberhalb von 20 Khz
> hörbar bessser abstrahlen würden als andere.  Na denn ... viel Spaß

Der link würde mich interessieren!

Spontane Bemerkung dazu: Der Mensch nimmt auch Ultraschall war und 
gerade da veranstalten viele HT ziemliches Gemüse, wie ich lernen 
durfte. Ein Wandler, der das Spektram "da oben" im Griff hat, ist nicht 
falsch. Allerdings muss dazu nicht entwickelt werden, sondern normale, 
heute verfügbare Studiotechnik erworben werden.


happyfreddy schrieb:
> Spielt man dann später in irgendeiner Band mit kommt man mit C Dur
> Kenntnissen nicht weit. Titel werden in E, F , A oder anderen
> Tonarten gespielt,
Weil sie oft von Gitarristen geschrieben wurden, die aus praktischen 
Gründen in "ihren" Tonarten spielen, oder ...

> Noch krasser dann wenn man mit Bläsern zusammenspielt
... weil Blasinstrumente nicht beliebige Töne produzieren und dann auf 
Tonarten festgelegt sind, oder ...

weil das Lied vom Produzenten solange geschoben wird, bis der Sänger mit 
seinem optimalen Tonumfang es singen kann.

Was die Gitarristen angeht, habe ich auch dazu schon an anderer Stelle 
ausgeführt, dass diese sehr oft ihr Instrument nach Gehör stimmen und 
dabei von Saite zu Saite über die Griffe gehen, was dazu führt, dass die 
Stimmung auf das nicht perfekte Gehör des Menschen adaptiert wird, 
siehe:  und zudem oft eher eine reine Stimmung heraus kommt.

Eine so gestimmte Gitarre kann dann nicht einfach von Lied zu Lied 
umgegriffen werden, um die Tonarten zu wechseln.

: Bearbeitet durch User
von happyfreddy (Gast)


Lesenswert?

@ jürgen S. ( engineer )

Mit der Genaugkeit die heute machbar ist wie in Deinem Beispiel
kann jede Stimmung umgesetzt werden. Nur 4 Stellen nach dem Komma hört 
niemand mehr.

Der Link zur Story von damals
https://www.musiker-board.de/threads/sehr-interessante-neue-workstation-keyboard-in-entwicklung.640227/

Das ganze hat sich dann wohl als Aprilscherz
entpuppt von angeblich hochtrabenden Besonderheiten des
neuen Keys getragen.
Wirklich genau zugehört was da in den Videos gesagt wurde
hat niemand gemacht. Genaues Zuhören hat bei mir so einige
Fragen aufgeworfen und je öfter ich das Video ansah desto mehr
Fragen hatte ich.

Solche Wandler gibt es schon, nur die findet man eher in der Meßtechnik
als in Unterhaltungselektronik

Wenn man eine Gitarre nach der ersten Saite hin stimmt über Abgriffe
der Bünde , stmmt sie in sich schon - nicht jedoch zu anderen 
Instrumenten
geschweige denn nach Kammerton A.

Naja Produzenten von heute sind nicht mehr das was Produzenten damals 
waren. Hier geht es ausschließlich um Verkauf und was am Ende rauskommt.
Wer da dann singt und ob er es überhaupt kann ist sekundär - siehe
Milli Vanilli seinerzeit , nur Playback und gute Bühnenshow.
Früher gab es noch Talentscouts bei den Plattenfirmen heute macht man
eine TV Show und die die nach oben wollen drängeln sich.
Traurig finde ich nur, daß es teilweise wirklich gute Leute gibt, die 
dann
jedoch in eine Musikschiene gepresst werden die ihnen eigentlich nicht 
liegt. Ich habe weißgott nichts gegen Tekkno und anderes, kann mir aber
heute schon ein Schmunzeln nicht verkneifen wenn diese Generation in 
meinetwegen 40-50 Jahren dann im Rentnerkreis zusammensitzt und von den
alten Hits aus ihrer Jugendzeit schwärmt.
Weißt Du noch da war doch der Hit da  ging ungefähr so :
UNK TSCH UNK UNK TSCH dididada UNK TSCH UNK UNK TSCH
Viele Melodien sind halt Evergreens und sowas vergißt man nicht
- oder doch ?

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

happyfreddy schrieb:
> Viele Modelle arbeiten heute mit SAMPLES bzw PC gestützter
> Hardware unter Einbindung von VST Instrumenten.

Wie genau sind eigentlich solche Frequenzen?
D.h. wie hochfrequent tastet der PC die Grundfrequenzen ab?
Was ich kenne, arbeitet mit 96kHz, damit lassen sich die Töne ganz 
bestimmt nicht so genau abtasten, wie mit einem FPGA.

Sollte man also die gesamte Musiksoftware nicht einfach auf einen 
Ultrascale packen?

von ... (Gast)


Lesenswert?

> Sollte man also die gesamte Musiksoftware nicht einfach auf einen
> Ultrascale packen?

Das waer sicher sinnvoll.
Wenn man Musik fuer Fledermaeuse produzieren will.

Auf der anderen Seite haelt dich auch keiner ab, dass zu tun.

Mein "altes" Cubase arbeitet intern wohl mit 384 KHz und Gleitkomma.
Da konnte ich noch nie was beanstanden.

von happyfreddy (Gast)


Lesenswert?

Ich denke die Basis wird immer noch die CD Samplingrate
von 44,1 Khz sein. Würde man das ändern hätte die gesamte
CD Industrie ein Problem.
Natürlich kann man mit höheren Samplingrates ein Sample
aufnehmen , bei meinem DAT Recorder habe ich auch die
Auswahl mit 48 Khz oder 44,1 Khz aufzunehmen und in Studios
sind höhere Raten durchaus gebräuchlich.
Will man es jedoch auf ein Medium CD bringen muß man es
umrechnen. Kauft man sich Daten für seine Sample Instrumenten
Biblothek in einem Instrument so bekommt man diese Daten auf
CD  als Datenträger, die man einliest.

Ein Sample ist ja nichts weiter wie die digitalisierte Form
des Ausgangsmaterials : auf einem Instrument gespielter Ton.
Stimmen bei dem die Frequenzen nicht, kann das ein Sample auch
nicht ad hoc korrigieren.
Übrigens ist ein Sample auch nicht nur der gespielte Ton, sondern
es beinhaltet auch den Klang eines gespielten Tones.
Bei diesem Klang sind auch die Harmonischen mit von der Partie und
die liegen weitaus höher als der gespielte Ton. Würde man nur den
Ton als Sample aufzeichnen wäre das nur die Grundwelle ohne weitere
Harmonische.
Das wäre genau das was als Tonfrequenz aus einem TOS IC herauskommen
würde und dann noch obendrein als Rechtecksignal was vom Klang
her schonmal anders klingt als die von der Frequenz her vergleichbare
Sinusschwingung.
Ein Sägezahnton enthält alle Harmonischen von der ersten bis zur
letzten, ein Rechteckton enthält nur alle ungeraden Harmonischen,
ein Sinuston nur die Grundschwingung und keinerlei weitere Harmonische.
Die Grundschwingung selbst ist hierbei immer die erste Harmonische.

von chris_ (Gast)


Lesenswert?

happyfreddy
>Ich denke die Basis wird immer noch die CD Samplingrate
>von 44,1 Khz sein. Würde man das ändern hätte die gesamte
>CD Industrie ein Problem.

Allerdings ist das Problem der Signalerzeugung viel schwieriger zu 
handhaben, als die Musikaufnahme für eine CD.

Wie schwierig es ist, ein sauberes Rechecksignal auf einem 44.1kHz 
Abtastsystem zu erzeugen, wird hier ausführlich diskutiert:
Beitrag "Nicht-Sinus DDS"

von happyfreddy (Gast)


Lesenswert?

Einen idealen Rechteck zu erzeugen ist eh schwierig und wird immer
auf Kompromisse hinauslaufen. Wichtig hierbei sind gerade die
Klirrfaktoren K2 und K3. Gerade beim Pegelwechsel hat man es
mit Überschwingern zu tun oder im weiteren Verlauf mit Dachschrägen.
Durch weiteres Heraufsetzen der Samplingfrequenz kann hier am Ergebnis
zwar gefeilt werden nur ganz 100 %tig wird man es wohl nicht erreichen.
Die Kunst eines jeden Abtasttheorems ist ja eine gewisse " Voraussicht"
wo das umzusetzende Signal als nächtes seinen Pegel hat.
Wirklich voraussehen kann es nicht, also kehrt man den Prozeß um und 
ermittelt so den Wert etwas später. Nach dem Prinzip arbeitet jeder 
Signalkompressor.
Das Thema des Link ist übrigens hochinteressant

von chris_ (Gast)


Lesenswert?

>Einen idealen Rechteck zu erzeugen ist eh schwierig und wird immer
>auf Kompromisse hinauslaufen.

Eine tiefergehende Analyse zeigt sogar, das ein idealer Rechteck ein 
mathematisches Konstrukt ist und in der Realität gar nicht existieren 
kann.

von happyfreddy (Gast)


Lesenswert?

Genau, die leidige Zeitspanne Delta t . Sie ist nunmal da
und strebt nur gegen Null erreicht diesen Wert jedoch nie.
Die Frage die sich daraus ergibt kann nur lauten:
wie groß darf ein Kompromiß sein damit man damit leben kann.
Im Grunde kann man froh sein daß ein Gehör nur auf menschliche
Bedürfnisse zugeschnitten ist.

von Senior Fourier Gibb (Gast)


Lesenswert?

Ein Rechteck aus einem 74AC04 ist so eckig scharf,
damit könnte man sich rasieren wenn es in den Rasierer passen würde.

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Allerdings ist das Problem der Signalerzeugung viel schwieriger zu
> handhaben, als die Musikaufnahme für eine CD.

Nicht unbedingt. Aus diversen Gründen braucht man bei Aufnahmen eine 
höhere Rate als bei der Wiedergabe, bzw. es ist sinnvoll, so vorzugehen. 
Sprengt aber das Thema.

happyfreddy schrieb:
> Ich denke die Basis wird immer noch die CD Samplingrate
> von 44,1 Khz
Ja und nein.

1) Arbeitet man im analogen Zeitbereich, dann braucht man ein 
Abstastrate von wenigsten 384kHz, besser 768kHz, um die Bandbreite von 
ca 200kHz, die man für Rechtecke bei der Synthese benötigt, so 
abzubilden, dass nach Verrechnung keine hörbaren Artefakten im Spektrum 
erscheinen. Habe ich auf meiner HP sehr detailliert aufgeführt.

2) Arbeitet man aber mit analytischen Gleichungen voll synchron mit der 
Abtastrate, dann kann man ja die Zeitpunkte exakt berechnen und in die 
Gleichung einsetzen. Es gibt dann keinen Samplefehler und die 44kHz 
reichen. Die VA-Synthesizer arbeiten alle so.

Das Rechteck ist natürlich ein Problem, weil sich dessen Bandbreite 
nicht darstellen lässt. Dann gilt wieder 1)

von Zeno (Gast)


Lesenswert?

Senior Fourier Gibb schrieb:
> Ein Rechteck aus einem 74AC04 ist so eckig scharf,
> damit könnte man sich rasieren wenn es in den Rasierer passen würde.

Soweit Du das mit Deinen Messmitteln sehen und beurteilen kannst. Mit 
entsprechendem Equipment bleibt von der Schärfe nicht mehr viel übrig.

von J. S. (engineer) Benutzerseite



Lesenswert?

Hier nochmal ein Beispiel für direkte Signalerzeugung mit der 
Samplefrequenz, konkret am Beispiel des Phasings, also dem Addieren zwei 
Rechtecke. Abgebildet sind 1khz Rechteck bei 768, 96 und 48kHz 
Samplefrequenz. Die sind für sich noch ganz gut (auch bei 48kHz) wenn 
aber eine zweite leicht verstimmte Frequenz addiert wird, gibt es nur 
bei 768kHz noch eine weitgehend saubere Abbildung. Auch noch bei den 
üblichen 192kHz sieht man bei näherer Untersuchung etliche Artefakte, 
d.h. es kommt zu stotternden "Rechteckresten", die nach Filterung 
allerlei Störignale im Spektrum aufweisen.

von happyfreddy (Gast)


Lesenswert?

Um das was nach Addierung zweier Rechteckfrequenzen
sich bildet bedarf es keines TOS IC oder DDS .

Das hatte ich bei meinem ersten Selbstbauprojekt 1974 leider auch
erlebt: Hauptoszillatoren mit je 3 ICs  7473 nachgeschaltet als
Frequenzteiler. An den Ausgängen jedes IC sauber Rechteck,
noch dazu phasengekoppelt.
Einzeln klingt jeder Ton noch sauber aber sobald man diese
addiert kommt als Sound der bekannte " Orgelwolf " heraus
Das hört sich dann ungefähr so an wie das folgende Video zeigt:

https://www.youtube.com/watch?v=pcDJ-_n6co4

von Bonzo (Gast)


Lesenswert?

Jürgen S. schrieb:
> Auch noch bei den
> üblichen 192kHz sieht man bei näherer Untersuchung etliche Artefakte,
> d.h. es kommt zu stotternden "Rechteckresten", die nach Filterung
> allerlei Störignale im Spektrum aufweisen.

Aber sind diese zufälligen Welleneffekte durch das Verrechnen nicht das, 
was die elektronische Musik ausmacht?

von J. S. (engineer) Benutzerseite


Lesenswert?

> Aber sind diese zufälligen Welleneffekte durch das Verrechnen
> nicht das, was die elektronische Musik ausmacht?

Was einige "Dreckeffekte" in einfachen digitalen Synthessystemen wie SID 
angeht, sicher.

Aber diese Effekte der Bandbegrenzung machen konkret den Unterschied 
zwischen einer analogen und digitalen Tonerzeugung. Wie an anderer 
Stelle schon ausgeführt, muss man hier den Analogfeunden Recht geben, 
die bemängeln, dass digitale Synthesizer (und Orgeln!) nicht den Klang 
hinbekommen, den sie von analogen Systemen her kennen. Und der Grund 
liegt eben genau in der (frühen) digitalen Rasterung der nicht 
sinusförmigen Kurven. Dabei wird schnell Nyquist verletzt.

Auf die TOS-Thematik übertragen, wäre zu betrachten, wie sich die 
Quantisierung der Phase bei DDS infolge der endlichen Auflösung 
auswirkt. Wie weiter oben in der Tabelle gelistet, handelt es sich 
jeweils um ppm-Fehler. Wenn man diesen tunnelt, indem DDS betrieben 
wird, kommt es unweigerlich zu einem regelmäßigen Sprung in der Phase, 
wenn auch einen kleinen.

Bei starren Tönen wird das noch am Besten zu beobachten sein, daher wird 
man die Phase vorher verjittern, also ein Phasenrauschen addieren, 
sofern es sich nicht schon von Haus aus um einen modulierten Ton 
handelt, wo das nicht auffällt.

Mit meinem Synthie kann ich das dosiert machen, aber aus der Erinnerung 
von Messungen sind da keine wesentlichen Spektralanteile enthalten, wenn 
man ausreichend hoch prozessiert.

Um das aber trotzdem zu verbessern, lässt man üblicherweise die Phase 
ganzzahlig laufen, hat gar keinen Sprung und verliert dafür etwas 
Frequenzgenauigkeit. Benötigt wird dann eine Konstellation wie in dieser 
Tabelle:

Beitrag "Re: Top Octave Synthesizer für 443Hz"

... nur eben umgesetzt auf eine annähernd gleichstufige Stimmung, je 
nach Quarz.

Wenn man es ganz perfekt haben wollte, bräuchte es einen Quarztakt von 
196 hoch 11, den man auf jeder Stufe teilt. Das kriegt man aber nur in 
parallelen Stufen hin. Ansonsten 11 FPGAs mit Doppel-PLL:  MUL 37 / DIV 
49   und MUL 5 / DIVC 4  = 185/196.

Versucht hatte ich auch sowas wie 17 / 18 probiert, was von den kleinen 
Zahlen noch am Nähesten dran ist. Geht für 3 Oktaven und Computermusik 
:-)

von Andi (Gast)


Lesenswert?

Jürgen S. schrieb:
> ... Dabei wird schnell Nyquist verletzt.

Macht nichts, der ist seit 1976 tot.

von T.U.Darmstadt (Gast)


Lesenswert?

Andi schrieb:
> Macht nichts, der ist seit 1976 tot.
Er gilt aber noch :-)

happyfreddy schrieb:
> Das hatte ich bei meinem ersten Selbstbauprojekt 1974 leider auch
> erlebt: Hauptoszillatoren mit je 3 ICs  7473 nachgeschaltet als
> Frequenzteiler. An den Ausgängen jedes IC sauber Rechteck,
> noch dazu phasengekoppelt.
Ich glaube, die Phasenkoppelung könnte das Problem sein. Die 
Dreckeffekte sind immer an der selben Stelle und wiederholen sich 
rhytmisch. Das macht einen Ton.

von Martin K. (mkmannheim) Benutzerseite


Lesenswert?

happyfreddy schrieb:
> Gerade im Sakralbereich kann man sich mit einer temperierten Schwebung
> bei Terzen, Quinten , Septimen und Nonen nicht so recht anfreunden.
> Das was man dann will sind rein gestimmte Terzen,Quinten,Septimen und
> Nonen.

Liegt sicher auch an den sehr komplexen Akkorden an den Orgeln. Wobei: 
Meines Wissens hat ja doch Bach das erfunden, oder?

Andi schrieb:
> Mit einem FPGA, dass mit 100 MHz getacktet wird,
Es reicht sogar, einen althergebrachten ->Takt<-, also ohne das moderne 
C darin zu nehmen :-)

> und einer Abtastfrequenz von 96 kHz, kann man z.B. leicht 1024 DDS
> Oszillatoren berechnen, und zusammenmischen.
Du zielst jetzt auf additive Synthese aus Sinuswellen oder RAMs 
(wavetable synthese) ab?

Ein einzelner Oszillator mit voller Frequenz würde je bereits reichen, 
um die Anwendung abzudecken, der Rest ist parallel realisierte 
Zählerarchitektur.

von Zoran (Gast)


Lesenswert?

Frage von der Seite:

Der TOS wird angeblich in vielen Orgeln eingesetzt. Wie schafft man es, 
ein Vibrato zu erzeugen?

Wenn die Frequenzen festliegen, dann kann eigentlich nur der gesamte 
Oszillatortakt bewegt werden, oder?

Wie wurde dies angestellt?

von Larry (Gast)


Lesenswert?

> nur der gesamte Oszillatortakt bewegt werden, oder?

Brilliant erkannt!

Aber man kann noch phasenmodulieren!

von Andi (Gast)


Lesenswert?

Martin K. schrieb:
>> und einer Abtastfrequenz von 96 kHz, kann man z.B. leicht 1024 DDS
>> Oszillatoren berechnen, und zusammenmischen.
> Du zielst jetzt auf additive Synthese aus Sinuswellen oder RAMs
> (wavetable synthese) ab?

Ich meine die Verwendung eines Top Octave IC mit Teilern und das filtern 
der entstehenden Rechteckwellen war früher eine einfache Möglichkeit 
alle nötigen Frequenzen gleichzeitig zur Verfügung zu haben, und diese 
dann mit den Tastatur- und Registerkontakten durchzuschalten.

Mit einem FPGA kann man leicht für jede benötigte Frequenz einen DDS 
Oszillator implementieren, und dann beliebige Wellenformen aus einer 
Tabelle erzeugen. Dadurch werden die Oszillatoren flexibler in den 
Wellenformen und nicht mehr hart synchronisiert in der Frequenz, was das 
ganze lebendiger macht.
Um eine z.B. Hammond Orgel nachzubauen könnte man die einzelnen Original 
Zahnräder samplen, und für jede DDS die entsprechende Wellentabelle 
verwenden. Auch die Drehgeschwindigkeit der emulierten Zahnräder wäre 
genau kontrollierbar.

von J. S. (engineer) Benutzerseite


Lesenswert?

Andi schrieb:
> Dadurch werden die Oszillatoren flexibler in den
> Wellenformen und nicht mehr hart synchronisiert in der Frequenz, was das
> ganze lebendiger macht.
Zumindest würde man 11 einzelne Oszillatoren verwenden. Allerdings 
bringt das noch keinen Vorteil, wenn man korrekte konstante Frequenzen 
erzeugen will, weil es ja eine Lösung gibt, alle 11 Frequenzen richtig 
zueinander und ganzzahlig zu erzeugen. Siehe oben.

DDS mit irgendeinem Takt hat wieder den potenziellen Nachteil, dass sie 
jittert, wenn die Ganzzahligkeit nicht gegeben ist. Insbesondere beim 
Rechteck ist das relevant. Ich habe ja mal so eine Orgeltröte gebaut:
http://96khz.org/htm/virtualpldorganspartan3e.htm
welche auf dieser HW beasiert:
http://96khz.org/htm/pldddselectronicorgan.htm


Um wirklich flexbibel zu sein, muss jede Taste ihr eigenes Vibrato 
haben. Mein Synth macht das. Jeder Ton hat einen eigenen Tongenerator, 
eigene Parameter und eigene LFOs und seine eigenen Filterzustände. D.h. 
jede Taste ist ein eigenes monophones Instrument. Die Zustände für 
Vibrato und Filter sind nicht an andere Tasten gekoppelt.

> Um eine z.B. Hammond Orgel nachzubauen könnte man die einzelnen Original
> Zahnräder samplen, und für jede DDS die entsprechende Wellentabelle
> verwenden.
Laut einer Konversation, die ich vor Jahren mal mit Karsten Meyer hatte, 
funktioniert sein "HOAX" genau so, eben mit einer DDS. Mit FPGAs sind 
DDS allerdings so hochgenau getaktet, dass die das nicht mehr viel 
ausmacht. Wenn ich mich richtig erinnere, hat er auch nur einen Takt und 
eine Tabelle für alle Töne. Damit wird auch Vibrato für alle Töne 
konstant sind. Passt allerdings genau zu der Funktion der HO.

von Christoph M. (mchris)


Lesenswert?

Jürgen S.
>Ich habe ja mal so eine Orgeltröte gebaut:
>http://96khz.org/htm/virtualpldorganspartan3e.htm

Interessant ... der Download-Link funktioniert nicht:

Downloads
Download the programming files for S3E:  vpldorgan07

von Zoran (Gast)


Lesenswert?

Beitrag "CPLD als Top Octave Generator nutzen?"
Larry schrieb:
>> nur der gesamte Oszillatortakt bewegt werden, oder?
> Brilliant erkannt!
Und das bedeutet, dass für eine andere Stimmung eine andere 
Oszillationsfrequenz von Nöten ist. Nicht alle Musiker spielen auf den 
440Hz. Im Gegenteil: Orchester haben andere Frequenzen. Eine Orgel, die 
in einem großen Konzertsaal mitspielen soll, wie bei Kantaten oder 
Oratorien, müsste also erst einmal das Quarz ausgetauscht bekommen.

Und wie bearbeitet man Stücke mit reiner Stimmung? In welcher Stimmung 
soll das TOG gearbeitet sein? Brauchte es mehrere TOGs?

Wie spielte man in Kirchentonarten?

Kon Lion schrieb:
> Soll ich einfach versuchen 13 Divide-by-N counter
Ich glaube, es wären deren 11

Jürgen S. schrieb:
> Bei den angegebenen 2,00024 MHz errechne ich einen Lageoffset für die
> gleichstufige Stimmung zu 0,5%. Besser wäre meines Erachtens eine
> Frequenz von 1,999360 MHz. Das würde das C exakt treffen, liegt halt von
> den Fehlern nicht mehr so balanciert.
Das ist nachvollziehbar. Es spielt aber niemand in C :-)

von Rolf S. (audiorolf)


Lesenswert?

Zoran schrieb:
>> Das würde das C exakt treffen
> Das ist nachvollziehbar. Es spielt aber niemand in C :-)
Normale Orgeln für den Heimgebrauch sind immer in weißen und schwarzen 
Tasten so aufgebaut, dass die weißen C-Dur ergeben. Das ist der normale 
Aufbau. Was der Grund ist, weiß ich nicht, aber es ist so.

Erst in anderen Tonarten braucht jemand überhaupt die schwarzen Tasten. 
Deshalb spielen die Tastenmusiker gerne in C-Dur. Weil sie es so gelernt 
haben und es einfacher ist.

von J. S. (engineer) Benutzerseite


Lesenswert?

Zoran schrieb:
> eine andere Oszillationsfrequenz von Nöten ist.
Meine analoge Orgel Baujahr 1982 konnte man in der Tonhöhe verdrehen und 
zwar global. Die dürfte einen solchen einstellbaren Taktgenerator gehabt 
haben. Wie genau die war, kann ich nicht sagen. Von Digitalorgeln (und 
zwar solchen mit Pfeifen) weiß ich, dass manche einstellbar sind. Die 
Pfeifen sind das natürlich nicht, aber das es ohnehin nicht für jeden 
Ton ein gibt, tut das was wohl nicht viel. Auf der Musikmesse hatte mal 
einer eine Art MOD präsentiert, bei dem die Pfeifen angepasst wurden 
(kleine bewegliche Decklungen). Damit hat er das Zentrum der Resonanz 
verschieben können.

Zu der anderen Frage nach den Kirchentonarten: Das war doch eigentlich 
nur eine Frage der Lage der Halbtonschritte, meine ich mich zu erinnern. 
Ich hatte mal ein Arrangement passend zu äolischem Moll zu machen. Das 
reduzierte sich auf die Anpassung der MIDI-Noten-Zuordnung. Das ist also 
auf einem Layer weiter oben.
Was es allerdings zu beachten gilt, sind Stimmungen wie die Werckmeister 
und anderen, die mitunter gefordert sein könnten (eventuell auch im 
Zusammenhang mit Kirchentonarten).

Die bilden die Note auf eine andere Frequenz ab. Um das in den Griff zu 
bekommen, braucht jede Note ihre eigene Frequenz. In typischen 
MIDI-Klangerzeugern ist das kaum implementiert. Eine Ausnahme sind 
einige Geräte von Korg und ältere Workstations von Roland.

von J. S. (engineer) Benutzerseite


Lesenswert?

> Es spielt aber niemand in C :-)
Tja, wenn man ein elektronisches Musikinstrument für Orchesterbegleitung 
bauen möchte und rein oder mit Sonderstimmungen spielen will, braucht es 
mehr. Der nächste Haken ist nämlich der Kammerton: Spielt das Orchester 
auf 443 oder auch tiefer (Pariser Ton, Barockton) dann geht das mit den 
standardisierten 440Hz Instrumenten nicht mehr zusammen. Man kann die 
meisten zwar tunen, aber nicht an beliebige Grundtöne anpassen. Das ist 
aber das Problem, der reinen Stimmung, die ja nur in einer Tonart 
herzustellen ist.

Weiter oben hatte ich eine Tabelle gepostet, für eine in C reine 
Stimmung. Für eine Begleitung einer Akustikgitarre, die oft in D oder G 
gestimmt wird, ginge das wieder nicht.

Aus dem Grund hat Bach ja das wohltemperierte Klavier (Cembalo) 
erfunden. :-)


Theoretisch bräuchte man für jede Tonart eine Transpositionstabelle, um 
die Kirchentonarten in den Griff zu kriegen, eine 
MIDI-Frequenz-Übersetzung für die Stimmungen i.A. des Grundtons und oben 
drauf noch eine Ableitung für die Frequenzen im Zusammenspiel mit der 
Höhe des Kammertons. Bei meinem ersten Synth hatte ich mehrere solcher 
Tabellen implementiert, inklusive meiner 185/196 und 17/18 
"Telespiel-Stimmung" sowie abgeleiteter Rasterungen für den C-64 SID, 
samt 2 reiner Stimmungen in C (am) und G (dm).

Inzwischen löse ich es komplett modular und lasse die Frequenzen in 
Echtzeit berechnen. Der individuelle Kammerton ist von 0 bis 511,99 Herz 
auf 1/128 Hz genau einstellbar, ebenso der Bezug der Stimmung zum 
Grundton. Damit sind alle 11 reinen Stimmungen ohne Transponierung und 
Detuning einstellbar. Transponierungen laufen über +/-64 Noten. Damit 
kann man jedes MIDI in jede Tonart und Stimmung verschieben. MIDI Noten 
gibt es 256 von 0,03 bis über 80kHz :-) Über 2 Parameter sind auch 
Skalierungen möglich, um z.B. die Spreizung beim Klavier nachzubilden. 
Das kann bis heute kein mir bekannter Musik-Synthesizer weltweit.

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite



Lesenswert?

Christoph M. schrieb:
> Jürgen S.
>>Ich habe ja mal so eine Orgeltröte gebaut:
>>http://96khz.org/htm/virtualpldorganspartan3e.htm
> Interessant ... der Download-Link funktioniert nicht:

Ich hatte den irgendwann, mal rausgenommen, weil es Diskrepanzen mit der 
PMOD-Pin-Zuordung gab: Manche hatten die auf einer anderen Seite von mir 
vorgeschlagenen originalen Digilent Pmod-Module draufgesetzt und es kam 
kein Sound. Anschließen muss man es so, wie hier beschrieben:
http://96khz.org/doc/virtualpldorgan2003spartan3e.htm
Dort ist auch der richtige link.

Die anderen Grafiken hatte ich dann verschoben. Diese Schaltungen 
verwende ich in anderem Zusammenhang, um z.B. einen symmetrischen 
Ausgang zu haben. Dabei wird ein normales und ein invertiertes PDM 
ausgegeben und ein Y-Kabel an die RCA-Buchsen angesteckt, welches auf 
ein 6,3er Klinkenkabel geht. Das ist auch beim 1-Kanal-Ausgang erheblich 
störsicherer gegen den GND-Einfluß, als so, wie der OP im Original 
verschaltet ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.