VERSION 5.00 Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "comdlg32.ocx" Begin VB.Form frmDatei BackColor = &H00E0E0E0& ClientHeight = 10095 ClientLeft = 1260 ClientTop = 660 ClientWidth = 12675 FillColor = &H00FFFFFF& ForeColor = &H00000000& Icon = "Huku1.frx":0000 LinkTopic = "Form1" ScaleHeight = 10095 ScaleWidth = 12675 Begin VB.CommandButton Variation2 BackColor = &H00FFC0C0& Caption = "Var2" Default = -1 'True BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 9375 Style = 1 'Grafisch TabIndex = 87 ToolTipText = "Csound-Start - das Ergebnis mit variierten Werten zur Probe anhören - die Orc-datei und ein Teil der Sco-Datei bleibt erhalten" Top = 9345 Width = 700 End Begin VB.TextBox Abstandstext Alignment = 2 'Zentriert BackColor = &H00FFFFFF& BorderStyle = 0 'Kein BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 240 Left = 8640 TabIndex = 86 Text = "0" ToolTipText = "Abstand der kopierten Hüllkurve von der Originalhüllkurve hier eintragen (nur positive Werte)" Top = 3390 Width = 705 End Begin VB.CommandButton kopieren BackColor = &H00E0E0E0& Caption = "Copy" Height = 315 Left = 8640 Style = 1 'Grafisch TabIndex = 85 ToolTipText = $"Huku1.frx":08CA Top = 3030 Width = 705 End Begin VB.CommandButton PRFix BackColor = &H00E0E0E0& BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 8640 MaskColor = &H00E0E0E0& Style = 1 'Grafisch TabIndex = 84 ToolTipText = "rot: der Knopf 'Point Reset (P R)' ist deaktiviert" Top = 2640 Width = 700 End Begin VB.CommandButton StartStoppLos BackColor = &H00E0E0E0& Caption = "P R" Enabled = 0 'False Height = 315 Left = 8640 MaskColor = &H00E0E0E0& Style = 1 'Grafisch TabIndex = 81 ToolTipText = "grün: Punkteautomatik ist eingeschaltet - grau: die von Hand gesetzten Kurvenpunktmarkierungen werden berücksichtigt" Top = 2295 Width = 700 End Begin VB.CommandButton Cool BackColor = &H00BFFA8F& Caption = "Cool" Height = 555 Left = 10830 Style = 1 'Grafisch TabIndex = 80 ToolTipText = "grün mit, grau ohne Cool Edit" Top = 1710 Width = 700 End Begin VB.CommandButton Command19 BackColor = &H00FFC0C0& Caption = "Cso2" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 10095 Style = 1 'Grafisch TabIndex = 79 ToolTipText = $"Huku1.frx":0975 Top = 1710 Width = 700 End Begin VB.CommandButton StartStoppFix BackColor = &H00E0E0E0& BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 9360 MaskColor = &H00E0E0E0& Style = 1 'Grafisch TabIndex = 78 ToolTipText = "rot: Cso1-Knopf ist deaktiviert" Top = 2295 Width = 700 End Begin VB.TextBox Text18 Alignment = 1 'Rechts BackColor = &H00E0E0E0& BorderStyle = 0 'Kein Height = 195 Left = 60 TabIndex = 77 Text = "Tempo" Top = 9555 Width = 510 End Begin VB.TextBox Tempo Alignment = 2 'Zentriert BackColor = &H00FFFFFF& BorderStyle = 0 'Kein BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Left = 630 TabIndex = 76 Text = "1" ToolTipText = "Tempo eintragen (1 = Originaltempo, 2 = doppelte Dauer, also halbes Tempo). Dann 'Z' drücken!" Top = 9540 Width = 510 End Begin VB.CommandButton Command17 BackColor = &H00E0E0E0& Caption = "d" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 330 Left = 8895 Style = 1 'Grafisch TabIndex = 75 ToolTipText = "ein neues Dauerton-Plugin (eine Default-Datei) erstellen" Top = 5715 Width = 240 End Begin VB.CommandButton Command16 BackColor = &H00E0E0E0& Caption = "e" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 330 Left = 8640 Style = 1 'Grafisch TabIndex = 74 ToolTipText = "ein neues Einzelton-Plugin (eine Default-Datei) erstellen" Top = 5715 Width = 240 End Begin MSComDlg.CommonDialog CommonDialog2 Left = 9600 Top = 5490 _ExtentX = 847 _ExtentY = 847 _Version = 393216 DefaultExt = "*.orc" DialogTitle = "Orc-Datei auswählen" FileName = "*.orc" Filter = "Orchester|*.orc" InitDir = "C:\Arbeit\" End Begin VB.CommandButton Command15 BackColor = &H00E0E0E0& Caption = "L" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 330 Left = 8640 Style = 1 'Grafisch TabIndex = 73 ToolTipText = $"Huku1.frx":09FE Top = 8670 Width = 495 End Begin VB.CommandButton Pluginfo BackColor = &H00E0E0E0& Caption = "info" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 330 Left = 8640 Style = 1 'Grafisch TabIndex = 72 ToolTipText = "PLUG-Info" Top = 5370 Width = 495 End Begin VB.CommandButton Csoundstore BackColor = &H00FFBFDC& Caption = "S" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 330 Left = 8640 Style = 1 'Grafisch TabIndex = 71 ToolTipText = $"Huku1.frx":0ACC Top = 7755 Width = 495 End Begin VB.CommandButton Scoknopf BackColor = &H00E0E0E0& Caption = "sco" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 8640 Style = 1 'Grafisch TabIndex = 70 ToolTipText = "die Datei Resonanz.sco im Editor ansehen und gegebenenfalls verändern" Top = 8100 Width = 495 End Begin VB.CommandButton Orcknopf BackColor = &H00E0E0E0& Caption = "orc" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 8640 Style = 1 'Grafisch TabIndex = 69 ToolTipText = "die Datei Resonanz.orc im Editor ansehen und gegebenenfalls verändern" Top = 7185 Width = 495 End Begin VB.CommandButton Csoundknopf BackColor = &H00FFC0C0& Caption = "CSO" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 8640 Style = 1 'Grafisch TabIndex = 68 ToolTipText = "Csound starten, ohne die Einstellungen in Resonanz.orc und Resonanz.sco zu verändern" Top = 6615 Width = 495 End Begin VB.CommandButton Plugknopf BackColor = &H00E0E0E0& Caption = "PLG" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 8640 Style = 1 'Grafisch TabIndex = 67 ToolTipText = "PLUG: Plugins in Resonanz.orc und Resonanz.sco einbauen, um die Klänge zu erweitern" Top = 6060 Width = 495 End Begin VB.CommandButton Command13 BackColor = &H00BFFA8F& Caption = "Reaper" Height = 330 Left = 7155 Style = 1 'Grafisch TabIndex = 66 ToolTipText = "Reaper starten und die variierte Hüllkurve ansehen. Erst 'Snapshot' drücken!" Top = 5100 Visible = 0 'False Width = 1020 End Begin VB.CommandButton Z_Enter2 Caption = "D" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 420 Left = 1485 TabIndex = 65 ToolTipText = "Tondauern verringern" Top = 9480 Width = 225 End Begin VB.CommandButton K_Enter Caption = "K" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 420 Left = 7995 TabIndex = 64 ToolTipText = "Klangwerte mit der Zufallsfunktion verändern - mit dem Schieberegler stellt man die Stärke der Variationen ein" Top = 9480 Width = 225 End Begin VB.CommandButton K_Reset BackColor = &H00C0E0FF& Caption = "R" Height = 420 Left = 8220 Style = 1 'Grafisch TabIndex = 63 ToolTipText = "Reset" Top = 9480 Width = 225 End Begin VB.CommandButton H_Enter Caption = "H" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 420 Left = 5820 TabIndex = 62 ToolTipText = "Tonhöhenwerte mit der Zufallsfunktion verändern - mit dem Schieberegler stellt man die Stärke der Variationen ein" Top = 9480 Width = 225 End Begin VB.CommandButton H_Reset BackColor = &H00C0E0FF& Caption = "R" Height = 420 Left = 6045 Style = 1 'Grafisch TabIndex = 61 ToolTipText = "Reset" Top = 9480 Width = 225 End Begin VB.CommandButton L_Enter Caption = "L" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 420 Left = 3660 TabIndex = 60 ToolTipText = "Lautstärkewerte mit der Zufallsfunktion verändern - mit dem Schieberegler stellt man die Stärke der Variationen ein" Top = 9480 Width = 225 End Begin VB.CommandButton L_Reset BackColor = &H00C0E0FF& Caption = "R" Height = 420 Left = 3885 Style = 1 'Grafisch TabIndex = 59 ToolTipText = "Reset" Top = 9480 Width = 225 End Begin VB.CommandButton Z_Reset BackColor = &H00C0E0FF& Caption = "R" Height = 420 Left = 1725 Style = 1 'Grafisch TabIndex = 58 ToolTipText = "Reset" Top = 9480 Width = 225 End Begin VB.CommandButton Z_Enter1 Caption = "Z" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 420 Left = 1245 TabIndex = 57 ToolTipText = $"Huku1.frx":0BA9 Top = 9480 Width = 225 End Begin VB.CommandButton Variation BackColor = &H00FFC0C0& Caption = "Var1" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 8640 Style = 1 'Grafisch TabIndex = 56 ToolTipText = "Csound-Start - das Ergebnis mit variierten Werten zur Probe anhören" Top = 9345 Width = 700 End Begin VB.VScrollBar VScroll4 Height = 7710 LargeChange = 1000 Left = 8175 Max = 0 Min = 32767 SmallChange = 10 TabIndex = 55 Top = 1710 Width = 270 End Begin VB.VScrollBar VScroll3 Height = 7710 LargeChange = 1000 Left = 6015 Max = 0 Min = 32767 SmallChange = 10 TabIndex = 54 Top = 1710 Width = 270 End Begin VB.VScrollBar VScroll2 Height = 7710 LargeChange = 1000 Left = 3855 Max = 0 Min = 32767 SmallChange = 10 TabIndex = 53 Top = 1695 Width = 270 End Begin VB.VScrollBar VScroll1 Height = 7710 LargeChange = 1000 Left = 1710 Max = 0 Min = 32767 SmallChange = 10 TabIndex = 52 Top = 1695 Width = 270 End Begin VB.CommandButton Command12 BackColor = &H00C8F2F2& Caption = "anhören" Height = 315 Left = 8640 Style = 1 'Grafisch TabIndex = 51 ToolTipText = "Sample anhören" Top = 4605 Width = 900 End Begin VB.TextBox Text17 Alignment = 2 'Zentriert BackColor = &H00E0E0E0& BorderStyle = 0 'Kein Height = 285 Left = 8610 TabIndex = 50 Top = 4980 Width = 1935 End Begin MSComDlg.CommonDialog CommonDialog1 Left = 8850 Top = 5460 _ExtentX = 847 _ExtentY = 847 _Version = 393216 DefaultExt = "*.wav" DialogTitle = "Soundfile für den Sampler auswählen" FileName = "*.wav" Filter = "Soundfiles|*.wav" InitDir = "C:\Arbeit\" End Begin VB.CommandButton Command11 BackColor = &H00C8F2F2& Caption = "einbauen" Height = 315 Left = 9630 Style = 1 'Grafisch TabIndex = 49 ToolTipText = "Sample einbauen. Jede beliebige (Stereo)-WAV-Datei, die sich auf der Festplatte befindet, kann eingebaut werden!" Top = 4605 Width = 900 End Begin VB.CommandButton Command10 BackColor = &H00FFFFFF& Caption = "e" Height = 405 Left = 11940 Style = 1 'Grafisch TabIndex = 48 TabStop = 0 'False ToolTipText = "Ende" Top = 165 Width = 660 End Begin VB.TextBox Text16 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 39 Top = 9165 Width = 1275 End Begin VB.TextBox Text15 BackColor = &H008080FF& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11355 TabIndex = 38 Top = 8775 Width = 1275 End Begin VB.TextBox Text14 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 37 Top = 8175 Width = 1275 End Begin VB.TextBox Text13 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 36 Top = 7770 Width = 1275 End Begin VB.TextBox Text12 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 35 Top = 7365 Width = 1275 End Begin VB.TextBox Text11 BackColor = &H00C8F2F2& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 34 Top = 6780 Width = 1275 End Begin VB.TextBox Text10 BackColor = &H00C8F2F2& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 33 Top = 6375 Width = 1275 End Begin VB.TextBox Text9 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 32 Top = 5985 Width = 1275 End Begin VB.TextBox Text8 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 27 Top = 5415 Width = 1275 End Begin VB.TextBox Text7 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 26 Top = 5010 Width = 1275 End Begin VB.TextBox Text6 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 25 Top = 4605 Width = 1275 End Begin VB.TextBox Text5 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 24 Top = 4200 Width = 1275 End Begin VB.TextBox Text4 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 22 Top = 3795 Width = 1275 End Begin VB.TextBox Text3 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 11340 TabIndex = 20 Top = 3405 Width = 1275 End Begin VB.TextBox Text2 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 10680 TabIndex = 19 Top = 2970 Width = 1935 End Begin VB.TextBox Text1 BackColor = &H00F4F4F4& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00B00000& Height = 360 Left = 10680 TabIndex = 15 Top = 2550 Width = 1935 End Begin VB.CommandButton Command9 BackColor = &H00E0E0E0& Caption = "kmp" Height = 420 Left = 10140 Style = 1 'Grafisch TabIndex = 14 ToolTipText = "Komponi2_Spezialist.txt öffnen" Top = 960 Visible = 0 'False Width = 435 End Begin VB.CommandButton Command8 BackColor = &H00BFFAFF& Caption = "rsz" Height = 405 Left = 11955 Style = 1 'Grafisch TabIndex = 13 ToolTipText = "Huku.rsz im Editor ansehen" Top = 645 Width = 660 End Begin VB.CommandButton Command7 BackColor = &H00C0C0C0& Caption = "u" Height = 555 Left = 10665 Style = 1 'Grafisch TabIndex = 5 TabStop = 0 'False ToolTipText = "hell: Start-Stoppunkte beachten, dunkel: Selektion beachten" Top = 195 Visible = 0 'False Width = 345 End Begin VB.CommandButton Stimmen BackColor = &H00C0E0FF& Caption = "vgl" Height = 405 Left = 11940 Style = 1 'Grafisch TabIndex = 3 ToolTipText = "Vergleichston" Top = 1110 Width = 660 End Begin VB.CommandButton Command6 BackColor = &H00E0E0E0& Caption = "dir" Height = 405 Left = 11205 Style = 1 'Grafisch TabIndex = 12 TabStop = 0 'False ToolTipText = "alle Wav-Dateien in C:\ Arbeit auflisten" Top = 645 Width = 660 End Begin VB.CommandButton Command5 BackColor = &H00BFFA8F& Caption = "Reaper" Height = 555 Left = 8640 Style = 1 'Grafisch TabIndex = 2 ToolTipText = "Reaper starten und die Hüllkurve der aktuellen (im Feld mit der blauen Schrift angezeigten) Datei ansehen" Top = 1710 Width = 700 End Begin VB.ListBox Testliste Appearance = 0 '2D BackColor = &H00FFFFFF& BeginProperty Font Name = "Courier New" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 7695 Index = 4 IntegralHeight = 0 'False Left = 6555 TabIndex = 11 TabStop = 0 'False ToolTipText = "der Schieberegler auf der rechten Seite dient dem Einstellen der Variationsstärke" Top = 1680 Width = 1470 End Begin VB.ListBox Testlist Appearance = 0 '2D BackColor = &H00FFFFFF& BeginProperty Font Name = "Courier New" Size = 12 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 1365 IntegralHeight = 0 'False Left = 75 TabIndex = 10 Top = 165 Width = 11040 End Begin VB.ListBox Testliste Appearance = 0 '2D BackColor = &H00FFFFFF& BeginProperty Font Name = "Courier New" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 7695 Index = 3 IntegralHeight = 0 'False Left = 4395 TabIndex = 9 TabStop = 0 'False ToolTipText = "der Schieberegler auf der rechten Seite dient dem Einstellen der Variationsstärke" Top = 1680 Width = 1470 End Begin VB.ListBox Testliste Appearance = 0 '2D BackColor = &H00FFFFFF& BeginProperty Font Name = "Courier New" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 7695 Index = 2 IntegralHeight = 0 'False Left = 2235 TabIndex = 8 TabStop = 0 'False ToolTipText = "der Schieberegler auf der rechten Seite dient dem Einstellen der Variationsstärke" Top = 1680 Width = 1470 End Begin VB.ListBox Testliste Appearance = 0 '2D BackColor = &H00FFFFFF& BeginProperty Font Name = "Courier New" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 7695 Index = 1 IntegralHeight = 0 'False Left = 75 TabIndex = 7 TabStop = 0 'False ToolTipText = "der Schieberegler auf der rechten Seite dient dem Einstellen der Variationsstärke" Top = 1680 Width = 1470 End Begin VB.CommandButton Command4 BackColor = &H00FFBFDC& Caption = "Snapshot" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 11565 Style = 1 'Grafisch TabIndex = 4 ToolTipText = $"Huku1.frx":0C6F Top = 1710 Width = 1020 End Begin VB.CommandButton Command3 Appearance = 0 '2D BackColor = &H00FFC0C0& Caption = "Cso1" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 555 Left = 9360 Style = 1 'Grafisch TabIndex = 0 ToolTipText = $"Huku1.frx":0D53 Top = 1710 Width = 700 End Begin VB.CommandButton Command2 BackColor = &H00E0E0E0& Caption = "i" Height = 405 Left = 11205 Style = 1 'Grafisch TabIndex = 6 TabStop = 0 'False ToolTipText = $"Huku1.frx":0DE1 Top = 1125 Width = 660 End Begin VB.CommandButton Command1 BackColor = &H0080C0FF& Caption = "&n" Height = 340 Left = 11145 Style = 1 'Grafisch TabIndex = 1 ToolTipText = "Neue Eingaben " Top = 1755 Visible = 0 'False Width = 435 End Begin VB.Label Label18 Alignment = 2 'Zentriert Caption = "Sample" Height = 210 Left = 9270 TabIndex = 83 Top = 4335 Width = 630 End Begin VB.Label Label17 Caption = "Label17" Height = 285 Left = 6915 TabIndex = 82 Top = 2625 Width = 630 End Begin VB.Label Label16 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Fester Klang" ForeColor = &H80000008& Height = 255 Left = 8760 TabIndex = 47 ToolTipText = "für alle Töne" Top = 9225 Width = 2400 End Begin VB.Label Label15 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Feste Tonhöhe" ForeColor = &H80000008& Height = 255 Left = 8775 TabIndex = 46 ToolTipText = "für alle Töne" Top = 8865 Width = 2400 End Begin VB.Label Label14 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Klangfrequenzmultiplikator" ForeColor = &H80000008& Height = 255 Left = 8775 TabIndex = 45 ToolTipText = "für alle Töne" Top = 8250 Width = 2400 End Begin VB.Label Label13 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Tonhöhenmultiplikator" ForeColor = &H80000008& Height = 255 Left = 8760 TabIndex = 44 ToolTipText = "für alle Töne" Top = 7845 Width = 2400 End Begin VB.Label Label12 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Gesamtlautstärke" ForeColor = &H80000008& Height = 255 Left = 8790 TabIndex = 43 ToolTipText = "Gesamtlautstärke (für alle Töne)" Top = 7425 Width = 2400 End Begin VB.Label Label11 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Sample - Frequenzfaktor" ForeColor = &H80000008& Height = 255 Left = 8745 TabIndex = 42 Top = 6855 Width = 2400 End Begin VB.Label Label10 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Sample - Lautstärkefaktor" ForeColor = &H80000008& Height = 255 Left = 8760 TabIndex = 41 Top = 6450 Width = 2400 End Begin VB.Label Label9 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "FOF / Sinus - Lautstärkefaktor" ForeColor = &H80000008& Height = 255 Left = 8760 TabIndex = 40 Top = 6045 Width = 2400 End Begin VB.Label Label8 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "FOM" ForeColor = &H80000008& Height = 255 Left = 10665 TabIndex = 31 ToolTipText = "für den FOF-Generator" Top = 5505 Width = 495 End Begin VB.Label Label7 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "DEL" ForeColor = &H80000008& Height = 255 Left = 10680 TabIndex = 30 ToolTipText = "für den FOF-Generator" Top = 5085 Width = 495 End Begin VB.Label Label6 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "ENTE" ForeColor = &H80000008& Height = 255 Left = 10695 TabIndex = 29 ToolTipText = "für den FOF-Generator" Top = 4695 Width = 495 End Begin VB.Label Label5 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "FUB" ForeColor = &H80000008& Height = 255 Left = 8745 TabIndex = 28 ToolTipText = "für den FOF-Generator" Top = 4290 Width = 2415 End Begin VB.Label Label4 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "FUA" ForeColor = &H80000008& Height = 255 Left = 8760 TabIndex = 23 ToolTipText = "für den FOF-Generator" Top = 3900 Width = 2400 End Begin VB.Label Label3 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Sinus (ja oder nein)" ForeColor = &H80000008& Height = 210 Left = 9705 TabIndex = 21 Top = 3510 Width = 1455 End Begin VB.Label Label2 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Hüllkurvenspur" ForeColor = &H80000008& Height = 240 Left = 9420 TabIndex = 18 Top = 3045 Width = 1125 End Begin VB.Label Label0 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H00E0E0E0& Caption = "Reaper-Datei" ForeColor = &H80000008& Height = 255 Left = 9465 TabIndex = 17 Top = 2640 Width = 1035 End Begin VB.Label Label1 Alignment = 1 'Rechts Appearance = 0 '2D BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "Reaperfile" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H80000008& Height = 15 Left = 8535 TabIndex = 16 Top = 2595 Width = 2460 End End Attribute VB_Name = "frmDatei" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False '----------------------------------------------------------------------------------------------- 'Hukumu - früher Huku 'v1 (03.01.2011) 'v2.02 (17.02.2011) 'v2.03 (14.08.2011) jetzt mit Sample-Option 'v2.04 (09.05.2012) 'v2.05 (25.03.2013) 'v2.90 (03.09.2013) mit Variation 'v3 (18.09.2013) mit Variation - und Reaperdatei (.rpp) wird geschrieben 'v3.2 (29.09.2013) Design etwas geändert, Fehler korrigiert 'v4 (11.10.2013) PLUG eingebaut 'v4.1 (15.10.2013) in Sub Z_Enter1_Click() auf Normzeitpunkt umrechnen ' (die7 vorige Version befindet sich im Ordner 35!) 'v4.2 (09.12.2013) Randomize eingefügt 'v4.3 (10.11.2014) mit Zeitskalierung (Tempoeinstellung) 'v4.31 (12.11.2014) 'v4.32 (30.03.2015) 'v4.33 (23.04.2015) 'v4.4 (24.04.2015) Jetzt können 4 verschiedene ResoneHu aufgerufen werden: ' ResoneHu.exe orc schreiben mit Cool Edit ' ResoneHu2.exe orc nicht schreiben mit Cool Edit ' ResoneHu3.exe orc schreiben ohne Cool Edit ' ResoneHu4.exe orc nicht schreiben ohne Cool Edit ' 'v4.5 (14.05.2015) markierten Startpunkt und markierten Endpunkt speichern. 'v4.52 (16.05.2015) viele Fehler korrigiert und noch kleine kosmetische Verbesserungen 'v5.0 (21.05.2015) Jetzt mit Copy-Funktion. Einige andere Funktionen verbessert 'v5.1 (25.05.2015) Einige weitere Funktionen verbessert 'v5.11 (17.07.2015) Clipboard.SetText in Sub Text1_Change() 'v5.2 (28.01.2019) die Soundfile-Namen werden in C:\Arbeit\mix-hukumu.txt eingetragen 'v5.3 (11.04.2019) keine Eintragung des neuen Reaperdateinamens bei Snapshot 'v5.31 (24.04.2019) Call mixdateischreiben rausgeworfen ' 'Analyse der von Reaper geschriebenen Datei (Endung .rpp), 'nachdem in Reaper eine mit Namen versehene Lautstärkehüllkurve gezeichnet wurde. 'Diese Lautstärkehüllkurve muss zwei markierte Punkte haben, eine für den Start und einen 'für das Ende dieser Kurve. (Markierte Punkte werden als Punkt und nicht als Ring dargestellt). 'Außerdem müssen an geeigneten Stellen Marker gesetzt werden, die im Bezeichner 'Frequenzwerte enthalten sollen (z.B. 221.7 Hz). 'Nach der Analyse wird eine Resone-Datei Huku.rsz geschrieben. 'Der Vorläufer von Resone ist TEXTLESER (vom 01.08.2004). '----------------------------------------------------------------------------------------------- Option Explicit Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hWnd As Long, _ ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Const WM_CLOSE = 16 Dim Zl(1000000) As String ' hier kommen alle Zeilen rein! Dim ZP(12000), LT(12000) As Variant Dim HT(12000), KL(10000) As Double ' soll wohl so sein (Double) ' 12000 ist neu - bisher 3000 (25.03.2013) Dim Markerfeld(12000), Markerfreq(12000), Markerzeiten(120000) As Variant ' 12000 ist neu - bisher 3000 (25.03.2013) Dim ZPmm(12000), LTmm(12000) As Variant ' NEU am 05.09.2013 Dim HTmm(12000), KLmm(12000) As Double ' NEU am 05.09.2013 Dim Version As String Dim Vondatei, Zurdatei As String Dim Arbeitsordner As String Dim Buchstabe As String Dim Wort, Wortv, Wortw, Wortx, vZeit, hZeit As String Dim zeile As String Dim Clef As String Dim a, av, m, n, nv, nx, ny, na, ne, na1, ne1, nax, nex, mz As Integer Dim flag As Integer Dim erg As Double Dim RZeichen As String Dim Bwort As String Dim Bwort2 As String Dim mzx As Integer Dim azp As Integer Dim ZPW As String Dim ZtP, ZTPmax As Double Dim Rundu As Integer Dim GLnull As String Dim Resonedatei, Reaperfile, Reaperfilev, Reaperfilevorher, Trackname, Tracknamev, Startmarker, Endemarker As String Dim zpa, zpe Dim zpv, ZPm Dim Tracknot As Boolean Dim DateiNichtDa As Boolean Dim Zeitwert As Variant Dim Lautwert As Variant Dim PTnichtgefunden As Boolean Dim MARKERnichtgefunden As Boolean Dim VolumeSpalte As Integer Dim Punktefehler As Boolean Dim wiederhol As Boolean Dim KeinFrequenzmarkerAmBeginn As Boolean Dim Sinus, Sinusv As String Dim fua, fuav As String Dim fub, fubv As String Dim ente, entev As String Dim del, delv As String Dim fom, fomv As String Dim GesamtLT, GesamtLTv As String ' Gesamt - Lautstärke Dim GesamtHT, GesamtHTv As String ' Gesamt - Tonhöhenverschiebung Dim GesamtKL, GesamtKLv As String ' Gesamt - Klangfrequenzverschiebung Dim MasterHT, MasterHTv As String ' Master-Tonhöhe - 1 Tonhöhe gilt für alle Töne Dim MasterKL, MasterKLv As String ' Master-Klangfrequenz - 1 Klangfrequenz gilt für alle Töne Dim Infotaste As Integer Dim dnz, dnzv As Integer 'Dateinamenzähler Dim NeueKurve As Boolean Dim ErsterDurchlauf As Boolean Dim Neuklick As Boolean Dim VglMidi_An As Boolean Dim PunkteStartEndTestAus As Boolean Dim pse As Boolean Dim cole As Boolean Dim CoolEdi As Boolean ' Cool Edit automatisch starten oder nicht .. Dim InhaltSelect As String Dim ltf, ltfv, lts, ltsv, hts, htsv As String ' neu am 7.2.2011 Dim Dateiname As String Dim HukuDatei As String Dim Variationsdatei As String Dim ZFaktor As Double Dim LFaktor As Double Dim HFaktor As Double Dim KFaktor As Double Dim ZWert As Double Dim LWert As Double Dim HWert As Double Dim KWert As Double Dim gedru As Boolean Dim nnn1, nnn2, nnn3, nnn4, nnn5, nnn6, nnn7, mmm4 As String ' nnn4 und der Ort für DIM hier ist neu am 16.09.2013 Dim gestartet As Boolean Dim an As Boolean Dim ResoneHuSelect As Integer Dim s, s1 As Boolean Dim Punkteautomatik As Boolean Dim Datex2 As String Dim Storepoints As Boolean Dim Zap, Zep, Dst, Ofs As Double Private Sub Form_Load() ' Version = "v5.1.1" ' 25.05.2015 ' Version = "v5.2" ' 28.01.2019 ' Version = "v5.3" ' 11.04.2019 Version = "v5.31" ' 24.04.2019 ' Arbeitsordner = "C:\Arbeit\" Storepoints = False ' neu am 05.09.2013: ZFaktor = 0.01 ' (0.001 gut?) LFaktor = 0.1 HFaktor = 1 KFaktor = 10 Dst = 0 ' gedru = False gestartet = False Variation.Enabled = False Variation2.Enabled = False Variation.BackColor = &HFFFFFF ' weiß Variation2.BackColor = &HFFFFFF ' weiß Tempo.Text = "1" ' On Error GoTo rrrr Open Arbeitsordner & "Huku.ini" For Input As #1 Line Input #1, Reaperfilev: Text1.Text = Reaperfilev Line Input #1, Tracknamev: Text2.Text = Tracknamev Line Input #1, Sinusv If Sinusv <> "j" Then Text3.Text = "n" Else Text3.Text = Sinusv End If Line Input #1, fuav: Text4.Text = fuav Line Input #1, fubv: Text5.Text = fubv Line Input #1, entev: Text6.Text = entev Line Input #1, delv: Text7.Text = delv Line Input #1, fomv: Text8.Text = fomv Line Input #1, ltfv: Text9.Text = ltfv ' neu am 7.2.2011 Line Input #1, ltsv: Text10.Text = ltsv ' neu am 7.2.2011 Line Input #1, htsv: Text11.Text = htsv ' neu am 7.2.2011 Line Input #1, GesamtLTv: Text12.Text = GesamtLTv ' Master - Lautstärke Line Input #1, GesamtHTv: Text13.Text = GesamtHTv ' Gesamt - Tonhöhenverschiebung Line Input #1, GesamtKLv: Text14.Text = GesamtKLv ' Gesamt - Klangfrequenzverschiebung Line Input #1, MasterHTv: Text15.Text = MasterHTv ' eine Tonhöhe gilt für alle Töne Line Input #1, MasterKLv: Text16.Text = MasterKLv ' Master-Klangfrequenz - 1 Klangfrequenz gilt für alle Töne Line Input #1, Dateiname FileCopy Dateiname, "c:\Arbeit\Samp100.wav" ' soll immer so heißen, wegen der ' " Print #iVB, " " Print #iVB, " RENDER_FILE ""C:\Arbeit\Test-001.wav""" Print #iVB, " RENDER_FMT 0 2 44100" Print #iVB, " RENDER_1X 0" Print #iVB, " RENDER_RANGE 1 0.00000000000000 0.00000000000000" Print #iVB, " RENDER_RESAMPLE 8 0 1" Print #iVB, " RENDER_ADDTOPROJ 0" Print #iVB, " RENDER_STEMS 0" Print #iVB, " RENDER_DITHER 0" Print #iVB, " TIMELOCKMODE 0" Print #iVB, " ITEMMIX 0" Print #iVB, " DEFPITCHMODE 0" Print #iVB, " TAKELANE 1" Print #iVB, " SAMPLERATE 44100 0" Print #iVB, " " Print #iVB, " Lock 1" Print #iVB, " " Print #iVB, " GLOBAL_AUTO -1" Print #iVB, " TEMPO 120.00000000000000 4 4" Print #iVB, " PLAYRATE 1.00000000000000 0 0.25000 4.00000" Print #iVB, " SELECTION 0.00000000000000 0.00000000000000" Print #iVB, " SELECTION2 0.00000000000000 0.00000000000000" Print #iVB, " MASTERAUTOMODE 0" Print #iVB, " MASTERTRACKHEIGHT 114" Print #iVB, " MASTERMUTESOLO 0" Print #iVB, " MASTERTRACKVIEW 0 0.666700 0.500000 0.500000 -1 -1 -1" Print #iVB, " MASTERHWOUT 0 0 1.00000000000000 0.00000000000000 0 0 0 -1.00000000000000" Print #iVB, " MASTER_NCH 2" Print #iVB, " MASTER_VOLUME 1.00000000000000 0.00000000000000 -1.00000000000000" Print #iVB, " MASTER_FX 0" Print #iVB, " MASTER_SEL 0" Print #iVB, " " Print #iVB, " " Print #iVB, " " Print #iVB, " " Print #iVB, " " Print #iVB, " " Print #iVB, " "; Close #iVB ' Grundtext2 schreiben: iVB = FreeFile Open Arbeitsordner & "Grundtext2" For Output As iVB Print #iVB, " " Print #iVB, " " Print #iVB, " >" Print #iVB, ">" Close #iVB End Sub Private Sub Command12_Click() 'PLAY ' Dim path As String ' path = "C:\cool\COOL96.EXE " & HukuDatei ' ' Shell (path,vbNormalFocus) ' Shell "C:\cool\COOL96.EXE " & HukuDatei, vbNormalFocus Dim path As String path = "C:\cool\COOL96.EXE " & Dateiname ' Shell (path,vbNormalFocus) Shell "C:\cool\COOL96.EXE " & Dateiname, vbNormalFocus End Sub Private Sub Command11_Click() CommonDialog1.Action = 1 ' 1 = Datei öffnen CommonDialog1.Flags = 0 Dateiname = CommonDialog1.FileName If Len(Dateiname) > 5 Then FileCopy Dateiname, "c:\Arbeit\Samp100.wav" ' soll immer so heißen, ' wegen der Dateinamenlängenbegrenzung in Csound HukuDatei = "c:\Arbeit\Samp100.wav" Call Dateinamenextraktor(Dateiname) Text17.Text = Datex2 Call SchreibIni End If End Sub Private Sub Command10_Click() End End Sub Private Sub Command9_Click() Dim s As String s = "C:\Arbeit\Editor-K\NoteTab.exe C:\Arbeit-jms\Infotexte\Komponi2_Spezialist.txt" Shell s End Sub Private Sub Command5_Click() Dim s As String s = "C:\Programme\REAPER\reaper.exe" & " c:\arbeit\" & Reaperfile & ".rpp" Shell s End Sub ' Private Sub Command13_Click() ' Druck auf den untereb Knopf 'Reaper' (ist deaktiviert) ' ' NEU am 16.09.2013: ' ' wenn Knopf Vari gedrückt wurde, nicht Reaperfile verwenden, sondern den Namen ' ' Hukunnn.rpp, der generiert wurde. ' ' Dim s As String ' If nnn4 <> "" Then ' s = "C:\Programme\REAPER\reaper.exe " & nnn4 ' Shell s ' End If ' End Sub Private Sub Cool_Click() ' Knopf Cool If CoolEdi = False Then cole = True Cool.BackColor = &HBFFA8F ' grün CoolEdi = True Else cole = False Cool.BackColor = &HDFDFDF 'hellgrau CoolEdi = False End If End Sub Private Sub Command7_Click() If pse = False Then PunkteStartEndTestAus = True Command7.BackColor = &HDFDFDF ' vbRed früher, jetzt hellgrau pse = True Else PunkteStartEndTestAus = False Command7.BackColor = &H696969 ' &HC0C0C0 ' dunkelgrau pse = False End If End Sub Private Sub Command8_Click() Dim s As String s = "C:\Arbeit\Editor\NoteTab.exe " & Arbeitsordner & "Huku" & ".rsz" Shell s End Sub Private Sub Reaperdateischreiben_Copy() ' - Zap + 2 ist NEU am 19.05.2015 ' so scheint es zu gehen ... Dim Zurdatei4 As String Dim maxi As Double ' Maximalwert Dim multi As Double ' Multiplikator Dim m As Integer ' Zähler Dim n As Integer ' Zähler Dim a As Integer ' Zähler Dim RZP As Double Dim PUNKT As Double Dim RLT As Double Dim Rundu As Integer Rundu = 10000 Zurdatei4 = mmm4 ' Huku...rpp <------------------------ Open Zurdatei4 For Output As #1 ' schreibe Grundtext1: Open Arbeitsordner & "Grundtext1" For Input As #2 Do While Not EOF(2) Line Input #2, zeile Print #1, zeile Loop Close #2 ' schreibe die Original-Marker: a = 0 For n = na1 To ne1 ''' den höchsten Lautstärkewert ermitteln: ''' maxi = 0 For m = na1 To ne1 If LT(m) > maxi Then maxi = LT(m) End If Next m multi = 2 / maxi '''''''''''''''''''''''''''''''''''''''''''''' RZP = (Int((ZP(n) * Rundu) + 0.5)) / Rundu RLT = LT(n) * multi If n = na1 Or (HT(n) <> HT(n - 1) Or KL(n) <> KL(n - 1)) Then a = a + 1: Print #1, " MARKER " & a & " " & RZP - Zap + 2 & " """ & HT(n) & " " & KL(n) & """ 0" End If Next n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' COPY - schreibe die Marker als Kopie mit Zeitversatz Dst: For n = na1 To ne1 ''' den höchsten Lautstärkewert ermitteln: ''' maxi = 0 For m = na1 To ne1 If LT(m) > maxi Then maxi = LT(m) End If Next m multi = 2 / maxi RZP = (Int((ZP(n) * Rundu) + 0.5)) / Rundu RLT = LT(n) * multi If n = na1 Or (HT(n) <> HT(n - 1) Or KL(n) <> KL(n - 1)) Then a = a + 1: Print #1, " MARKER " & a & " " & RZP - Zap + 2 + Dst & " """ & HT(n) & " " & KL(n) & """ 0" End If Next n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' schreibe Grundtext2: Open Arbeitsordner & "Grundtext2" For Input As #2 Do While Not EOF(2) Line Input #2, zeile Print #1, zeile Loop Close #2 ' schreibe den Spurnamen (z.B. r01) Print #1, " NAME ""R-01""" ' schreibe Grundtext3: Open Arbeitsordner & "Grundtext3" For Input As #2 Do While Not EOF(2) Line Input #2, zeile Print #1, zeile Loop Close #2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' COPY - schreibe die Originalpunkte und die kopierten Punkte: ' schreibe die Punkte: Print #1, " PT " & "0.5" & " " & RLT & " 0" ' einen Punkt davor zeichnen! For n = na1 To ne1 RZP = (Int((ZP(n) * Rundu) + 0.5)) / Rundu RLT = LT(n) * multi If n = na1 Then Print #1, " PT " & RZP - Zap + 2 & " " & RLT & " 0 0 1" ' markierter Punkt Else Print #1, " PT " & RZP - Zap + 2 & " " & RLT & " 0" End If Next n ' schreibe nochmals die Punkte, diesmal mit Zeitversatz Dst: ' Print #1, " PT " & "0.5" & " " & RLT & " 0" ' einen Punkt davor zeichnen! For n = na1 To ne1 RZP = (Int((ZP(n) * Rundu) + 0.5)) / Rundu RLT = LT(n) * multi If n = ne1 Then Print #1, " PT " & RZP - Zap + 2 + Dst & " " & RLT & " 0 0 1" ' markierter Punkt Else Print #1, " PT " & RZP - Zap + 2 + Dst & " " & RLT & " 0" End If Next n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' schreibe Grundtext4: Open Arbeitsordner & "Grundtext4" For Input As #2 Do While Not EOF(2) Line Input #2, zeile Print #1, zeile Loop Close #2 Close #1 End Sub Private Sub kopieren_Click() ' NEU am 17.05.2015 Dim n, m As Integer Dim Dstv As Double Ofs = Abstandstext.Text If Ofs < 0 Then Ofs = 0 Abstandstext.Text = 0 End If ' If Storepoints = True Then ' nachdem die Routine '...' aufgerufen wurde Infotaste = True Call Command3_Click mmm4 = "c:\Arbeit\" & Text1.Text & "c" & ".rpp" ' kopierte Reaperdatei ' Call Tlist ' Markerzeiten und Punktezeiten ansehen - nur Test ' Zap = Markerzeiten(1) ' Zeitwert des ersten Markers Zap = ZP(na1) ' Zeitwert des ersten Markers - neu am 19.05.2015 Zep = ZP(ne1) ' Zeitwert des letzten Punktes Dst = Zep - Zap + Ofs ' Abstand If Punktefehler = False Then Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testlist.AddItem "" Testlist.AddItem mmm4 & " wurde geschrieben." Testlist.AddItem "" Text1.Text = Text1.Text & "c" Clipboard.Clear Clipboard.SetText Text1.Text & "c" ' ins Clipboard (?) Call Reaperdateischreiben_Copy ' in Reaperdateischreiben_Copy minus Zap? End If ' End If End Sub Private Sub Tlist() Testlist.AddItem "Zeitwerte zwischen relevanten Punkten:" n = 0 For m = na1 To ne1 n = n + 1 Testlist.AddItem n & " - " & ZP(m) Next m Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "Alle Zeitpunkte, an denen Marker stehen:" For n = 1 To mz ' mz: Markerzeitenzähler Testlist.AddItem n & " - " & Markerzeiten(n) Next n End Sub Private Sub PRFix_Click() ' neu am 15.05.2015: If s1 = False Then Punkteautomatik = False PRFix.BackColor = &HB3B3FF ' ziegelrot StartStoppLos.Enabled = False StartStoppLos.BackColor = &HDFDFDF ' grau s1 = True Else Punkteautomatik = True PRFix.BackColor = &HE0E0E0 ' grau StartStoppLos.Enabled = True s1 = False End If End Sub Private Sub StartStoppFix_Click() ' neu am 14.05.2015: If s = False Then Command3.BackColor = &HFFFFFF ' weiß Command3.Enabled = False StartStoppFix.BackColor = &HB3B3FF ' ziegelrot s = True Else Command3.BackColor = &HFFC0C0 ' blau Command3.Enabled = True StartStoppFix.BackColor = &HE0E0E0 ' grau Command19.BackColor = &HFFC0C0 ' blau Command19.Enabled = True Variation.BackColor = &HFFC0C0 ' blau Variation.Enabled = True s = False End If End Sub Private Sub StartStoppLos_Click() ' neu am 13.05.2015 Open Arbeitsordner & "Huku2.ini" For Output As #1 Print #1, 0 Print #1, 0 ' bald noch mehr Close #1 StartStoppLos.BackColor = &HDFDFDF ' grau End Sub Private Sub Stimmen_Click() If VglMidi_An = True Then Call KillApp("VglMidi") ' Titel des zu schließenden Fensters VglMidi_An = False Else Programmstart "C:\Arbeit\VB\VglMidi\VglMidi.exe" VglMidi_An = True End If End Sub Private Sub Programmstart(path) Dim TaskId TaskId = Shell(path, vbNormalFocus) On Error GoTo eee AppActivate (TaskId) eee: End Sub Private Sub Command2_Click() If gedru = False Then ' neu am 11.10.2013 Command15.Visible = False Command16.Visible = False Command17.Visible = False ' neu am 10.10.2013 Pluginfo.Visible = False Plugknopf.Visible = False Csoundknopf.Visible = False Orcknopf.Visible = False Csoundstore.Visible = False Scoknopf.Visible = False Text18.Visible = False Tempo.Visible = False Text1.Visible = False Text2.Visible = False Z_Enter1.Visible = False Z_Enter2.Visible = False Text17.Visible = False StartStoppFix.Visible = False StartStoppLos.Visible = False Command4.Visible = False Command5.Visible = False kopieren.Visible = False Abstandstext.Visible = False PRFix.Visible = False ' Command13.Visible = False ' Command14.Visible = False Variation.Visible = False Variation2.Visible = False Command3.Visible = False ' NEU ' Command18.Visible = False ' NEU Command19.Visible = False ' NEU Cool.Visible = False ' NEU Command11.Visible = False Command12.Visible = False Testliste(1).Visible = False Testliste(2).Visible = False Testliste(3).Visible = False Testliste(4).Visible = False VScroll1.Visible = False ' neu am 06.09.2013 VScroll2.Visible = False ' neu am 06.09.2013 VScroll3.Visible = False ' neu am 06.09.2013 VScroll4.Visible = False ' neu am 06.09.2013 Z_Reset.Visible = False L_Enter.Visible = False L_Reset.Visible = False H_Enter.Visible = False H_Reset.Visible = False K_Enter.Visible = False K_Reset.Visible = False Testlist.Height = 9820 Testlist.FontSize = 12 Testlist.FontBold = True Select Case Infotaste Case 0 Testlist.ForeColor = &H165A35 ' dunkelgrün Call Info Case 1 Testlist.ForeColor = &H707070 ' dunkelgrau Call infoStartseite Case 2 Testlist.ForeColor = &H0 ' schwarz Call IniInfo Case 3 Testlist.ForeColor = &H0 ' schwarz Call LtHt Case 4 Testlist.ForeColor = &H0 ' schwarz Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Call Command3_Click VScroll1.Visible = True ' neu am 06.09.2013 VScroll2.Visible = True ' neu am 06.09.2013 VScroll3.Visible = True ' neu am 06.09.2013 VScroll4.Visible = True ' neu am 06.09.2013 Z_Reset.Visible = True L_Enter.Visible = True L_Reset.Visible = True H_Enter.Visible = True H_Reset.Visible = True K_Enter.Visible = True K_Reset.Visible = True StartStoppFix.Visible = True StartStoppLos.Visible = True Command4.Visible = True Command5.Visible = True kopieren.Visible = True Abstandstext.Visible = True PRFix.Visible = True 'Command13.Visible = True 'Command14.Visible = True Variation.Visible = True Variation2.Visible = True Command3.Visible = True ' NEU 'Command18.Visible = True ' NEU Command19.Visible = True ' NEU Cool.Visible = True ' NEU Z_Enter1.Visible = True Z_Enter2.Visible = True Text2.Visible = True Text1.Visible = True Text18.Visible = True Tempo.Visible = True ' neu am 10.10.2013 Pluginfo.Visible = True Plugknopf.Visible = True Csoundknopf.Visible = True Orcknopf.Visible = True Csoundstore.Visible = True Scoknopf.Visible = True ' neu am 11.10.2013 Command15.Visible = True Command16.Visible = True Command17.Visible = True End Select End If ' Testlist.BackColor = &HFFFFFF ' weiß End Sub Private Sub Command3_Click() ' Knopf Cso1 '''''''''''''''''''''''''''''''''''''''' ' NEU am 13.05.2015 Open Arbeitsordner & "Huku2.ini" For Input As #1 ' Inhalt von Huku2.ini (bald kommt noch mehr dazu): Line Input #1, nax ' für na1, Startpunkt Line Input #1, nex ' für ne1, Endepunkt Close #1 '''''''''''''''''''''''''''''''''''''''' gestartet = True Variation.Enabled = True Variation2.Enabled = True Variation.BackColor = &HFFC0C0 ' blau Variation2.BackColor = &HFFC0C0 ' blau gedru = False ' 28.09.2013 Command3.BackColor = &HFFC0C0 ' blau - neu am 29.09.2013 Orcknopf.BackColor = &HE0E0E0 ' grau Scoknopf.BackColor = &HE0E0E0 ' grau Variation.BackColor = &HFFC0C0 ' blau - neu am 29.09.2013 Variation.Enabled = True Text17.Visible = True Command11.Visible = True Command12.Visible = True Testliste(1).Visible = True Testliste(2).Visible = True Testliste(3).Visible = True Testliste(4).Visible = True Testlist.Height = 1365 ' Änderung am 27.09.2013 wiederhol = True ErsterDurchlauf = False NeueKurve = False ResoneHuSelect = 0 ' Schalter für Sub SubroutinenAufrufen If Reaperfile <> Reaperfilevorher Then Call StartStoppLos_Click ' Reset Start-Stoppunkte - neu am 14.05.2015 End If Call SubroutinenAufrufen Infotaste = 0 ''''''''''''''''''''''''''''''''''''''''''''''''''' ' 14.05.2015 Start- und Stoppunkt automatisch speichern ' Zeilennumer für erstes Vorkommen von "PT " (na) und ' Zeilennumer für zweites Vorkommen von "PT " (ne) ermitteln: Call AnfangEnde_check nax = na + 1 ' immer der zweite Punkt soll als markiert gelten nex = ne Open Arbeitsordner & "Huku2.ini" For Output As #1 Print #1, nax Print #1, nex ' bald noch mehr?? Close #1 If Punkteautomatik = True Then StartStoppLos.BackColor = &HBFFA8F ' grün - &HB3B3FF = ziegelrot - &H8080FF ' kräftigeres ziegelrot End If '''''''''''''''''''''''''''''''''''''''''''''''''''' Reaperfilevorher = Reaperfile End Sub Private Sub Command19_Click() ' Knopf Cso2 Command19.BackColor = &HFFC0C0 ' neu am 29.09.2013 '''''''''''''''''''''''''''''''''''''''' ' NEU am 13.05.2015 Open Arbeitsordner & "Huku2.ini" For Input As #1 ' Inhalt von Huku2.ini (bald kommt noch mehr dazu): Line Input #1, nax ' für na1, Startpunkt Line Input #1, nex ' für ne1, Endepunkt Close #1 '''''''''''''''''''''''''''''''''''''''' gestartet = True 'Variation.Enabled = True Variation2.Enabled = True 'Variation.BackColor = &HFFC0C0 ' blau Variation2.BackColor = &HFFC0C0 ' blau gedru = False ' 28.09.2013 Command19.BackColor = &HFFC0C0 ' neu am 29.09.2013 ' Variation.BackColor = &HFFC0C0 ' neu am 29.09.2013 Text17.Visible = True Command11.Visible = True Command12.Visible = True Testliste(1).Visible = True Testliste(2).Visible = True Testliste(3).Visible = True Testliste(4).Visible = True Testlist.Height = 1365 ' Änderung am 27.09.2013 wiederhol = True ErsterDurchlauf = False NeueKurve = False ResoneHuSelect = 2 ' Schalter für Sub SubroutinenAufrufen Call SubroutinenAufrufen Infotaste = 0 ''''''''''''''''''''''''''''''''''''''''''''''''''' ' 14.05.2015 Start- und Stoppunkt automatisch speichern ' Zeilennumer für erstes Vorkommen von "PT " (na) und ' Zeilennumer für zweites Vorkommen von "PT " (ne) ermitteln: Call AnfangEnde_check nax = na + 1 ' immer der zweite Punkt soll als markiert gelten nex = ne Open Arbeitsordner & "Huku2.ini" For Output As #1 Print #1, nax Print #1, nex ' bald noch mehr?? Close #1 '''''''''''''''''''''''''''''''''''''''''''''''''''' If Punkteautomatik = True Then StartStoppLos.BackColor = &HBFFA8F ' grün - &HB3B3FF = ziegelrot - &H8080FF ' kräftigeres ziegelrot End If End Sub ' Private Sub Command18_Click() ' '''''''''''''''''''''''''''''''''''''''' ' ' NEU am 13.05.2015 ' Open Arbeitsordner & "Huku2.ini" For Input As #1 ' ' Inhalt von Huku2.ini (bald kommt noch mehr dazu): ' Line Input #1, nax ' für na1, Startpunkt ' Line Input #1, nex ' für ne1, Endepunkt ' Close #1 ' '''''''''''''''''''''''''''''''''''''''' ' gestartet = True ' gedru = False ' 28.09.2013 ' Command3.BackColor = &HFFC0C0 ' neu am 29.09.2013 ' Variation.BackColor = &HFFC0C0 ' neu am 29.09.2013 ' Text17.Visible = True ' Command11.Visible = True ' Command12.Visible = True ' Testliste(1).Visible = True ' Testliste(2).Visible = True ' Testliste(3).Visible = True ' Testliste(4).Visible = True ' Testlist.Height = 1365 ' Änderung am 27.09.2013 ' wiederhol = True ' ErsterDurchlauf = False ' NeueKurve = False ' ResoneHuSelect = 1 ' Schalter für Sub SubroutinenAufrufen ' Call SubroutinenAufrufen ' Infotaste = 0 ' '''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' 14.05.2015 Start- und Stoppunkt automatisch speichern ' Open Arbeitsordner & "Huku2.ini" For Output As #1 ' Print #1, na1 ' Print #1, ne1 ' ' ' ' bald noch mehr?? ' Close #1 ' StartStoppLos.BackColor = &HB3B3FF ' ziegelrot ' '''''''''''''''''''''''''''''''''''''''''''''''''''' ' End Sub Private Sub Command6_Click() Shell "C:\Arbeit\directory3g.bat", 1 'Shell "C:\Arbeit\directory3d.bat", 1 End Sub Private Sub Command4_Click() ' Knopf Snapshot If gestartet = True Then ' Shell "C:\Arbeit\Editor\NoteTab.exe " & Arbeitsordner & Resonedatei & ".rsz" ' <--- früher ' Call LtHt ' <--- früher 'Dim nnn1, nnn2, nnn3, nnn4 As String ' nnn4 ist neu am 16.09.2013 dnz = dnz + 1: dnz = Int(dnz) nnn1 = "c:\Arbeit\Huku" & dnz & ".wav" 'Dateinamenzähler FileCopy "C:\Arbeit\Resonanz.wav", nnn1 'NEU am 28.01.2019: Open "C:\Arbeit\mix-hukumu.txt" For Append As #4 Print #4, nnn1 & " 0.00 2 1 L 1 R" ' rein in die Mix-Datei Close #4 ' Call mixdateischreiben - rausgeworfen am 24.ß4.2019 Call SchreibIni nnn2 = "c:\Arbeit\Huku" & dnz & ".rsz" ' neu: Huku.rsz sichern FileCopy "C:\Arbeit\Huku.rsz", nnn2 nnn3 = "c:\Arbeit\Huku" & dnz & ".inv" ' Huku.ini sichern! - neu: als .inv! FileCopy "C:\Arbeit\Huku.ini", nnn3 ' neu am 16.09.2013: nnn4 = "c:\Arbeit\Huku" & dnz & ".rpp" ' Name für eine zu schreibende Reaperdatei ' Text1.Text = "Huku" & dnz ' NEU am 21.05.2015 ... soll das so sein? - am 11.04.2019 geändert Call Reaperdateischreiben Clipboard.Clear Clipboard.SetText "Huku" & dnz & ".wav" ' <--- diese Zeile ins Clipboard tun! Testlist.Clear 'Testlist.AddItem "Datei " & nnn1 & " und Datei " & nnn5 & " und" 'Testlist.AddItem "Datei " & nnn2 & " und Datei " & nnn6 & " und" Testlist.AddItem "Datei " & nnn1 & " und" Testlist.AddItem "Datei " & nnn2 & " und" Testlist.AddItem "Datei " & nnn3 & " und" Testlist.AddItem "Datei " & nnn4 & " geschrieben." Testlist.AddItem "Im Zwischenspeicher steht Huku" & dnz & ".wav." End If End Sub Private Sub Reaperdateischreiben() 'Von Resone übernommen; angepasst und in Hukumu eingebaut am 16.09.2013 Dim Zurdatei4 As String Dim maxi As Double ' Maximalwert Dim multi As Double ' Multiplikator Dim m As Integer ' Zähler Dim n As Integer ' Zähler Dim a As Integer ' Zähler Dim RZP As Double Dim PUNKT As Double Dim RLT As Double Dim Rundu As Integer Rundu = 10000 Zurdatei4 = nnn4 ' Huku...rpp <------- ! ' 16.09.2012 Open Zurdatei4 For Output As #1 ' schreibe Grundtext1: Open Arbeitsordner & "Grundtext1" For Input As #2 Do While Not EOF(2) Line Input #2, zeile Print #1, zeile Loop Close #2 ' schreibe die Marker: a = 0 For n = na1 To ne1 maxi = 0 ' den höchsten Lautstärkewert ermitteln: For m = na1 To ne1 If LT(m) > maxi Then maxi = LT(m) End If Next m multi = 2 / maxi RZP = (Int((ZP(n) * Rundu) + 0.5)) / Rundu RLT = LT(n) * multi If n = na1 Or (HT(n) <> HT(n - 1) Or KL(n) <> KL(n - 1)) Then ' n = na1 - Fehler korrigiert am 29.09.2013 a = a + 1: Print #1, " MARKER " & a & " " & RZP + 1 & " """ & HT(n) & " " & KL(n) & """ 0" End If Next n ' schreibe Grundtext2: Open Arbeitsordner & "Grundtext2" For Input As #2 Do While Not EOF(2) Line Input #2, zeile Print #1, zeile Loop Close #2 ' schreibe den Spurnamen (z.B. r01) Print #1, " NAME ""R-01""" ' schreibe Grundtext3: Open Arbeitsordner & "Grundtext3" For Input As #2 Do While Not EOF(2) Line Input #2, zeile Print #1, zeile Loop Close #2 ' schreibe die Punkte: Print #1, " PT " & "0.5" & " " & RLT & " 0" ' einen Punkt davor zeichnen! For n = na1 To ne1 RZP = (Int((ZP(n) * Rundu) + 0.5)) / Rundu RLT = LT(n) * multi If n = na1 Or n = ne1 Then Print #1, " PT " & RZP + 1 & " " & RLT & " 0 0 1" Else Print #1, " PT " & RZP + 1 & " " & RLT & " 0" End If Next n ' schreibe Grundtext4: Open Arbeitsordner & "Grundtext4" For Input As #2 Do While Not EOF(2) Line Input #2, zeile Print #1, zeile Loop Close #2 Close #1 End Sub Private Sub mixdateischreiben() Open "c:\Arbeit\CDP-Plug.plc" For Output As #4 Print #4, "Rem Dieser Text wurde vom Programm HUKUMU geschrieben." Print #4, "Rem " & Time & " " & Date Print #4, "Rem" Print #4, "Rem MISCHEN MIT HILFE EINES MIXFILES." Print #4, "Rem" Print #4, "Rem submix mix mixfile outsndfile [-sstart] [-eend] [-gattenuation] [-a]" Print #4, "Rem -sstart – begin the mixing process at time start (to start mixing later than time zero)" Print #4, "Rem -eend – stop the mixing process at time end (to stop the mix before its true end" Print #4, "Rem Note that the start and end parameters are provided to make it possible" Print #4, "Rem to test what will happen with a certain portion of the mix. They are intended" Print #4, "Rem for use in this way, in a test context, and, if you save the output of such a" Print #4, "Rem test, its beginning and end may be abrupt. This can be corrected by running" Print #4, "Rem HOUSEKEEP EXTRACT Mode 3 or ENVEL DOVETAIL to 'top and tail' the output soundfile." Print #4, "Rem -gattenuation – reduce the level of the entire mix (Range: > 0 to 1)" Print #4, "Rem -a – alternative mix algorithm, slighly slower, but it may avoid clipping in special circumstances" Print #4, "Rem" Print #4, "Rem" Print #4, "Rem Format (Beispiele):" Print #4, "Rem Infile Startzeitpunkt Kanäle LT Kanal 1 PAN Kanal 1 [LT Kanal 2 PAN Kanal 2]" Print #4, "Rem soundfile1.wav 0.23 2 -6dB L -6dB R" Print #4, "Rem soundfile2.wav 0.9 1 -20dB C" Print #4, "Rem soundfile3.wav 3.7 1 -4dB -.5" Print #4, "Rem" Print #4, "Rem Noch ein Beispiel:" Print #4, "Rem c:\arbeit\Huku2350-1230-1237-1238.wav 0.00 2 2 -0.3 2 -0.3" Print #4, "Rem c:\arbeit\Huku2099-1213-1215.wav 1.50 2 3 0.3 2 0.3" Print #4, "Rem c:\arbeit\Huku2191-683-1203-1204.wav 0.00 2 1 L 1 R" Print #4, "Rem" Print #4, "Rem Statt dB können auch Zahlen eingegeben werden: 0 bis <1 (abschwächen) , 1 bis >1 (verstärken)" Print #4, "Rem Für PAN: L = links, R = rechts, C = Center; oder Zahlen von -1.0 (links) bis +1.0 (rechts)" Print #4, "Rem Gesamtlautstärke ändern mit -g! (vor '-a' einbauen!)" Print #4, "Rem" Print #4, "Rem" Print #4, "Rem submix mix mixfile outsndfile [-sstart] [-eend] [-gattenuation] [-a]" Print #4, "Rem C:\cdpr7\_cdp\_cdprogs\submix mix c:\arbeit\mixfile.txt c:\arbeit\outfile.wav -g1 -a" Print #4, " C:\cdpr7\_cdp\_cdprogs\submix mix C:\Arbeit\mix-hukumu.txt c:\arbeit\outfile.wav -g0.2 -a" Print #4, "" Print #4, "Rem DAS RICHTIGE MIXFILE EINSETZEN!!" Print #4, "Rem (In diesem Fall wurde es vom Programm CDP-Start selbstständig eingesetzt)" Print #4, "Rem" Print #4, "Rem MIXFILE: [c:\Arbeit\mixfile.txt] oder [c:\Arbeit\mix-cdpstart.txt] oder [c:\Arbeit\mix-csofm.txt]" Close #4 End Sub Private Sub Ende_Click() End End Sub Private Sub Command1_Click() Testliste(1).Visible = True Testliste(2).Visible = True Testliste(3).Visible = True Testliste(4).Visible = True Testlist.Height = 1575 ErsterDurchlauf = False wiederhol = False Neuklick = True ResoneHuSelect = 0 Call SubroutinenAufrufen Infotaste = False End Sub Private Function KillApp(Titel As String) Dim myHwnd As Long, MyCaption As String myHwnd = FindWindowEx(0, 0, vbNullString, vbNullString) Do While myHwnd MyCaption = String(255, 0) GetWindowText myHwnd, MyCaption, 255 If InStr(1, LCase(MyCaption), LCase(Titel)) Then SendMessage myHwnd, WM_CLOSE, 0, 0 ' Anwendung_Schließen = True End If myHwnd = FindWindowEx(0, myHwnd, vbNullString, vbNullString) Loop End Function Private Sub SubroutinenAufrufen() Tracknot = False DateiNichtDa = False Punktefehler = False MARKERnichtgefunden = False KeinFrequenzmarkerAmBeginn = False If wiederhol = False Then Call Eingaben End If Vondatei = Arbeitsordner & Reaperfile & ".rpp" Zurdatei = Arbeitsordner & "Huku" & ".rsz" frmDatei.Caption = "Hukumu" & " " & Version & " " & "Gelesene Datei:" & " " & Reaperfile & ".rpp" & " " & "Spur:" & " " & Trackname ' neu am 04.09.2013 Call AlleZeilenLesen ' Alle Zeilen der Reaperdatei lesen und in das Feld Zl() tun - Ergebnis: nv (Gesamtzeilenzahl) <----- If DateiNichtDa = False Then ' wenn die Datei gefunden wurde Call SucheSpurnamen ' Der Spurname wird gesucht - Ergebnis: die Startzeile nx <---- If Tracknot = False Then ' wenn die Spur gefunden wurde Call VolKurve ' MsgBox ny ' OK am 15.05.2015 ' Das Schlüsselwort VOLENV2 für die Lautstärkekurve innerhalb der gefundenen Spur wird gesucht - ' Ergebnis: die Zeile ny <---- Call AnfangEnde_check ' für diese Spur Anfangszeilennummer na und Endezeilennummer ne ermitteln - na, ne <----- If PunkteStartEndTestAus = True Then ' neu am 13.05.2015 ' MsgBox nax & " " & nex If nax > 0 And Punktefehler = False And Punkteautomatik = True Then ' Punktefehler neu am 15.05.2015 ' neu am 13.05.2015 Call StartStopPunkte_check_StorePoint ' neu am 13.05.2015 Storepoints = True ' neu am 17.95.2015 kopieren.Enabled = True ' neu am 17.95.2015 Else ' neu am 13.05.2015 Call StartStopPunkte_check ' na1 und ne1 ermitteln Storepoints = False ' neu am 17.95.2015 ' kopieren.Enabled = False ' neu am 17.95.2015 End If ' neu am 13.05.2015 Else Call Selection_check ' na1 und ne1 ermitteln ' NEU <-------------------------- NEU End If ' die Zeilennummern mit den markierten Kurvenpunkten ermitteln - Ergebnis: na1, ne1 <---- If Punktefehler = False Then Call MarkerFinden ' Ergebnis: mz (Markerzähler) Call AuswertungLKURVE If PTnichtgefunden = False And MARKERnichtgefunden = False Then ' <---- ? Call AuswertungMARKER Call AuswertungFRQ If KeinFrequenzmarkerAmBeginn = False And Punktefehler = False Then Call ZeitwerteLautstärkenTonhöhenZeigen Call ResonefileSchreiben ' <------------ ! ! ! If Infotaste = False Then Call KillApp("Resonanz.wav - Cool Edit") ' Titel des zu schließenden Fensters If ResoneHuSelect = 0 And cole = True Then ' geändert am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu.exe" ' das ursprüngliche Csound-Aufrufen mit Cool Edit End If If ResoneHuSelect = 0 And cole = False Then ' geändert am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu2.exe" ' Csound ohne Cool Edit End If If ResoneHuSelect = 2 And cole = True Then ' NEU am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu3.exe" ' verkürztes Csound mit Cool Edit (orc bleibt unverändert) - 26.04.2015 End If If ResoneHuSelect = 2 And cole = False Then ' NEU am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu4.exe" ' verkürztes Csound ohne Cool Edit (orc bleibt unverändert) - 26.04.2015 End If End If Else Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testliste(1).Clear Testliste(2).Clear Testliste(3).Clear Testliste(4).Clear End If End If End If End If End If raushier: End Sub Private Sub ResonefileSchreiben() Dim i, j, tb As Integer Dim Rundu As Integer ' bei rundu = 10 wird auf eine Stelle hinter dem Dezimalpunkt gerundet Dim Wert, Wertr As String Dim ltfs As Double tb = 6 Open Zurdatei For Output As #1 Print #1, "" Print #1, "Huku " & Version & " - " & Time & " " & Date & " - Reaperdatei: " & Reaperfile & ".rpp - Hüllkurve: " & Trackname Print #1, "" ' Rundu = 10000 ' vorher 1000 - neu am 13.09.2013 j = 2 Print #1, "ZP"; Print #1, Tab(j * tb); For i = na1 To ne1 Wert = ZP(i) Wertr = (Int((Wert * Rundu) + 0.5)) / Rundu Print #1, Tab(j * tb); Wertr; j = j + 2 Next i Print #1, "" ' Rundu = 1 j = 2 Print #1, "LT"; Print #1, Tab(j * tb); For i = na1 To ne1 Wert = (LT(i) * 30000) * GesamtLT ' <--------------- neu! Wertr = (Int((Wert * Rundu) + 0.5)) / Rundu Print #1, Tab(j * tb); Wertr; j = j + 2 Next i Print #1, "" ' Rundu = 100 j = 2 Print #1, "HT"; Print #1, Tab(j * tb); For i = na1 To ne1 If MasterHT > 0 Then ' Wert = HT(na1) * GesamtHT Wert = MasterHT Else Wert = HT(i) * GesamtHT ' <--------------- neu! End If Wertr = (Int((Wert * Rundu) + 0.5)) / Rundu Print #1, Tab(j * tb); Wertr; j = j + 2 Next i Print #1, "" ' If Sinus <> "j" Then Rundu = 100 j = 2 Print #1, "KL"; Print #1, Tab(j * tb); For i = na1 To ne1 If MasterKL > 0 Then ' Wert = KL(na1) * GesamtKL Wert = MasterKL Else Wert = KL(i) * GesamtKL ' <--------------- neu! End If Wertr = (Int((Wert * Rundu) + 0.5)) / Rundu Print #1, Tab(j * tb); Wertr; j = j + 2 Next i End If ' ' Print #1, "" Print #1, "" ' j = 2 Print #1, "FUA"; Print #1, Tab(j * tb); Print #1, fua Print #1, "FUB"; Print #1, Tab(j * tb); Print #1, fub Print #1, "ENTE"; Print #1, Tab(j * tb); Print #1, ente Print #1, "DEL"; Print #1, Tab(j * tb); Print #1, del Print #1, "FOM"; Print #1, Tab(j * tb); Print #1, fom ' für Samples: ' LTF für fof-Lautstärkefaktor ' LTS für Sample-Lautstärkefaktor ' HTS für Sample-Frequenzfaktor Print #1, "LTF"; Print #1, Tab(j * tb); If Sinus = "j" Then ltfs = Val(ltf / 3) ' Abschwächung - 12.02.2011 ltfs = (Int((ltfs * 100) + 0.5)) / 100 ' runden! Else ltfs = ltf End If Print #1, ltfs Print #1, "LTS"; Print #1, Tab(j * tb); Print #1, lts Print #1, "HTS"; Print #1, Tab(j * tb); Print #1, hts Print #1, "SMP"; Print #1, Tab(j * tb); Print #1, " "; HukuDatei If lts > 0 Then Print #1, "" Print #1, "Name des verwendeten Samples: "; Print #1, Dateiname Else Print #1, "" Print #1, "Es wurde kein Sample dazugespielt."; End If Print #1, "" Print #1, "" Print #1, "" Print #1, "" Print #1, "" Print #1, "" Close #1 End Sub Private Sub Eingaben() Dim janein, janeini, janeins As String Reaperfile = InputBox("Reaper-Datei (.rpp) angeben (Return = " & Reaperfilev & ")", "EINGABE") If StrPtr(Reaperfile) = 0 Then End ' hier wurde tatsächlich 'Abbrechen' gewählt ' und nicht 'OK' If Reaperfile = "" Then Reaperfile = Reaperfilev NeueKurve = False Else NeueKurve = True End If Trackname = InputBox("Spurnamen angeben (Return = " & Tracknamev & ")", "EINGABE") If StrPtr(Trackname) = 0 Then End If Trackname = "" Then Trackname = Tracknamev If NeueKurve = True Then NeueKurve = True Else NeueKurve = False End If Else NeueKurve = True End If ' janein = InputBox("Sinus erzeugen? (Return = nein)", "EINGABE") Sinus = InputBox("Sinus erzeugen? (Return = " & Sinusv & ")", "EINGABE") ' neu If StrPtr(Sinus) = 0 Then End If Sinus = "" Then Sinus = Sinusv janeini = InputBox("weitere Einstellungen? (Return = nein)", "EINGABE") If StrPtr(janeini) = 0 Then End If janeini <> "" Then fua = InputBox("neuer Wert für FUA? (Return = " & fuav & ")", "EINGABE") If fua = "" Then fua = fuav Else fuav = fua fub = InputBox("neuer Wert für FUB? (Return = " & fubv & ")", "EINGABE") If fub = "" Then fub = fubv Else fubv = fub ente = InputBox("neuer Wert für ENTE? (Return = " & entev & ")", "EINGABE") If ente = "" Then ente = entev Else entev = ente del = InputBox("neuer Wert für DEL? (Return = " & delv & ")", "EINGABE") If del = "" Then del = delv Else delv = del fom = InputBox("neuer Wert für FOM? (Return = " & fomv & ")", "EINGABE") If fom = "" Then fom = fomv Else fomv = fom ltf = InputBox("neuer Wert für den fof-Lautstärkefaktor? (Return = " & ltfv & ")", "EINGABE") If ltf = "" Then ltf = ltfv Else ltfv = ltf lts = InputBox("neuer Wert für den Sample-Lautstärkefaktor? (Return = " & ltsv & ")", "EINGABE") If lts = "" Then lts = ltsv Else ltsv = lts hts = InputBox("neuer Wert für den Sample-Frequenzfaktor? (Return = " & htsv & ")", "EINGABE") If hts = "" Then hts = htsv Else htsv = hts Else fua = fuav fub = fubv ente = entev del = delv fom = fomv ltf = ltfv ' neu am 7.2.2011 lts = ltsv ' neu am 7.2.2011 hts = htsv ' neu am 7.2.2011 GesamtLT = GesamtLTv GesamtHT = GesamtHTv GesamtKL = GesamtKLv MasterHT = MasterHTv MasterKL = MasterKLv End If Else Sinusv = Sinus fua = fuav fub = fubv ente = entev del = delv fom = fomv janeins = InputBox("weitere Einstellungen? (Return = nein)", "EINGABE") End If If janeins <> "" Or janeini <> "" Then GesamtLT = InputBox("Lautstärkefaktor angeben (Return = " & GesamtLTv & ")", "EINGABE") If GesamtLT = "" Then GesamtLT = GesamtLTv Else GesamtLTv = GesamtLT GesamtHT = InputBox("Tonhöhenfaktor angeben (Return = " & GesamtHTv & ")", "EINGABE") If GesamtHT = "" Then GesamtHT = GesamtHTv Else GesamtHTv = GesamtHT If Sinus <> "j" Then GesamtKL = InputBox("Klangfrequenzfaktor angeben (Return = " & GesamtKLv & ")", "EINGABE") If GesamtKL = "" Then GesamtKL = GesamtKLv Else GesamtKLv = GesamtKL Else GesamtKL = GesamtKLv End If If Int(MasterHT) > 0 Then MasterHT = InputBox("Mastertonhöhe angeben (Return = " & MasterHTv & vbCrLf & "0 = keine)", "EINGABE") Else MasterHT = InputBox("Mastertonhöhe angeben, z.B. 440" & vbCrLf & "(Return = " & MasterHTv & ")", "EINGABE") End If If MasterHT = "" Then MasterHT = MasterHTv Else MasterHTv = MasterHT If Int(MasterKLv) > 0 Then MasterKL = InputBox("Masterklangfrequenz angeben (Return = " & MasterKLv & vbCrLf & "0 = keine)", "EINGABE") Else MasterKL = InputBox("Masterklangfrequenz angeben, z.B. 50 " & vbCrLf & " (Return = " & MasterKLv & ")", "EINGABE") End If If MasterKL = "" Then MasterKL = MasterKLv Else MasterKLv = MasterKL Else GesamtLT = GesamtLTv GesamtHT = GesamtHTv GesamtKL = GesamtKLv MasterHT = MasterHTv MasterKL = MasterKLv End If Call SchreibIni End Sub Private Sub Text1_Change() Reaperfile = Text1.Text Vondatei = Arbeitsordner & Reaperfile & ".rpp" Call SchreibIni frmDatei.Caption = "Hukumu " & Version & " - Reaper-Datei: " & Vondatei & " - Spurname: " & Trackname Clipboard.Clear Clipboard.SetText Text1.Text + ".wav" ' NEU am 17.07.2015 End Sub 'Private Sub Text1_klick() ' Clipboard.Clear ' Clipboard.SetText Text1.Text + ".wav" ' NEU am 17.07.2015 'End Sub Private Sub Text2_Change() frmDatei.Caption = "Hukumu " & Version & " - Reaper-Datei: " & Vondatei & " - Spurname: " & Trackname Trackname = Text2.Text Call SchreibIni frmDatei.Caption = "Hukumu " & Version & " - Reaper-Datei: " & Vondatei & " - Spurname: " & Trackname End Sub Private Sub Text3_Change() Sinus = Text3.Text If Sinus <> "j" And Sinus <> "ja" Then Sinus = "n" If Sinus = "ja" Then Sinus = "j" Call SinusAn Call SchreibIni End Sub Private Sub SinusAn() If Sinus = "j" Then Sinus = "j" Text4.BackColor = &HC0C0C0 Text5.BackColor = &HC0C0C0 Text6.BackColor = &HC0C0C0 Text7.BackColor = &HC0C0C0 Text8.BackColor = &HC0C0C0 Label9.Caption = "Sinus-Lautstärkefaktor" Else Text4.BackColor = &HF4F4F4 '&HE0E0E0 Text5.BackColor = &HF4F4F4 '&HE0E0E0 Text6.BackColor = &HF4F4F4 '&HE0E0E0 Text7.BackColor = &HF4F4F4 '&HE0E0E0 Text8.BackColor = &HF4F4F4 '&HE0E0E0 Label9.Caption = "FOF-Lautstärkefaktor" End If End Sub Private Sub SampleAn() If lts = 0 Then Text10.BackColor = &HF4F4F4 '&HE0E0E0 Text11.BackColor = &HF4F4F4 '&HE0E0E0 Command11.BackColor = &HF4F4F4 ' &HE0E0E0 Command12.BackColor = &HF4F4F4 '&HE0E0E0 Else Text10.BackColor = &HE1C8C8 ' &HC8F2F2 Text11.BackColor = &HE1C8C8 ' &HC8F2F2 Command11.BackColor = &HE1C8C8 ' &HC8F2F2 Command12.BackColor = &HE1C8C8 ' &HC8F2F2 End If End Sub Private Sub Text4_Change() fua = Val(Text4.Text) ' VAL Call SchreibIni End Sub Private Sub Text5_Change() fub = Val(Text5.Text) Call SchreibIni End Sub Private Sub Text6_Change() ente = Val(Text6.Text) Call SchreibIni End Sub Private Sub Text7_Change() del = Val(Text7.Text) Call SchreibIni End Sub Private Sub Text8_Change() fom = Val(Text8.Text) Call SchreibIni End Sub Private Sub Text9_Change() ltf = Val(Text9.Text) Call SchreibIni End Sub Private Sub Text10_Change() lts = Val(Text10.Text) Call SampleAn Call SchreibIni End Sub Private Sub Text11_Change() hts = Val(Text11.Text) Call SchreibIni End Sub Private Sub Text12_Change() GesamtLT = Val(Text12.Text) Call SchreibIni End Sub Private Sub Text13_Change() GesamtHT = Val(Text13.Text) Call SchreibIni End Sub Private Sub Text14_Change() GesamtKL = Val(Text14.Text) Call SchreibIni End Sub Private Sub Text15_Change() MasterHT = Val(Text15.Text) Call SchreibIni If MasterHT > 0 Then Text15.BackColor = &H8080FF '&HE0E0E0 Else Text15.BackColor = &HF4F4F4 End If End Sub Private Sub Text16_Change() MasterKL = Val(Text16.Text) Call SchreibIni If MasterKL > 0 Then Text16.BackColor = &H8080FF '&HE0E0E0 Else Text16.BackColor = &HF4F4F4 End If End Sub 'Private Sub Text17_Change() ' dnz = Text17.Text ' hier nichts hineinschreiben! ' Call SchreibIni 'End Sub Private Sub SchreibIni() On Error GoTo ssss Open Arbeitsordner & "Huku.ini" For Output As #1 Print #1, Reaperfile Reaperfilev = Reaperfile Print #1, Trackname Tracknamev = Trackname Print #1, Sinus ' NEU (heute ist Sonntag, der 30.01.2011) Print #1, fua Print #1, fub Print #1, ente Print #1, del Print #1, fom Print #1, ltf ' neu am 7.2.2011 Print #1, lts ' neu am 7.2.2011 Print #1, hts ' neu am 7.2.2011 Print #1, GesamtLT Print #1, GesamtHT Print #1, GesamtKL Print #1, MasterHT Print #1, MasterKL Print #1, Dateiname Print #1, dnz 'Dateinamenzähler Close #1 ssss: End Sub Private Sub VolZeilenZeigen() ' Hier wird der Inhalt der zu verwendenden Zeilen angezeigt <------------ ! Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testlist.AddItem "Inhalt des Feldes Zl(). In diesem Feld stehen die Zeilen " & na1 & " bis " & ne1 & " aus der Datei" Testlist.AddItem Vondatei & " im Bereich der Lautstärkehüllkurve mit dem Namen " & Trackname & "." Testlist.AddItem "Sie enthalten den Teil der Lautstärkehüllkurve, der sich zwischen den beiden" Testlist.AddItem "markierten Hüllkurvenpunkten befindet." Testlist.AddItem "" For n = na1 To ne1 Testlist.AddItem n & Zl(n) Next n Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" End Sub Private Sub MarkerZeilenZeigen() ' Testlist.Clear Testlist.AddItem "Feld Markerfeld() - komplette Zeileninhalte der Feldnummern 1 bis " & mz Testlist.AddItem "" For n = 1 To mz Testlist.AddItem n & Markerfeld(n) Next n Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" End Sub Private Sub MarkerzeitwerteZeigen() ' Testlist.Clear Testlist.AddItem "Feld Markerzeiten() - alle gespeicherten Markerzeitwerte der Feldnummern 1 bis " & mz Testlist.AddItem "" For n = 1 To mz Testlist.AddItem "Feldnummer " & n & " - " & Markerzeiten(n) Next n Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" End Sub Private Sub MarkerfrequenzwerteZeigen() ' Testlist.Clear Testlist.AddItem "Feld Markerfreq() - alle gespeicherten MarkerFrequenzwerte der Feldnummern 1 bis " & mz Testlist.AddItem "" For n = 1 To mz Testlist.AddItem Markerfreq(n) Next n Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" End Sub Private Sub TonhöhenfeldZEIGEN() ' Testlist.Clear Testlist.AddItem "Feld HT() - alle gespeicherten Tonhöhen der Feldnummern " & na1 & " bis " & ne1 Testlist.AddItem "" For n = na1 To ne1 Testlist.AddItem "Feldnummer " & n & " - " & HT(n) Next n Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" End Sub Private Sub ZeitwerteLautstärkenTonhöhenZeigen() Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testlist.AddItem "" ' Testlist.AddItem "" Testlist.AddItem "Analyse der aus " & Vondatei & " herausgefilterten Werte." Testlist.AddItem "Alle angezeigten Werte wurden dieser Datei entnommen." Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" ' Testlist.AddItem "" ' Testlist.AddItem "Zeitwerte aus ZP(), Lautstärkewerte aus LT(), Frequenzen aus HT()" ' Testlist.AddItem "und Klangfrequenzen aus KL(). Die angegebenen Zeilennummern " ' Testlist.AddItem "Die Zeilennummern und die zugehörigen Zeitpunkte wurden der Datei" ' Testlist.AddItem Vondatei & " entnommen, ebenso die Lautstärke-, Tonhöhen- und" ' Testlist.AddItem "Klangfrequenzwerte." Testliste(1).Clear Testliste(1).AddItem "Zeitpunkte" Testliste(1).AddItem "aus ZP():" Testliste(1).AddItem "" Testliste(2).Clear Testliste(2).AddItem "Lautstärken" Testliste(2).AddItem "aus LT():" Testliste(2).AddItem "" Testliste(3).Clear Testliste(3).AddItem "Tonhöhen" Testliste(3).AddItem "aus HT():" Testliste(3).AddItem "" Testliste(4).Clear Testliste(4).AddItem "Klangfreq." Testliste(4).AddItem "aus KL():" Testliste(4).AddItem "" For n = na1 To ne1 ' Testliste(1).AddItem n & " " & ZP(n) ' Testliste(2).AddItem n & " " & LT(n) ' Testliste(3).AddItem n & " " & HT(n) ' Testliste(4).AddItem n & " " & KL(n) Testliste(1).AddItem ZP(n) Testliste(2).AddItem LT(n) Testliste(3).AddItem HT(n) Testliste(4).AddItem KL(n) Next n End Sub Private Sub MarkerFinden() Dim Schlusselwort As String Schlusselwort = "MARKER" mz = 0 ' Markerzähler n = 0 Do n = n + 1 Wort = "" 'Wörter heraussuchen Clef = "": flag = 0 zeile = Zl(n) For m = 1 To Len(zeile) ' Eine Zeile checken Wort = Mid$(zeile, m, Len(Schlusselwort)) If Wort = Schlusselwort Then ' Reaper-Schlüsselwort (hier MARKER) mz = mz + 1 Markerfeld(mz) = Zl(n) ' rein ins Feld ' MsgBox "Zl(n): " & Zl(n) & " - Markerfeld(mz): " & Markerfeld(mz) End If Next m Loop Until n = nv ' vorher so: Until Wort = ">" Or End Sub Private Sub SucheSpurnamen() Dim SchluWoGefunden, ErstesVorkommen As Boolean Dim Schlusselwort As String Dim Worts As String Schlusselwort = "NAME" ' Reaper-Schlüsselwort für die Spurnamen ErstesVorkommen = False For n = 1 To nv ' nv Zeilen nacheinander aufrufen If ErstesVorkommen = False Then SchluWoGefunden = False Wort = "" Worts = "" Clef = "": flag = 0 zeile = Zl(n) For m = 1 To Len(zeile) ' Eine Zeile checken Worts = Mid$(zeile, m, Len(Schlusselwort)) Wort = Mid$(zeile, m, Len(Trackname)) If Worts = Schlusselwort Then ' Reaper-Schlüsselwort SchluWoGefunden = True End If If Wort = Trackname And SchluWoGefunden = True Then ' nur beim Schlüsselwort nx = n Wortv = Wort ErstesVorkommen = True End If Next m End If Next n If ErstesVorkommen = False Then MsgBox "Spur mit Namen " & Trackname & " existiert nicht im Reaperfile " & Reaperfile, , "FEHLER" Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testliste(1).Clear Testliste(2).Clear Testliste(3).Clear Testliste(4).Clear Tracknot = True End If End Sub Private Sub VolKurve() Dim SchluWoGefunden As Boolean Dim Schlusselwort As String Dim ErstesVorkommen As Boolean Schlusselwort = " " " m = m - 1 Wort = "" Do m = m + 1 Teil = Mid$(zeile, m, 1) Wort = Wort + Teil ' erste Zahl suchen Loop Until Teil = " " vZeit = Wort ' MsgBox vZeit m = m - 1 Do m = m + 1 Wort = Mid$(zeile, m, 1) ' zweite Zahl suchen ' MsgBox Wort Loop Until Wort <> " " m = m - 1 Wort = "" Do m = m + 1 Teil = Mid$(zeile, m, 1) Wort = Wort + Teil ' erste Zahl suchen Loop Until m = Len(InhaltSelect) hZeit = Wort ' MsgBox hZeit ' Wir haben jetzt die beiden Selection-Zeitpunkte vZeit und hZeit! If vZeit > hZeit Then mZeit = hZeit hZeit = vZeit vZeit = mZeit End If ' MsgBox vZeit & " - " & hZeit ' End ' ENDE <-------------------------------------- Test ny = n Wortw = Wort ErstesVorkommen = True End If Next m End If Next n rraus: 'na1 und ne1 ermitteln: 'Der nächsthöhere Zeitpunkt zu vZeit ist na1. 'Der nächstniedrigere Zeitpunkt zu hZeit ist ne1. For n = na To ne + 1 zeile = Zl(n) Call ZeitpunktHerausfinden ' Zeitwert zpv ' MsgBox zpv ' GUT If na1_gesetzt = False Then ' nur 1 mal If zpv >= vZeit Then na1 = n ' richtig! na1_gesetzt = True End If End If If ne1_gesetzt = False Then ' nur 1 mal If zpv >= hZeit Then ne1 = n - 1 ne1_gesetzt = True End If End If Next n If ne1 = 0 Then ' ... in der Not ne1 = n - 2 ne1_gesetzt = True End If ' VORSICHT - es stürzt ab! 'MsgBox na1 'MsgBox ne1 'na1 = 279 ' (ZTP 56.005322) ' Test 'ne1 = 318 ' (ZTP 61.020117) ' Test If Val(na1) >= Val(ne1) Then MsgBox "Die Auswahlklammer (Selection) ist falsch oder nicht vorhanden", , "FEHLER" Punktefehler = True Testliste(1).Clear Testliste(2).Clear Testliste(3).Clear Testliste(4).Clear na1 = 1: ne1 = 2 ' willkürliche Werte; ne1 = 2 muss so sein (ist ein Hinweis)! End If eeeeeee: End Sub Private Sub StartStopPunkte_check() 'Zeilenpointer für markierten Anfang und Ende na1 und ne1 herausfinden 'Auch der niedrigste und der höchste Zeitpunkt muss gespeichert werden '(zpa und zpe)! Dim ErstesVorkommen, ZweitesVorkommen As Boolean Dim pf1, pf2, pf3 As Boolean pf1 = False: pf2 = False: pf3 = False ErstesVorkommen = False ZweitesVorkommen = False n = na Do n = n + 1 Wort = "" 'Wörter heraussuchen Clef = "": flag = 0 zeile = Zl(n) If Right(zeile, 3) = "0 1" Then ' NEU in v.3.00 If ErstesVorkommen = False Then ' Markierung ist bisher noch nicht vorgekommen na1 = n ' <---------- Anfangszeitpunkt! Call ZeitpunktHerausfinden 'zpa ermitteln! <-------------------- zpa = zpv ' Vorsicht, zpv ist ein String! - UMWANDELN! ErstesVorkommen = True Else If ZweitesVorkommen = False Then ' Markierung ist bisher einmal vorgekommen ne1 = n ' < ---------- Endezeitpunkt! Call ZeitpunktHerausfinden 'zpe ermitteln! <-------------------- zpe = zpv ' Vorsicht, zpv ist ein String! - UMWANDELN! ZweitesVorkommen = True pf1 = False Else 'Es waren schon zwei Punkte! MsgBox "Es wurden mehr als zwei Punkte markiert! Genau zwei Punkte als Anfang und Ende markieren!", , "FEHLER" Punktefehler = True Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testliste(1).Clear Testliste(2).Clear Testliste(3).Clear Testliste(4).Clear GoTo endee End If End If End If Loop Until n = ne ' Reaper-Endezeichen ne = n - 1 If ErstesVorkommen = False Then ' nicht mal eine Markierung MsgBox "Es wurde überhaupt kein Punkt markiert! Genau zwei Punkte als Anfang und Ende markieren!", , "FEHLER" Punktefehler = True Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testliste(1).Clear Testliste(2).Clear Testliste(3).Clear Testliste(4).Clear Else pf2 = False End If If ErstesVorkommen = True And ZweitesVorkommen = False Then ' keine zweite Markierung MsgBox "Es fehlt die zweite Markierung! Genau zwei Punkte als Anfang und Ende markieren!", , "FEHLER" Punktefehler = True Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testliste(1).Clear Testliste(2).Clear Testliste(3).Clear Testliste(4).Clear Else pf3 = False End If endee: If Punktefehler = True Then ' <--- NEU ' na1 = 1: ne1 = 2 ' willkürliche Werte; ne1 = 2 muss so sein (ist ein Hinweis)! na1 = 0: ne1 = 0 ' NEU am 14.05.2015 End If If pf1 And pf2 And pf3 = False Then Punktefehler = False End If End Sub Private Sub StartStopPunkte_check_StorePoint() 'Zeilenpointer für markierten Anfang und Ende na1 und ne1 herausfinden 'Auch der niedrigste und der höchste Zeitpunkt muss gespeichert werden '(zpa und zpe)! Dim ErstesVorkommen, ZweitesVorkommen As Boolean Dim pf1, pf2, pf3 As Boolean pf1 = False: pf2 = False: pf3 = False ' HIER neu am 15.05.2015 <--------- gut! ''''''''''''''''''''''''''''''''''''''''''''''''''' Call AnfangEnde_check ' na und ne ermitteln nax = na + 1 ' immer der zweite Punkt soll als markiert gelten nex = ne Open Arbeitsordner & "Huku2.ini" For Output As #1 Print #1, nax Print #1, nex ' bald noch mehr?? Close #1 If Punkteautomatik = True Then StartStoppLos.BackColor = &HB3B3FF ' ziegelrot &H8080FF ' kräftigeres ziegelrot End If '''''''''''''''''''''''''''''''''''''''''''''''''''' ' MsgBox "na1 und ne1: " & na1 & " " & ne1 ' MsgBox "na und ne: " & na & " " & ne ' MsgBox "nax und nex: " & nax & " " & nex na1 = nax ' <---------- Anfangszeitpunkt! <------------- NEU am 13.05.2015 'MsgBox na1 zeile = Zl(nax) Call ZeitpunktHerausfinden 'zpa ermitteln .... aus was, aus na und ne?? zpa = zpv ' Vorsicht, zpv ist ein String! - UMWANDELN! ErstesVorkommen = True ne1 = nex ' <---------- Endezeitpunkt! <------------- NEU am 13.05.2015 'MsgBox ne1 zeile = Zl(nex) Call ZeitpunktHerausfinden 'zpe ermitteln! <-------------------- zpe = zpv ' Vorsicht, zpv ist ein String! - UMWANDELN! ZweitesVorkommen = True Punktefehler = False 'ne = ne - 1 ' ????? ne = n - 1 End Sub Private Sub ZeitpunktHerausfinden() Dim X, Y, z As Integer Dim Suwo As String Dim Zeichen As String 'Aus einer Zeile wird der Zeitpunkt extrahiert! 'Zeile enthält den Zeileninhalt 'zpa soll nachher den Anfangszeitpunkt und zpe den den Endezeitpunkt enthalten! zpv = "" Suwo = "PT " X = 0 Do X = X + 1 If Mid(zeile, X, Len(Suwo)) = Suwo Then ' Suchwort gefunden! X = X + Len(Suwo) - 1 Zeichen = "a" ' Dummy Do Until Zeichen = " " X = X + 1 Zeichen = Mid(zeile, X, 1) zpv = zpv + Zeichen ' MsgBox Zeile ' Testlist.AddItem zpv Loop End If Loop Until X = Len(zeile) 'Next x 'MsgBox zpv ' Test am 15.05.2015 End Sub Private Sub AuswertungLKURVE() n = na1 - 1 Do n = n + 1 zeile = Zl(n) Call ExtraktVolkurvenZeitpunkte If PTnichtgefunden = False Then Call ExtraktVolkurvenLautstarken End If Loop Until n = Val(ne1) ' ' ZP(n) enthält jetzt die relevanten Zeitwerte und ' LT(n) enthält die dazugehörigen Lautstärkewerte. 'fv End Sub Private Sub ExtraktVolkurvenZeitpunkte() ' Die Lautstärkezahl ist die erste Zahl in der Zeile. ' Voraussetzungen für das Finden dieser ersten Zahl: ' 1. Es muss eine Buchstabenfolge PT mit darauf folgendem Leerzeichen geben ' 2. Nach dieser Zahl muss ein Leerzeichen folgen. ' Dim Suchwort, Wort, Teil As String Suchwort = "PT " Wort = "" m = 1 Do Wort = Mid(zeile, m, Len(Suchwort)) m = m + 1 Loop Until Wort = Suchwort Or m = Len(zeile) ' bis 'PT ' gefunden If Wort = Suchwort Then Wort = "" m = m + Len(Suchwort) - 1 ' Do Teil = Mid(zeile, m, 1) ' Ziffer lesen If Teil <> " " Then Wort = Wort + Teil Else VolumeSpalte = m + 1 End If m = m + 1 Loop Until Teil = " " Or m = Len(zeile) Else ' MsgBox "'PT ' nicht gefunden", , "FEHLER" PTnichtgefunden = True End If Zeitwert = Val(Wort) If Infotaste = False Or gedru = False Then ' Neu am 06.09.2013 ZP(n) = Zeitwert End If ZPmm(n) = ZP(n) ' <------------ neu am 05.09.2013 - Sicherung der alten Werte ' MsgBox Wort & "-----" & Zeitwert ' den gefundenen Zeitwert anzeigen End Sub Private Sub AuswertungFRQ() Dim n, m, X, Y As Integer Dim ZeileV As Variant ' Zeile aus der Lautstärkekurvenfeld Dim ZeileM As Variant ' Zeile aus dem Markerfeld Dim Rundu As Integer ' bei rundu = 10 wird auf eine Stelle hinter dem Dezimalpunkt gerundet Dim ZeileVr As Variant Dim ZeileMr As Variant Rundu = 10000 ' vorher 1000 - neu am 18.09.2013 Dim HTreingeschrieben As Boolean Dim KLreingeschrieben As Boolean Dim zll As String Dim stk As String Dim frq_erkannt As Boolean For n = na1 To ne1 ' alle Hüllkurvenzeilen durchsehen HTreingeschrieben = False KLreingeschrieben = False ZeileV = ZP(n) ZeileVr = (Int((ZeileV * Rundu) + 0.5)) / Rundu For m = 1 To mz ' <--------------------------------------------- mz? 'alle Markerzeilen durchsehen! ZeileM = Markerzeiten(m) ZeileMr = (Int((ZeileM * Rundu) + 0.5)) / Rundu ' ' if ZeileM ähnlich ZeileV, dann tu die dazugehörige Frequenz aus dem ' Markerfrequenzfeld ins Tonhöhenfeld HT() und die zweite Frequenz - falls ' vorhanden - ins zugehörige Klangfarbenfeld KL() ' end if If ZeileMr = ZeileVr Then ' Frequenzmarker auswerten: <---------- ' Analyse der Zeile: stk = "" zll = Markerfreq(m) frq_erkannt = False For X = 1 To Len(zll) '''''''''''''''''' ' Frequenzerkennung: Y = 0 '---------------------------------------------------------------------------- If frq_erkannt = False Then Do Y = Y + 1 stk = stk + Mid(zll, Y, 1) ' erste Zahl (Frequenz) zusammensetzen! Loop Until Mid(zll, Y, 1) = " " Or Y >= Len(zll) If Infotaste = False Or gedru = False Then ' Neu am 06.09.2013 HT(n) = Val(stk) ' <---- gefundene Frequenz reinschreiben - Val(Buchstabe) ergibt 0 End If If HT(n) = 0 Then MsgBox "Frequenzmarker enthält Buchstaben oder sonstige Zeichen außer Zahlen", , "FEHLER" End If ' '''''''''''''''''' ' Klangfrequenzerkennung: stk = "" Y = 0 Do Y = Y + 1 Loop Until Mid(zll, Y, 1) = " " Or Y >= Len(zll) ' bis zum Leerzeichen Do Y = Y + 1 Loop Until Mid(zll, Y, 1) <> " " Or Y >= Len(zll) ' noch eine Zahl beginnt Y = Y - 1 Do Y = Y + 1 stk = stk + Mid(zll, Y, 1) ' erste Zahl (Frequenz) zusammensetzen! Loop Until Mid(zll, Y, 1) = " " Or Y >= Len(zll) If Infotaste = False Or gedru = False Then ' Neu am 06.09.2013 KL(n) = Val(stk) ' <---- gefundene Frequenz (oder 0) reinschreiben End If If KL(n) <> 0 Then KLreingeschrieben = True ' If n = na1 Then ' beim ersten Kurvenwert muss auch immer eine Klangfrequenz stehen If KL(n) = 0 Then KL(n) = HT(n) ' dann den Frequenzwert übernehmen KLreingeschrieben = True ' End If End If ' '''''''''''''''''' End If '---------------------------------------------------------------------------- frq_erkannt = True '''''''''''''''''' Next X ' (alt: HT(n) = Val(Markerfreq(m)) ' <---- reinschreiben!! - VAL IST NEU! <---) HTreingeschrieben = True End If ' Next m If n = na1 Then ' beim ersten Kurvenwert muss immer eine Frequenz stehen If HTreingeschrieben = False Or HT(n) = 0 Then MsgBox "Beim ersten Kurvenwert steht kein Frequenzmarker oder die Frequenzangabe ist ungültig!", , "FEHLER" KeinFrequenzmarkerAmBeginn = True End If End If If HTreingeschrieben = False Then HT(n) = HT(n - 1) ' den vorigen Wert übernehmen End If If KLreingeschrieben = False Then KL(n) = KL(n - 1) End If HTmm(n) = HT(n) ' <------------ neu am 05.09.2013 - Sicherung der alten Werte KLmm(n) = KL(n) ' <------------ neu am 05.09.2013 - Sicherung der alten Werte Next n ' HIER NICHT!!!!! ' HTmm(n) = HT(n) ' <------------ neu am 05.09.2013 - Sicherung der alten Werte ' KLmm(n) = KL(n) ' <------------ neu am 05.09.2013 - Sicherung der alten Werte End Sub Private Sub AuswertungMARKER() n = 0 Do n = n + 1 zeile = Markerfeld(n) If MARKERnichtgefunden = False Then Call ExtraktMarkerZeitpunkte Call ExtraktMarkerFrequenzwerte Else Exit Do End If Loop Until n = mz End Sub Private Sub ExtraktMarkerZeitpunkte() 'von 1 bis mz ! Dim Suchwort, Wort, Teil, Suwo, Zeichen As String Dim X As Integer Dim MarkerzeitpunktGefunden As Boolean Suwo = "MARKER " Wort = "" ZPm = "" Zeichen = "" m = 1 X = 0 Do X = X + 1 If Mid(zeile, X, Len(Suwo)) = Suwo Then ' Suchwort gefunden! ' das folgende Leerzeichen finden (dann kommt die gesuchte Zahl!) X = X + Len(Suwo) - 1 ' - 1 muss wohl sein .. Do X = X + 1 Zeichen = Mid(zeile, X, 1) Loop Until Zeichen = " " ' Jetzt den Markerzeitpunkt zusammensetzen: Zeichen = "a" ' Dummy ZPm = "" Do X = X + 1 Zeichen = Mid(zeile, X, 1) ZPm = ZPm + Zeichen Loop Until Zeichen = " " Markerzeiten(n) = ZPm ' <------ ?! MarkerzeitpunktGefunden = True End If Loop Until X = Len(zeile) Or MarkerzeitpunktGefunden = True Or X > 100 If X > 100 Then MARKERnichtgefunden = True End Sub Private Sub ExtraktMarkerFrequenzwerte() ' neuerdings wird auch noch ein KL-Wert extrahiert! Dim Suchwort, Zeichen, Zweiteszeichen, Frqwort As String Dim X As Integer X = 0 Do X = X + 1 Suchwort = Mid(zeile, X, 1) If Suchwort = """" Then ' MsgBox "-->" & Suchwort & "<--" ' <------------------------ ' setze das Frqwort zusammen Frqwort = "" Do X = X + 1 Zeichen = Mid(zeile, X, 1) If Zeichen <> """" Then Frqwort = Frqwort + Zeichen End If Loop Until Zeichen = """" ' das zweite Zweiteszeichen = Zeichen ' MsgBox Frqwort Markerfreq(n) = Frqwort End If Loop Until X = 100 ' <------------------------- Test ' Loop Until Zweiteszeichen = """" or x = 100 ' x = 100 zur Sicherheit End Sub Private Sub ExtraktVolkurvenLautstarken() ' Die Lautstärkezahl ist die zweite Zahl in der Zeile. ' Voraussetzungen für das Finden dieser zweiten Zahl: ' 1. der Beginn dieser Zahl an der Spalte VolumeSpalte ' 2. ein Leerzeichen hinter dieser zweiten Zahl ' Dim Wort, Teil As String Wort = "" m = VolumeSpalte Do Teil = Mid(zeile, m, 1) ' Ziffer lesen If Teil <> " " Then Wort = Wort + Teil End If m = m + 1 Loop Until Teil = " " Or m = Len(zeile) Lautwert = Val(Wort) If Infotaste = False Or gedru = False Then ' Neu am 06.09.2013 LT(n) = Lautwert End If LTmm(n) = LT(n) ' <------------ neu am 05.09.2013 - Sicherung der alten Werte ' MsgBox Wort & "-----" & Zeitwert ' den gefundenen Zeitwert anzeigen End Sub Private Sub ZeitwerteZeigen() ' Testlist.Clear Testlist.AddItem "Inhalt des Feldes ZP(). Es enthält die Zeitwerte der Zeilen zwischen den beiden" Testlist.AddItem "markierten Lautstärkekurvenpunkten, also den Zeilen " & na1 & " bis " & ne1 & " in " & Vondatei & "." Testlist.AddItem "" For n = na1 To ne1 Testlist.AddItem "Feldnummer " & n & " - " & ZP(n) Next n Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" End Sub Private Sub LautwerteZeigen() ' Testlist.Clear Testlist.AddItem "Inhalt des Feldes LT(). Es enthält die Lautstärkewerte aller Zeilen, die den" Testlist.AddItem "Bereich zwischen den beiden markierten Punkten in dieser Kurve repräsentieren:" Testlist.AddItem "" For n = na1 To ne1 Testlist.AddItem LT(n) Next n Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" End Sub Private Sub AlleZeilenLesen() On Error GoTo Ende Open Vondatei For Input As #1 'Testlist.Clear n = 0 Do Until EOF(1) Line Input #1, zeile n = n + 1: Zl(n) = zeile nv = n ' merken Loop GoTo ende2 Ende: MsgBox Vondatei & " existiert nicht.", , "FEHLER" DateiNichtDa = True Testlist.Clear Testliste(1).Clear Testliste(2).Clear Testliste(3).Clear Testliste(4).Clear ende2: Close #1 End Sub Private Sub LtHt() Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testlist.AddItem "" Testlist.AddItem " Lautstärketabelle Frqenzen aufwärts: Halbton:" Testlist.AddItem " ---------------------- ----------------------" Testlist.AddItem " ---------------------- c 1.000 2^(1/12)=1.059" Testlist.AddItem " Midi Csound cis 1.059 1/1.059=0.944" Testlist.AddItem " ---------------------- d 1.122 " Testlist.AddItem " 10.00 dis 1.189 Viertelton:" Testlist.AddItem " 7.49 e 1.260 ----------------------" Testlist.AddItem " 5.62 f 1.335 2^(1/24)=1.029" Testlist.AddItem " 4.21 fis 1.414 1/1.029=0.972" Testlist.AddItem " 3.16 g 1.498 " Testlist.AddItem " 2.37 gis 1.587 Achtelton:" Testlist.AddItem " 1.78 a 1.682 ----------------------" Testlist.AddItem " 1.33 ais 1.782 2^(1/48)=1.015" Testlist.AddItem " ---------------------- h 1.888 1/1.015=0.985" Testlist.AddItem " 127 1.00 c 2.000" Testlist.AddItem " ---------------------- " Testlist.AddItem " 120 0.75 " Testlist.AddItem " 112 0.56 Frqenzen abwärts:" Testlist.AddItem " 105 0.42 ----------------------" Testlist.AddItem " 97 0.32 c 1.000" Testlist.AddItem " 90 0.24 h 0.944" Testlist.AddItem " 82 0.18 b 0.892" Testlist.AddItem " 75 0.13 a 0.842" Testlist.AddItem " 67 0.10 as 0.795" Testlist.AddItem " 60 0.075 g 0.750" Testlist.AddItem " 52 0.056 ges 0.707" Testlist.AddItem " 45 0.042 f 0.667" Testlist.AddItem " 37 0.032 e 0.630" Testlist.AddItem " 30 0.024 es 0.595" Testlist.AddItem " 22 0.018 d 0.561" Testlist.AddItem " 15 0.013 des 0.530" Testlist.AddItem " 7 0.010 c 0.500" Testlist.AddItem "" Infotaste = 4 End Sub Private Sub Info() Testlist.Clear Testlist.BackColor = &HF3FCF7 ' grün '&HFFFFFF ' weiß Testlist.AddItem "" Testlist.AddItem " H U K U M U " & Version Testlist.AddItem "" Testlist.AddItem "Dieses Programm ist in Kombination mit der Mixersoftware 'REAPER'" Testlist.AddItem "eine graphische Entwicklungsumgebung für das Musiksyntheseprogramm" Testlist.AddItem "CSOUND. Es wurde in erster Linie dazu geschaffen, eine vorhandene" Testlist.AddItem "musikalische Struktur nachzubilden, zu kopieren und zu variieren." Testlist.AddItem "Es eignet sich aber auch sehr gut zum Komponieren eigenständiger" Testlist.AddItem "Musik, für einzelne Töne ebenso wie für Melodien und Klangmelodien." Testlist.AddItem "Das Besondere an diesem Programm ist, dass es die Möglichkeit zur" Testlist.AddItem "detaillierten Gestaltung des musikalischen Ausdrucks bietet." Testlist.AddItem "" Testlist.AddItem "In Hukumu kommen sowohl synthetische Klänge als auch Samples zur" Testlist.AddItem "Anwendung. Mit Hilfe von gezeichneten Kurven können alle möglichen" Testlist.AddItem "musikalischen Ausdrucksarten wie Stakkato, Portato, Legato," Testlist.AddItem "Glissando erzeugt werden." Testlist.AddItem "" Testlist.AddItem "Die in Reaper gezeichneten Lautstärkehüllkurven werden von Hukumu als" Testlist.AddItem "Lautstärke-, Tonhöhen- und Klangverlaufskurven für die erzeugten Klänge" Testlist.AddItem "interpretiert. Die an bestimmten Punkten gesetzten Marker dienen der" Testlist.AddItem "Tonhöhen- und Klangsteuerung. Jeder Marker enthält eine oder zwei" Testlist.AddItem "Frequenzangaben, die in dem Feld mit der Bezeichnung 'Name' eingetragen" Testlist.AddItem "sein müssen." Testlist.AddItem "" Testlist.AddItem "Als Klangerzeuger bzw. Klangquellen werden Sinusgeneratoren," Testlist.AddItem "FOF-Instrumente, Frequenzmodulatoren und Samples verwendet. Als" Testlist.AddItem "Zwischenergebnis wird in eine Datei 'Huku.rsz' eine Liste geschrieben," Testlist.AddItem "die vom Programm Resone gelesen werden kann. Für den automatisierten" Testlist.AddItem "Ablauf wird ein spezielles Resone verwendet, das sofort Huku.rsz liest" Testlist.AddItem "und dann Csound startet. Die folgenden vier Programme gehören zusammen:" Testlist.AddItem "Reaper - Hukumu - ResoneHu in vier Versionen - Csound." Testlist.AddItem "" Testlist.AddItem "Arbeitsschritte für das Nachbilden eines vorhandenen Klangereignisses." Testlist.AddItem "Voraussetzung: Das nachzubildende Klangereignis existiert bereits auf" Testlist.AddItem "einer Spur in Reaper und Reaper ist geöffnet." Testlist.AddItem "Eine weitere Spur soll dargestellt werden. Sie wird als reine" Testlist.AddItem "Hüllkurvenspur dienen." Testlist.AddItem "" Testlist.AddItem "1. Bei einer beliebigen Spur die Lautstärkehüllkurvendarstellung" Testlist.AddItem " einschalten (in Reaper 'frm' anklicken, dann 'Volume' auswählen)" Testlist.AddItem " und diese dann mit einem Namen versehen, z.B. 'R-01'." Testlist.AddItem "2. Eine Lautstärkehüllkurve, die zum vorhandenen Klangereignis passt," Testlist.AddItem " durch Anklicken und Ziehen zeichnen." Testlist.AddItem "3. Anfangs- und Endpunkt dieser Hüllkurve wird durch Markieren dieser" Testlist.AddItem " Punkte festgelegt (diese beiden Punkte sollen dann als ausgefüllte" Testlist.AddItem " Punkte dargestellt werden)." Testlist.AddItem "4. Tonhöhen und Klangfrequenzen werden an den richtigen Stellen" Testlist.AddItem " mit Hilfe von Markern eingegeben. In das Bezeichnungsfeld dieser" Testlist.AddItem " Marker sollen eine oder zwei Zahlen geschrieben werden. Die erste" Testlist.AddItem " Zahl gibt die Tonhöhe an, die zweite die Klangfrequenz. Als" Testlist.AddItem " Trennzeichen dienen ein oder mehrere Leerzeichen. In diesen" Testlist.AddItem " Feldern dürfen keine anderen Zeichen außer Zahlen und Leerzeichen" Testlist.AddItem " stehen - und: keine führenden Leerzeichen!" Testlist.AddItem "5. Abspeichern in Reaper." Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "Nähere Erläuterungen:" Testlist.AddItem "" Testlist.AddItem "In Reaper müssen zwei Hüllkurvenpunkte markiert werden (sie werden" Testlist.AddItem "dann als Punkt und nicht als Kreis dargestellt). Sie dienen als" Testlist.AddItem "Start- und Endpunkt für die Hüllkurvenauswertung. Der erste Punkt" Testlist.AddItem "wird durch Anklicken markiert. Während die Shift-Taste gedrückt wird," Testlist.AddItem "kann ein zweiter Punkt durch Anklicken markiert werden." Testlist.AddItem "Besser geht es so: Mit der rechten Maustaste ein Rechteck aufziehen." Testlist.AddItem "Die Punkte, die sich im Rechteck befinden, werden dadurch markiert." Testlist.AddItem "Demarkieren von einem oder mehreren markierten Punkten: Taste 'Entf'." Testlist.AddItem "" Testlist.AddItem "Wichtig: Das Programm braucht einen 'leeren' (nicht markierten)" Testlist.AddItem "Punkt links neben der Hüllkurve, z.B. beim Zeitpunkt 1. Noch weiter" Testlist.AddItem "links sollte die Hüllkurve keine Punkte enthalten." Testlist.AddItem "" Testlist.AddItem "Um Tonhöhen und Klangfrequenzen einzugeben, werden an vorhandenen" Testlist.AddItem "Kurvenpunkten mit der Taste 'M' Marker gesetzt. Überall dort, wo" Testlist.AddItem "sich die Tonhöhe ändern soll, muss ein Marker gesetzt werden. Dies" Testlist.AddItem "ist auf jeden Fall immer am Beginn einer Lautstärkehüllkurve" Testlist.AddItem "notwendig. Weitere Tonhöhen können an beliebigen bereits gesetzten" Testlist.AddItem "Hüllkurvenpunkten eingegeben werden. Das Programm berücksichtigt" Testlist.AddItem "nur solche Marker, die über bereits gesetzte Hüllkurvenpunkten" Testlist.AddItem "gelegt wurden. Die Zeitpunkte dieser Marker müssen genau mit den" Testlist.AddItem "Hüllkurvenzeitpunkten übereinstimmen. An Kurvenpunkten, die keinen" Testlist.AddItem "Marker besitzen, wird die zuvor eingegebene Tonhöhe übernommen." Testlist.AddItem "" Testlist.AddItem "Klangfrequenzen können, müssen aber nicht zusätzlich ins" Testlist.AddItem "Marker-Bezeichnungsfeld eingetragen werden. Wo nur eine einzige" Testlist.AddItem "Zahl für die Tonhöhe eingetragen wurde, wird diese Zahl auch für" Testlist.AddItem "die Klangfrequenz übernommen." Testlist.AddItem "Das Programm kann aber auch so eingestellt werden, dass es nach einer" Testlist.AddItem "einzugebenden Klangfrequenz fragt. Diese Klangfrequenz wird dann für" Testlist.AddItem "alle Töne verwendet. Ebenso kann festgelegt werden, dass eine" Testlist.AddItem "einzugebende Tonhöhe für alle Töne beibehalten wird." Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "Wiedergabe von Samples:" Testlist.AddItem "" Testlist.AddItem "Ein abzuspielende Sample sollte als Stereo-Wav-Datei vorliegen und" Testlist.AddItem "von ausreichender Dauer sein. Der Sample-Lautstärkefaktor muss in" Testlist.AddItem "Hukumu auf eine Zahl größer Null eingestellt werden." Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "Variation:" Testlist.AddItem "" Testlist.AddItem "Um eine Orchesterwirkung zu erzeugen, braucht man viele ähnliche" Testlist.AddItem "Klänge oder Klangfolgen. Diese erhält man durch Drücken der Tasten" Testlist.AddItem "'Z' für die Verschiebung der Zeitpunkte, 'D' für die Reduzierung der" Testlist.AddItem "Tondauern, 'L' für Lautstärke- , 'H' für Tonhöhen- und 'K' für" Testlist.AddItem "Klangveränderungen. Außer bei den Tondauern wird ein Zufallsgenerator" Testlist.AddItem "eingesetzt. Die Stärke der Veränderungen (außer bei den Tondauern)" Testlist.AddItem "wird mit Hilfe der senkrecht angeordneten Schieberegler eingestellt." Testlist.AddItem "Wird einer der Knöpfe mehrmals gedrückt, werden die veränderten Werte" Testlist.AddItem "als Grundlage zur weiteren Veränderung verwendet. Das gilt auch" Testlist.AddItem "für die Tondauern (Knopf 'D'), d.h. sie werden weiter verkürzt." Testlist.AddItem "Um wieder die ursprünglichen Werte jeweils einer Kategorie zu erhalten," Testlist.AddItem "kann der Resetknopf 'R' gedrückt werden." Testlist.AddItem "Um eine Variation zur Probe anzuhören, muss der Knopf 'Variation'" Testlist.AddItem "gedrückt werden. Um eine Variation unter neuem Namen zu speichern und" Testlist.AddItem "gleichzeitig eine Reaperdatei mit der veränderten Hüllkurve" Testlist.AddItem "herzustellen, muss 'Snapshot' gedrückt werden." Testlist.AddItem "Der Knopf 'Reaper' dient dazu, Reaper zu starten und die neu erstellte" Testlist.AddItem "Hüllkurve anzusehen (und gegebenenfalls von Hand weiter zu verändern!)." Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "Tempo:" Testlist.AddItem "" Testlist.AddItem "Mit einer weiteren Funktion des 'Z'-Knopfes kann man Tempoänderungen" Testlist.AddItem "erzeugen." Testlist.AddItem "" Testlist.AddItem "Beim Drücken des 'Cso1'-Knopfes gehen alle Variationen sowie die" Testlist.AddItem "Tempoänderung verloren. Es werden dann wieder die ursprünglichen" Testlist.AddItem "Werte verwendet." Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "Plugins (Knopf 'PLG'):" Testlist.AddItem "" Testlist.AddItem "Eine endlose Zahl von verschiedenen Csound-Instrumenten können" Testlist.AddItem "eingesetzt werden. Siehe die gesonderte Bedienungsanleitung ('info')" Testlist.AddItem "zu PLUG." Testlist.AddItem "" Testlist.AddItem "Achtung! Beim Drücken von Knopf 'Cso1' werden die Dateien Resonanz.orc" Testlist.AddItem "und Resonanz.sco neu geschrieben und alle Einstellungen gehen verloren." Testlist.AddItem "Um dies zu verhindern, sollte der Knopf 'Cso2' verwendet werden." Testlist.AddItem "Die klangbestimmenden Eintragungen werden dann nicht überschrieben." Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "Csound-Instrumente von Hand schreiben:" Testlist.AddItem "" Testlist.AddItem "Am besten ist es, wenn vorhandene Dateien Resonanz.orc und Resonanz.sco" Testlist.AddItem "ergänzt werden. Die Dateien müssen Hukumu-konform bleiben und die" Testlist.AddItem "Dateinamen dürfen nicht verändert werden!" Testlist.AddItem "Handgeschriebene Dateien Resonanz.orc und Resonanz.sco können mit der" Testlist.AddItem "Taste 'S' gespeichert und mit der Taste 'L' wieder geladen werden." Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "" Testlist.AddItem "G l o s s a r" Testlist.AddItem "-------------------------------------------------------------------------" Testlist.AddItem "CSOUND: Musiksyntheseprogramm, basierend auf Music Five von Max" Testlist.AddItem " Mathews" Testlist.AddItem "" Testlist.AddItem "REAPER: Rapid Environment for Audio Production, Engineering, and" Testlist.AddItem " Recording." Testlist.AddItem "" Testlist.AddItem "RESONE: Ein Programm, das ursprünglich hauptsächlich dazu" Testlist.AddItem " gedacht war, Tonfolgen mit Legato- und Glissandoeffekten" Testlist.AddItem " zu erzeugen." Testlist.AddItem "" Testlist.AddItem "KLANGFREQUENZ: Ein Wert, der für die fof-Generatoren klangbestimmend" Testlist.AddItem " ist." Testlist.AddItem "" Testlist.AddItem "FOF-GENERATOR: FOF bedeutet 'Formant Frequency Synthesis'. Dies ist" Testlist.AddItem " einer der zahlreichen Klangerzeuger, die Csound" Testlist.AddItem " bereitstellt. Es entstehen u.a. Klänge, die der" Testlist.AddItem " menschlichen Stimme ähneln. Die Klangerzeugung erfolgt" Testlist.AddItem " nach dem Prinzip der gedämpften Schwingung." Testlist.AddItem "" Testlist.AddItem "MARKER: Durch Drücken der Taste 'M' wird in Reaper an der" Testlist.AddItem " Cursorposition ein Marker gesetzt. Bei Doppelklick auf" Testlist.AddItem " die oben angezeigte Markernummer öffnet sich das" Testlist.AddItem " Marker-Bezeichnungsfeld. Dort können Zahlen eingegeben" Testlist.AddItem " werden, entweder nur für die Tonhöhe (Frequenzangabe)," Testlist.AddItem " oder für Tonhöhe und Klangfrequenz." Testlist.AddItem " Beispiele: |440 260| |123.4| |55.8 77.2|" Testlist.AddItem "-------------------------------------------------------------------------" Testlist.AddItem "" Infotaste = 1 End Sub Private Sub IniInfo() Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testlist.AddItem "" Testlist.AddItem "" ' Testlist.AddItem "Inhalt der Datei Huku.ini:" ' Testlist.AddItem "01 Reaperfile" ' Testlist.AddItem "02 Trackname" ' Testlist.AddItem "03 Sinus erzeugen? (j oder n)" ' Testlist.AddItem "04 FUA (für FOF)" ' Testlist.AddItem "05 FUB (für FOF)" ' Testlist.AddItem "06 ENTE (für FOF)" ' Testlist.AddItem "07 DEL (für FOF)" ' Testlist.AddItem "08 FOM (für FOF)" ' Testlist.AddItem "09 LTF (für FOF-Lautstärkefaktor)" ' Testlist.AddItem "10 LTS (für Sample-Lautstärkefaktor)" ' Testlist.AddItem "11 HTS (für Sample-Frequenzfaktor)" ' Testlist.AddItem "12 Masterlautstärke" ' Testlist.AddItem "13 Gesamt-Tonhöhenverschiebung" ' Testlist.AddItem "14 Gesamt-Klangfrequenzverschiebung" ' Testlist.AddItem "15 MasterHTv (eine Tonhöhe für alle Töne)" ' Testlist.AddItem "16 MasterKLv (1 Klangfrequenz für alle Töne)" ' Testlist.AddItem "17 SMP (Pfad für einzubauendes Sample)" ' Testlist.AddItem "18 Dateinamenzähler" Testlist.AddItem "Inhalt der Datei Huku.ini:" Testlist.AddItem "" ' Testlist.AddItem "----------------------------------------------------------------" Testlist.AddItem "01 Name der Reaper-Datei" Testlist.AddItem "02 Name der Hüllkurvenspur" Testlist.AddItem "03 Sinus (ja oder nein)" Testlist.AddItem "04 FUA (für FOF)" Testlist.AddItem "05 FUB (für FOF" Testlist.AddItem "06 ENTE (für FOF)" Testlist.AddItem "07 DEL (für FOF)" Testlist.AddItem "08 FOM (für FOF)" Testlist.AddItem "09 LTF (für FOF-Lautstärkefaktor)" Testlist.AddItem "10 LTS (für Sample-Lautstärkefaktor)" Testlist.AddItem "11 HTS (für Sample-Frequenzfaktor)" Testlist.AddItem "12 Gesamtlautstärke" Testlist.AddItem "13 Tonhöhenmultiplikator (Gesamt-Tonhöhenverschiebung)" Testlist.AddItem "14 Klangfrequenzmultiplikator (Gesamt-Klangfrequenzverschiebung)" Testlist.AddItem "15 MasterHTv (Eine feste Tonhöhe)" Testlist.AddItem "16 MasterKLv (Eine feste Klangfrequenz)" Testlist.AddItem "17 Name des Samples" Testlist.AddItem "18 Nummer (Zähler) für Autoname" Testlist.AddItem "" Testlist.AddItem "" Infotaste = 3 End Sub '============================================================================================================= Private Sub VScroll1_Change() ' neu am 04.09.2013 - Z Dim Wertv As Double Dim Faktor As Double Faktor = ZFaktor ZWert = VScroll1.Value / 32767 * Faktor frmDatei.Caption = "Hukumu" & " " & Version & " " & "Gelesene Datei:" & " " & Reaperfile & ".rpp" & " " & "Spur:" & " " & Trackname & " " & ZWert ' neu am 04.09.2013 End Sub Private Sub VScroll2_Change() ' neu am 04.09.2013 - L Dim Wertv As Double Dim Faktor As Double Faktor = LFaktor LWert = VScroll2.Value / 32767 * Faktor frmDatei.Caption = "Hukumu" & " " & Version & " " & "Gelesene Datei:" & " " & Reaperfile & ".rpp" & " " & "Spur:" & " " & Trackname & " " & LWert ' neu am 04.09.2013 End Sub Private Sub VScroll3_Change() ' neu am 04.09.2013 - H Dim Wertv As Double Dim Faktor As Double Faktor = HFaktor HWert = (VScroll3.Value / 32767 * Faktor) frmDatei.Caption = "Hukumu" & " " & Version & " " & "Gelesene Datei:" & " " & Reaperfile & ".rpp" & " " & "Spur:" & " " & Trackname & " " & HWert ' neu am 04.09.2013 End Sub Private Sub VScroll4_Change() ' neu am 04.09.2013 - K Dim Wertv As Double Dim Faktor As Double Faktor = KFaktor KWert = (VScroll4.Value / 32767 * Faktor) frmDatei.Caption = "Hukumu" & " " & Version & " " & "Gelesene Datei:" & " " & Reaperfile & ".rpp" & " " & "Spur:" & " " & Trackname & " " & KWert ' neu am 04.09.2013 End Sub Private Sub Z_Enter1_Click() ' neu am 05.09.2013 - 16.09.2013 - 10.11.2014 ' Das Drücken dieses Knopfes bewirkt folgendes: ' Zeitpunkte verändern. ' ' Die einzelnen Werte von ZP(n) lesen und mit dem eingestellten ' Wirkungsgrad einer Zufallsfunktion übergeben. Der Wirkungsgrad ' sollte schon zuvor mit dem Schieberegler eingestellt worden sein. ' Werte anzeigen (Sub ZeitwerteLautstärkenTonhöhenZeigen aufrufen) ' ' Regeln für die Zeitpunkte: ' Der erste Wert soll nicht verändert werden. ' Werte von 0 bis 0.1 - noch testen! ' Ein Wert muss immer größer sein als der vorangegangene Wert <------ ! ' Sollte ein Wert nicht dieser letzteren Regel entsprechen, soll einfach ' nochmal die Zufallsfunktion durchlaufen werden. Dim Wert As Double Dim r As Integer Dim ZtP, ZtPnorm As Variant ' neu am 15.10.2013 Dim Ztv As Double ' NEU am 14.09.2013: If na1 > 1 Then ' > 1 statt > 0 ist neu am 24.09.2013 gedru = True ' Command3.BackColor = &HFFE1DD ' neu am 29.09.2013 Command3.BackColor = &HFFFFFF ' weiß Command3.Enabled = False StartStoppFix.BackColor = &HB3B3FF ' ziegelrot Command19.BackColor = &HFFFFFF ' weiß Command19.Enabled = False ' Variation.BackColor = &HFF9F9F ' neu am 29.09.2013 Randomize For n = na1 To ne1 If Tempo.Text <> 1 Then ZtPnorm = ZP(n) - ZP(na1) ' auf Normzeitpunkt umrechnen (normalisieren) ZtP = ZtPnorm * Val(Tempo.Text) ' TEST ZP(n) = ZtP + ZP(na1) ' zurückrechnen Else r = (Int(Rnd * 100) + 1) - 50 ' Wert = 1 + r * ZWert ' ZWert kommt vom Schieberegler - 1 weg ist neu am 24.09.2013 Wert = r * ZWert ' ZWert kommt vom Schieberegler Ztv = Wert ' runden auf so viele Stellen hinter dem Komma, wie x Nullen hat: ' y = Int((Y * X) + 0.5) / x Ztv = Int((Ztv * 10000) + 0.5) / 10000 Wert = Ztv ' neu am 15.10.2013: ' ---------------------------------------------------------------------- ZtPnorm = ZP(n) - ZP(na1) ' auf Normzeitpunkt umrechnen (normalisieren) ZtP = ZtPnorm + Wert ' If ZtP <= 0 Then ZtP = ZtPnorm ZP(n) = ZtP + ZP(na1) ' zurückrechnen If ZP(n) <= ZP(n - 1) Then ZP(n) = ZP(n - 1) + 0.001 ' oder + 0.0001? ' ---------------------------------------------------------------------- ' ZP(n) = ZP(n) + Wert ' '+' ist neu! <-- 15.09.2013 End If Next n End If ' End If hier ist neu am 24.09.2013 Call ZeitwerteLautstärkenTonhöhenZeigen End Sub Private Sub Z_Enter2_Click() ' NEU am 14.09.2013 ' Die Tondauern reduzieren! <---------------- ' Das Drücken dieses Knopfes bewirkt folgendes: ' Tondauern verkürzen Dim Wert As Double Dim r As Integer If na1 > 0 Then gedru = True Command3.BackColor = &HFFFFFF ' weiß Command3.Enabled = False StartStoppFix.BackColor = &HB3B3FF ' ziegelrot Command19.BackColor = &HFFFFFF ' weiß Command19.Enabled = False For n = na1 To ne1 If LT(n) <> 0 And LT(n + 1) = 0 Then ' Tonende ZP(n) = ZP(n) - (ZP(n) - ZP(n - 1)) / 10 ' 10 ist ein Versuchswert ZP(n + 1) = ZP(n + 1) - (ZP(n) - ZP(n - 1)) / 10 ' 10 ist ein Versuchswert End If If ZP(n) <= ZP(n - 1) Then ZP(n) = ZP(n - 1) + 0.001 ' oder besser + 0.0001? Next n Call ZeitwerteLautstärkenTonhöhenZeigen End If End Sub Private Sub L_Enter_Click() ' neu am 05.2013 ' Regeln für die Lautstärken: ' Werte von 0 bis 10 - noch testen! ' Keine Werte kleiner als 0 (oder keine 0 akzeptieren?) ' und keine größer als 10 Dim Wert As Double Dim r As Integer Dim Ltv As Double If na1 > 0 Then gedru = True ' Command3.BackColor = &HFFE1DD ' neu am 29.09.2013 ' Variation.BackColor = &HFF9F9F ' neu am 29.09.2013 Command3.BackColor = &HFFFFFF ' weiß Command3.Enabled = False StartStoppFix.BackColor = &HB3B3FF ' ziegelrot Command19.BackColor = &HFFFFFF ' weiß Command19.Enabled = False Randomize For n = na1 To ne1 Do r = (Int(Rnd * 100) + 1) - 50 Wert = 1 + r * LWert Ltv = LT(n) * Wert ' runden auf so viele Stellen hinter dem Komma, wie x Nullen hat: ' y = Int((Y * X) + 0.5) / x Ltv = Int((Ltv * 1000000) + 0.5) / 1000000 LT(n) = Ltv Loop Until LT(n) >= 0 Next n Call ZeitwerteLautstärkenTonhöhenZeigen End If End Sub Private Sub H_Enter_Click() ' neu am 05.2013 ' Regeln für die Tonhöhenwerte: ' Werte von -100 bis +100 - noch testen! ' Die Werte müssen größer als 0 sein ' Da sich die Frequenzen logarithmisch erhöhen, brauchen wir einen Faktor: ' 2^(1/12) (Ergebnis: 1.0594630) ' 2^(1/100) (Ergebnis: 1.00695555) ' | ' hier kommt die (angepasste) Zufallszahl hinein! ' Beispiel: wenn die Zufallszahl 100 beträgt, ist das Ergebnis 2. Dim Wert As Integer ' integer Dim r As Integer Dim Htv As Double If na1 > 0 Then gedru = True ' Command3.BackColor = &HFFE1DD ' neu am 29.09.2013 ' Variation.BackColor = &HFF9F9F ' neu am 29.09.2013 Command3.BackColor = &HFFFFFF ' weiß Command3.Enabled = False StartStoppFix.BackColor = &HB3B3FF ' ziegelrot Command19.BackColor = &HFFFFFF ' weiß Command19.Enabled = False Randomize For n = na1 To ne1 Do r = (Int(Rnd * 100) + 1) - 50 Wert = Int(1 + r * HWert) Htv = HT(n) * (2 ^ (Wert / 100)) ' OK! ' runden auf so viele Stellen hinter dem Komma, wie x Nullen hat: ' y = Int((Y * X) + 0.5) / x Htv = Int((Htv * 100) + 0.5) / 100 HT(n) = Htv Loop Until HT(n) >= 0 Next n Call ZeitwerteLautstärkenTonhöhenZeigen End If End Sub Private Sub K_Enter_Click() ' neu am 05.2013 ' Regeln für die Klangwerte: ' Nur die Klangwerte verändern, die nicht dem Tonhöhenwert ' aus dem Feld (HT(n) entsprechen. ' Werte von -200 bis +200 - noch testen! ' Die Werte müssen größer als 0 sein ' Da sich die Frequenzen logarithmisch erhöhen, brauchen wir einen Faktor: ' 2^(1/12) (Ergebnis: 1.0594630) ' 2^(1/100) (Ergebnis: 1.00695555) ' | ' hier kommt die (angepasste) Zufallszahl hinein! ' Beispiel: wenn die Zufallszahl 100 beträgt, ist das Ergebnis 2. Dim Wert As Integer ' integer Dim r As Integer Dim Klv As Double If na1 > 0 Then gedru = True ' Command3.BackColor = &HFFE1DD ' neu am 29.09.2013 ' Variation.BackColor = &HFF9F9F ' neu am 29.09.2013 Command3.BackColor = &HFFFFFF ' weiß Command3.Enabled = False StartStoppFix.BackColor = &HB3B3FF ' ziegelrot Command19.BackColor = &HFFFFFF ' weiß Command19.Enabled = False Randomize For n = na1 To ne1 Do r = (Int(Rnd * 100) + 1) - 50 Wert = Int(1 + r * KWert) Klv = KL(n) * (2 ^ (Wert / 100)) ' OK! ' runden auf so viele Stellen hinter dem Komma, wie x Nullen hat: ' y = Int((Y * X) + 0.5) / x Klv = Int((Klv * 100) + 0.5) / 100 KL(n) = Klv Loop Until KL(n) >= 0 Next n Call ZeitwerteLautstärkenTonhöhenZeigen End If End Sub Private Sub Z_Reset_Click() ' neu am 05.2013 For n = na1 To ne1 ZP(n) = ZPmm(n) Next n Call ZeitwerteLautstärkenTonhöhenZeigen End Sub Private Sub L_Reset_Click() ' neu am 05.2013 For n = na1 To ne1 LT(n) = LTmm(n) Next n Call ZeitwerteLautstärkenTonhöhenZeigen End Sub Private Sub H_Reset_Click() ' neu am 05.2013 For n = na1 To ne1 HT(n) = HTmm(n) Next n Call ZeitwerteLautstärkenTonhöhenZeigen End Sub Private Sub K_Reset_Click() ' neu am 05.2013 For n = na1 To ne1 KL(n) = KLmm(n) Next n Call ZeitwerteLautstärkenTonhöhenZeigen End Sub Private Sub Variation_Click() ' neu am 04.09.2013 - Knopf Cso-Var1 ' Resonefile schreiben (Sub ResonefileSchreiben aufrufen) ' ResoneHu aufrufen - dort wird u.a. Csound gestartet (mit Shell) ResoneHuSelect = 0 If gestartet = True Then Call ResonefileSchreiben Call KillApp("Resonanz.wav - Cool Edit") ' Titel des zu schließenden Fensters If ResoneHuSelect = 0 And cole = True Then ' geändert am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu.exe" ' das ursprüngliche Csound-Aufrufen mit Cool Edit End If If ResoneHuSelect = 0 And cole = False Then ' geändert am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu2.exe" ' Csound ohne Cool Edit End If If ResoneHuSelect = 2 And cole = True Then ' NEU am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu3.exe" ' verkürztes Csound mit Cool Edit (orc bleibt unverändert) - 26.04.2015 End If If ResoneHuSelect = 2 And cole = False Then ' NEU am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu4.exe" ' verkürztes Csound ohne Cool Edit (orc bleibt unverändert) - 26.04.2015 End If ''''''''''''''''''''''''''''''''''''''''''''''''''' ' 14.05.2015 Start- und Stoppunkt automatisch speichern ' Zeilennumer für erstes Vorkommen von "PT " (na) und ' Zeilennumer für zweites Vorkommen von "PT " (ne) ermitteln: Call AnfangEnde_check nax = na + 1 ' immer der zweite Punkt soll als markiert gelten nex = ne Open Arbeitsordner & "Huku2.ini" For Output As #1 Print #1, nax Print #1, nex ' bald noch mehr?? Close #1 '''''''''''''''''''''''''''''''''''''''''''''''''''' ' Variation.BackColor = &HFFC0C0 ' blau Command3.BackColor = &HFFC0C0 ' blau Command3.Enabled = True StartStoppFix.BackColor = &HFFFFFF ' weiß Command19.BackColor = &HFFC0C0 ' blau Command19.Enabled = True ' <-------- hier End If End Sub Private Sub Variation2_Click() ' Knopf Cso-Var2 ' Resonefile schreiben (Sub ResonefileSchreiben aufrufen) ' ResoneHu aufrufen - dort wird u.a. Csound gestartet (mit Shell) ResoneHuSelect = 2 If gestartet = True Then Call ResonefileSchreiben Call KillApp("Resonanz.wav - Cool Edit") ' Titel des zu schließenden Fensters If ResoneHuSelect = 0 And cole = True Then ' geändert am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu.exe" ' das ursprüngliche Csound-Aufrufen mit Cool Edit End If If ResoneHuSelect = 0 And cole = False Then ' geändert am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu2.exe" ' Csound ohne Cool Edit End If If ResoneHuSelect = 2 And cole = True Then ' NEU am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu3.exe" ' verkürztes Csound mit Cool Edit (orc bleibt unverändert) - 26.04.2015 End If If ResoneHuSelect = 2 And cole = False Then ' NEU am 24.04.2015 Shell "C:\Arbeit\VB\Huku01\ResoneHu4.exe" ' verkürztes Csound ohne Cool Edit (orc bleibt unverändert) - 26.04.2015 End If ''''''''''''''''''''''''''''''''''''''''''''''''''' ' 14.05.2015 Start- und Stoppunkt automatisch speichern ' Zeilennumer für erstes Vorkommen von "PT " (na) und ' Zeilennumer für zweites Vorkommen von "PT " (ne) ermitteln: Call AnfangEnde_check nax = na + 1 ' immer der zweite Punkt soll als markiert gelten nex = ne Open Arbeitsordner & "Huku2.ini" For Output As #1 Print #1, nax Print #1, nex ' bald noch mehr?? Close #1 '''''''''''''''''''''''''''''''''''''''''''''''''''' ' Variation.BackColor = &HFFC0C0 ' blau ' Command3.BackColor = &HFFC0C0 ' blau ' Command3.Enabled = True ' StartStoppFix.BackColor = &HFFFFFF ' weiß Command19.BackColor = &HFFC0C0 ' blau Command19.Enabled = True ' <-------- hier End If End Sub Private Sub Label17_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Private Sub frmDatei_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) End End Sub Private Sub Plugknopf_Click() ' neu am 10.10.2013 ChDir "C:\Arbeit\VB\Resone4" ' Ordner geändert am 10.10.2013 Shell "C:\Arbeit\VB\Resone4\PLUG", vbNormalFocus ChDir "C:\Arbeit\" Command3.BackColor = &HFFFFFF ' weiß HF3F3F3 hellgrau - neu am 27.04.2015 Command3.Enabled = False StartStoppFix.BackColor = &HB3B3FF ' ziegelrot Orcknopf.BackColor = &HBFFA8F ' grün Scoknopf.BackColor = &HBFFA8F ' grün Variation.BackColor = &HF3F3F3 ' hellgrau Variation.Enabled = False End Sub Private Sub Csoundknopf_Click() ' neu am 10.10.2013 - Knopf Cso ' Csound wird nur aufgerufen. Es werden keine Csound-Dateien geschrieben. Dim Zurdatei3, csoundname As String Zurdatei3 = Arbeitsordner & "cs06b.bat" csoundname = "Resonanz" Open Zurdatei3 For Output As #4 Print #4, " REM " & Zurdatei3 Print #4, " REM Geschrieben am "; Date & ", " & Time Print #4, " REM Genauere Infos siehe Clip 'Resonanz' im NoteTab-Editor!" Print #4, "" Print #4, "" Print #4, " set PATH=%PATH%;C:\CSOUND\bin" Print #4, " set SFDIR=C:\Arbeit" Print #4, "" Print #4, " csound -o " & Arbeitsordner & csoundname; ".wav -W -g "; Arbeitsordner & csoundname; ".orc "; Arbeitsordner & csoundname; ".sco" Print #4, " """ & "c:\cool\COOL96.exe" & """" & " " & """" & Arbeitsordner & csoundname & ".wav" & """" Print #4, "" Print #4, " [c:\arbeit\cs06b3.bat]" Close #4 Call KillApp("Resonanz.wav - Cool Edit") ' Titel des zu schließenden Fensters - NEU am 09.09.2013 Shell "C:\Arbeit\cs06b3.bat" 'Csound starten End Sub Private Sub Csoundstore_Click() dnz = dnz + 1: dnz = Int(dnz) Call SchreibIni ' dnz wurde erhöht - immer gleich in die Inidatei reinschreiben nnn5 = "c:\Arbeit\Huku" & dnz & ".orc" ' Resonanz.orc sichern! FileCopy "C:\Arbeit\Resonanz.orc", nnn5 nnn6 = "c:\Arbeit\Huku" & dnz & ".sco" ' Resonanz.sco sichern! FileCopy "C:\Arbeit\Resonanz.sco", nnn6 ' Folgendes ist neu am 11.10.2013 nnn7 = "c:\Arbeit\Huku" & dnz & ".wav" ' Resonanz.wav sichern! 'NEU am 28.01.2019: Open "C:\Arbeit\mix-hukumu.txt" For Append As #4 Print #4, nnn7 & " 0.00 2 1 L 1 R" ' rein in die Mix-Datei Close #4 FileCopy "C:\Arbeit\Resonanz.wav", nnn7 Clipboard.Clear Clipboard.SetText "Huku" & dnz & ".wav" ' <--- ins Clipboard Testlist.Clear Testlist.AddItem "" Testlist.AddItem "Dateien " & nnn5 & ", " & nnn6 & " " Testlist.AddItem "und " & nnn7 & " geschrieben." End Sub Private Sub Orcknopf_Click() Dim csoundname As String csoundname = "Resonanz" Shell "C:\Arbeit\Editor\NoteTab.exe " & Arbeitsordner & csoundname & ".orc" End Sub Private Sub Scoknopf_Click() Dim csoundname As String csoundname = "Resonanz" Shell "C:\Arbeit\Editor\NoteTab.exe " & Arbeitsordner & csoundname & ".sco" End Sub Private Sub infoStartseite() ' NEU am 24.05.2015 Testlist.Clear Testlist.BackColor = &HF9F7F7 ' &HE0E0E0 ' grau ' Testlist.AddItem "" Open "C:\Arbeit-jms\Eigene Dateien 2\Texte\Bedienungsanleitungen\Csofm\Huku-Startseite.txt" For Input As #9 Do While Not EOF(9) Line Input #9, zeile Testlist.AddItem zeile Loop Close #9 Infotaste = 2 End Sub Private Sub Pluginfo_Click() Dim zeile As String On Error GoTo weiter1 Open "C:\Arbeit-jms\Eigene Dateien 2\Texte\Bedienungsanleitungen\PLUG.txt" For Input As #8 Command15.Visible = False Command16.Visible = False Command17.Visible = False Pluginfo.Visible = False Plugknopf.Visible = False Csoundknopf.Visible = False Orcknopf.Visible = False Csoundstore.Visible = False Scoknopf.Visible = False Text18.Visible = False Tempo.Visible = False Text1.Visible = False Text2.Visible = False Z_Enter1.Visible = False Z_Enter2.Visible = False Text17.Visible = False StartStoppFix.Visible = False StartStoppLos.Visible = False Command4.Visible = False Command5.Visible = False kopieren.Visible = False Abstandstext.Visible = False PRFix.Visible = False ' Command13.Visible = False ' Command14.Visible = False Variation.Visible = False Variation2.Visible = False Command3.Visible = False ' NEU Command19.Visible = False ' NEU Cool.Visible = False ' NEU Command11.Visible = False Command12.Visible = False Testliste(1).Visible = False Testliste(2).Visible = False Testliste(3).Visible = False Testliste(4).Visible = False VScroll1.Visible = False ' neu am 06.09.2013 VScroll2.Visible = False ' neu am 06.09.2013 VScroll3.Visible = False ' neu am 06.09.2013 VScroll4.Visible = False ' neu am 06.09.2013 Z_Reset.Visible = False L_Enter.Visible = False L_Reset.Visible = False H_Enter.Visible = False H_Reset.Visible = False K_Enter.Visible = False K_Reset.Visible = False Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Testlist.Height = 9820 Testlist.FontSize = 10 Testlist.FontBold = True Do While Not EOF(8) Line Input #8, zeile Testlist.AddItem zeile Loop Close #8 an = True weiter1: End Sub Private Sub Testlist_Click() VScroll1.Visible = True ' neu am 06.09.2013 VScroll2.Visible = True ' neu am 06.09.2013 VScroll3.Visible = True ' neu am 06.09.2013 VScroll4.Visible = True ' neu am 06.09.2013 Z_Reset.Visible = True L_Enter.Visible = True L_Reset.Visible = True H_Enter.Visible = True H_Reset.Visible = True K_Enter.Visible = True K_Reset.Visible = True StartStoppFix.Visible = True StartStoppLos.Visible = True Command4.Visible = True Command5.Visible = True kopieren.Visible = True Abstandstext.Visible = True PRFix.Visible = True 'Command13.Visible = True 'Command14.Visible = True Variation.Visible = True Variation2.Visible = True Command3.Visible = True ' NEU 'Command18.Visible = True ' NEU Command19.Visible = True ' NEU Cool.Visible = True ' NEU Z_Enter1.Visible = True Z_Enter2.Visible = True Text2.Visible = True Text1.Visible = True Text18.Visible = True Tempo.Visible = True ' neu am 10.10.2013 Pluginfo.Visible = True Plugknopf.Visible = True Csoundknopf.Visible = True Orcknopf.Visible = True Csoundstore.Visible = True Scoknopf.Visible = True Command15.Visible = True Command16.Visible = True Command17.Visible = True Testlist.Height = 1365 Testlist.FontSize = 12 Testlist.FontBold = True Testlist.Clear Testlist.BackColor = &HFFFFFF ' weiß Infotaste = 1 Call Command3_Click End Sub Private Sub Command15_Click() Dim OrcName, Orcnamex, ScoName, ScoNamex, Antwort, vbIconExclamation, vbIconYesNo As String Dim n, nx As Integer Call KillApp("NoteTab Light - C:\Arbeit\Resonanz.orc") Call KillApp("NoteTab Light - C:\Arbeit\Resonanz.sco") Command3.BackColor = &HFFFFFF ' weiß HF3F3F3 ' hellgrau - neu am 27.04.2015 Command3.Enabled = False StartStoppFix.BackColor = &HB3B3FF ' ziegelrot Orcknopf.BackColor = &HBFFA8F ' grün Scoknopf.BackColor = &HBFFA8F ' grün Shell "C:\Arbeit\directory3h.bat", 1 CommonDialog2.Flags = 0 CommonDialog2.Action = 1 ' 1 = Datei öffnen OrcName = CommonDialog2.FileName If OrcName = "" Then Exit Sub If Len(OrcName) > 5 Then ' n = Len(OrcName) - 4 If Right(OrcName, 4) = ".orc" Or Right(OrcName, 4) = ".sco" Or Right(OrcName, 4) = ".wav" Then Orcnamex = Left(OrcName, Len(OrcName) - 4) + ".orc" ScoNamex = Left(OrcName, Len(OrcName) - 4) + ".sco" Else Orcnamex = OrcName + ".orc" ScoNamex = OrcName + ".sco" End If ' ScoName = Left(OrcName, n) & ".sco" ' MsgBox Orcnamex ' MsgBox ScoNamex FileCopy Orcnamex, "c:\Arbeit\Resonanz.orc" FileCopy ScoNamex, "c:\Arbeit\Resonanz.sco" End If End Sub Private Sub Command16_Click() Open "c:\Arbeit\Default-Einzelton.plg" For Output As #3 ' Print #3, "" Print #3, "" Print #3, "" Print #3, "" Print #3, ";A-Orcdatei1" Print #3, " ; Percussion-Modul:" Print #3, " ihart = 0.0001 ; Härte <--- Wert kann geändert werden!" Print #3, " idauer = 0.08 ; Dauer <--- Wert kann geändert werden!" Print #3, " ipklt = 0.30 ; Lautstärke <--- z.B. 0.3" Print #3, " ipkfq = 1.00 ; Frequenzfaktor <--- Wert kann geändert werden!" Print #3, " ;" Print #3, " klt linseg 0, ihart, p5, idauer, 0" Print #3, " klaut = klt * ipklt" Print #3, " kfrequenz = p4 * ipkfq" Print #3, " aw1 oscili klaut, kfrequenz, 4 ; die Funktionsnummer zeigt auf eine Funktion in der Partitur!" Print #3, " outs aw1, aw1 ; der Wert kann geändert werden, soweit sich weitere" Print #3, " ; Funktionen in Resonanz.sco befinden." Print #3, " ; Viele Beispiele für solche Funktionen stehen in" Print #3, " ; C:\Arbeit-jms\Eigene Dateien 2\Texte\Bedienungsanleitungen\Csound-Infos.txt und" Print #3, " ; C:\Arbeit-jms\Eigene Dateien 2\Texte\Bedienungsanleitungen\Gespeicherte-Funktionen.txt" Print #3, " ; Stand: 10.10.2007." Print #3, ";E-Orcdatei1" Print #3, "" Print #3, "" Print #3, "" Print #3, "" Print #3, ";A-Scodatei1" Print #3, " ;Es ist ein PERCUSSION-MODUL eingebaut!" Print #3, "" Print #3, " ;Eine der folgenden Funktionen kann von diesem Percussion-Modul in instr1 benutzt werden:" Print #3, " ;Funktion: meine Stimme" Print #3, " f 4 0 1024 10" Print #3, " 0.023271 0.071349 0.046627 0.000849 0.019486 0.017120 0.002389 0.003311 0.003439 0.011125" Print #3, " 0.008188 0.001681 0.001761 0.001710 0.001896 0.004760 0.002530 0.003983 0.004257 0.001098" Print #3, " 0.000337 0.002187 0.002301 0.006704 0.006966 0.002516 0.007792 0.002892 0.000926 0.000502" Print #3, " 0.000363 0.000386 0.000722 0.000157 0.000350 0.000384 0.000284 0.000366 0.000333 0.000265" Print #3, "" Print #3, " ;Funktion: E-Gitarrenton mit 233 Hz" Print #3, " f 5 0 1024 10" Print #3, " 0.032664 0.014286 0.009340 0.001813 0.001247 0.000516 0.000462 0.001183 0.000302 0.000101" Print #3, " 0.000284 0.000589 0.000381 0.000825 0.001110 0.001186 0.001160 0.000113 0.000141 0.000384" Print #3, " 0.000332 0.000008 0.000053 0.000024 0.000038 0.000018 0.000039 0.000014 0.000033 0.000024" Print #3, " 0.000025 0.000019 0.000024 0.000022 0.000026 0.000015 0.000024 0.000021 0.000027 0.000012" Print #3, "" Print #3, " ;Funktion: verzerrte E-Gitarre mit 82 Hz" Print #3, " f 6 0 1024 10" Print #3, " 0.020777 0.050116 0.103668 0.062283 0.018407 0.010295 0.022888 0.014498 0.011156 0.013014" Print #3, " 0.004661 0.002779 0.007305 0.004760 0.003255 0.005332 0.002018 0.002265 0.000879 0.007874" Print #3, " 0.012900 0.007430 0.008757 0.011392 0.000978 0.009415 0.005329 0.020022 0.010276 0.006660" Print #3, " 0.001263 0.004781 0.002991 0.006661 0.008827 0.006743 0.006206 0.005108 0.006462 0.006185" Print #3, "" Print #3, " ;Funktion: Violine eines Kindes auf 392 Hz" Print #3, " f 7 0 1024 10" Print #3, " 0.011220 0.006249 0.000715 0.006777 0.001450 0.002476 0.000509 0.002299 0.001383 0.000246" Print #3, " 0.000329 0.000695 0.000155 0.000222 0.000294 0.000341 0.000172 0.000185 0.000233 0.000343" Print #3, " 0.000198 0.000156 0.000079 0.000040 0.000251 0.000079 0.000113 0.000203 0.000145 0.000073" Print #3, " 0.000086 0.000157 0.000019 0.000029 0.000127 0.000168 0.000121 0.000121 0.000201 0.000122" Print #3, "" Print #3, " ;Weitere Funktionen (f7, f8, usw.) können manuell eingetragen werden." Print #3, "" Print #3, "" Print #3, "" Print #3, ";E-Scodatei1" Print #3, "" Print #3, "" Print #3, "" Print #3, "" Print #3, ";A-Info" Print #3, "" Print #3, " ACHTUNG!!" Print #3, "" Print #3, " Die Datei 'Default-Einzelton.plg' muß umbenannt werden!" Print #3, " Zu Testzwecken kann man sie zwar hier einbauen, doch damit die" Print #3, " Änderungen nicht verloren gehen, sollte sie dann sofort in eine" Print #3, " Datei '*.plg' umbenannt werden." Print #3, "" Print #3, " Bei jedem Mausklick auf den Knopf e wird die Datei" Print #3, " 'Default-Einzelton.plg' neu geschrieben. Damit werden alle" Print #3, " Änderungen überschrieben!" Print #3, "" Print #3, ";E-Info" Print #3, "" Print #3, "" Print #3, "" Print #3, "" ' Close #3 Shell "C:\Arbeit\Editor\NoteTab.exe " & "C:\Arbeit\Default-Einzelton.plg" ' mit NoteTab öffnen End Sub Private Sub Command17_Click() Open "c:\Arbeit\Default-Dauerton.plg" For Output As #3 ' Print #3, "" Print #3, "" Print #3, "" Print #3, "" Print #3, ";A-Orcdatei2" Print #3, ";---------------------------------------------------------" Print #3, ";ZWEIFACH-SAMPLER" Print #3, ";---------------------------------------------------------" Print #3, ";Frequenz: gkfrq1" Print #3, ";für einen Sampler mit loscil: afrq = (gkfrq1 / 440) * gifreqfakts * 4" Print #3, ";Klang: gkfoq1" Print #3, ";Lautstärke: gksamp1 * 14 (oder p5?)" Print #3, ";" Print #3, ";Das zu spielende Sample muß Samp100.wav heißen." Print #3, ";Es muß von ausreichender Länge sein." Print #3, ";---------------------------------------------------------" Print #3, " Instr 98" Print #3, " ;Tonhöheneinstellung:" Print #3, " afrq = (gkfrq1 / 440) * gifreqfakts * 4" Print #3, " afrqx = (gkfrq1 / 440) * gifreqfakts * 4 * 1.5 ; oder ein anderes Intervall" Print #3, " gkfoq = gkfoq1 * gifreqfakts * 4" Print #3, "" Print #3, " aw1v,aw2v loscil gksamp1*14, afrq, 98 ; Sampleplayer 1" Print #3, " aw1v = aw1v * 0.005 * 2 ; skalieren" Print #3, " aw2v = aw2v * 0.005 * 2 ; skalieren" Print #3, " aw1 reson aw1v, gkfoq, 90 ; Bandpaßfilter, letzter Wert: Breite" Print #3, " aw2 reson aw2v, gkfoq, 90 ; Bandpaßfilter" Print #3, " outs aw1, aw2" Print #3, "" Print #3, " aw1vx,aw2vx loscil gksamp1*14, afrqx, 98 ; Sampleplayer 2" Print #3, " aw1vx = aw1vx * 0.005 * 2 ; skalieren" Print #3, " aw2vx = aw2vx * 0.005 * 2 ; skalieren" Print #3, " aw1x reson aw1vx, gkfoq, 90 ; Bandpaßfilter, letzter Wert: Breite" Print #3, " aw2x reson aw2vx, gkfoq, 90 ; Bandpaßfilter" Print #3, " outs aw2x, aw1x ; Kanäle umgekehrt" Print #3, "" Print #3, " endin" Print #3, " ;---------------------------------------------------------" Print #3, ";E-Orcdatei2" Print #3, "" Print #3, "" Print #3, "" Print #3, "" Print #3, ";A-Scodatei2" Print #3, " f98 0.00 0 1 ""Samp100.wav"" 0 0 0" Print #3, ";E-Scodatei2" Print #3, "" Print #3, "" Print #3, "" Print #3, ";A-Info" Print #3, "" Print #3, " ACHTUNG!!" Print #3, "" Print #3, " Die Datei 'Default-Dauerton.plg' muß umbenannt werden!" Print #3, " Zu Testzwecken kann man sie zwar hier einbauen, doch damit die" Print #3, " Änderungen nicht verloren gehen, sollte sie dann sofort in eine" Print #3, " Datei '*.plg' umbenannt werden." Print #3, "" Print #3, " Bei jedem Mausklick auf den Knopf d wird die Datei" Print #3, " 'Default-Dauerton.plg' neu geschrieben. Damit werden alle" Print #3, " Änderungen überschrieben!" Print #3, "" Print #3, ";E-Info" Print #3, "" Print #3, "" Print #3, "" ' Close #3 Shell "C:\Arbeit\Editor\NoteTab.exe " & "C:\Arbeit\Default-Dauerton.plg" ' mit NoteTab öffnen End Sub