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
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?
> 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.
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).
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.
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.
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?
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.
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.
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.
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.
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 |
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?
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?
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).
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...
> da hatten wir das Thema vor fünf Jahren mal
Ja, da war das aber noch ohne die Oktavteiler dahinter :-).
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
|
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?
> 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.
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.
./. 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
> 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.
./. 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
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...
./. 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.
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 |
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.
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
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.
... 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
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.
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.
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.
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
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 :-)
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
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.
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 ...
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
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.
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.
> 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.
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.
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.
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.
> 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.
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
>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".
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.
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.
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 ??
> 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.
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 ?
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.
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.
... 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.
> 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.
... 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.
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
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?
> 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.
... 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.
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.
Was ist TOS? Ich kenne das nur als Betriebssystem: https://de.wikipedia.org/wiki/TOS_(Betriebssystem)
chris schrieb: > Was ist TOS? Ich kenne das nur als Betriebssystem: Thread Thema lesen und Generator durch Syntheziser ersetzen!
Er spricht aber die ganze Zeit von TOS-ICs, die er noch auf Lager hat. Ich hätte gerne das Datenblatt.
> 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...
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.
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.
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.
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.
... 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...
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.
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.
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."
... 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.
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.
... 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
> 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 :-).
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.
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.
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
... 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.
> 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.
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.
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:
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 :-)
> 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.
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.
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
@ 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 ?
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?
> 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.
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.
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"
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
>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.
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.
Ein Rechteck aus einem 74AC04 ist so eckig scharf, damit könnte man sich rasieren wenn es in den Rasierer passen würde.
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)
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.
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.
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
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?
> 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 :-)
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.
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.
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?
> nur der gesamte Oszillatortakt bewegt werden, oder?
Brilliant erkannt!
Aber man kann noch phasenmodulieren!
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.
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.
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
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 :-)
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.
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.
> 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.