Und falls nein, welche Möglichkeiten gibt es, aus einer Funktion, die man in gnuplot geplottet hat, in eine Audiodatei, z.b. WAV zu verwandeln?
1 | gnuplot> set term |
2 | |
3 | Available terminal types: |
4 | cairolatex LaTeX picture environment using graphicx package and Cairo backend |
5 | canvas HTML Canvas object |
6 | cgm Computer Graphics Metafile |
7 | context ConTeXt with MetaFun (for PDF documents) |
8 | domterm DomTerm terminal emulator with embedded SVG |
9 | dpu414 Seiko DPU-414 thermal printer [small medium large] |
10 | dumb ascii art for anything that prints text |
11 | dxf dxf-file for AutoCad (default size 120x80) |
12 | eepic EEPIC -- extended LaTeX picture environment |
13 | emf Enhanced Metafile format |
14 | emtex LaTeX picture environment with emTeX specials |
15 | epscairo eps terminal based on cairo |
16 | epslatex LaTeX picture environment using graphicx package |
17 | epson_180dpi Epson LQ-style 180-dot per inch (24 pin) printers |
18 | epson_60dpi Epson-style 60-dot per inch printers |
19 | epson_lx800 Epson LX-800, Star NL-10, NX-1000, PROPRINTER ... |
20 | fig FIG graphics language V3.2 for XFIG graphics editor |
21 | gif GIF images using libgd and TrueType fonts |
22 | hp500c HP DeskJet 500c, [75 100 150 300] [rle tiff] |
23 | hpdj HP DeskJet 500, [75 100 150 300] |
24 | hpgl HP7475 and relatives [number of pens] [eject] |
25 | hpljii HP Laserjet series II, [75 100 150 300] |
26 | hppj HP PaintJet and HP3630 [FNT5X9 FNT9X17 FNT13X25] |
27 | jpeg JPEG images using libgd and TrueType fonts |
28 | latex LaTeX picture environment |
29 | lua Lua generic terminal driver |
30 | mf Metafont plotting standard |
31 | mp MetaPost plotting standard |
32 | nec_cp6 NEC printer CP6, Epson LQ-800 [monochrome color draft] |
33 | okidata OKIDATA 320/321 Standard |
34 | pbm Portable bitmap [small medium large] [monochrome gray color] |
35 | pcl5 HP Designjet 750C, HP Laserjet III/IV, etc. (many options) |
36 | pdfcairo pdf terminal based on cairo |
37 | png PNG images using libgd and TrueType fonts |
38 | pngcairo png terminal based on cairo |
39 | postscript PostScript graphics, including EPSF embedded files (*.eps) |
40 | pslatex LaTeX picture environment with PostScript \specials |
41 | pstex plain TeX with PostScript \specials |
42 | pstricks LaTeX picture environment with PSTricks macros |
43 | qms QMS/QUIC Laser printer (also Talaris 1200 and others) |
44 | qt Qt cross-platform interactive terminal |
45 | sixel Sixel Graphics |
46 | sixelgd sixel using libgd and TrueType fonts |
47 | starc Star Color Printer |
48 | svg W3C Scalable Vector Graphics |
49 | tandy_60dpi Tandy DMP-130 series 60-dot per inch graphics |
50 | tek40xx Tektronix 4010 and others; most TEK emulators |
51 | tek410x Tektronix 4106, 4107, 4109 and 420X terminals |
52 | texdraw LaTeX texdraw environment |
53 | tgif TGIF X11 [mode] [x,y] [dashed] ["font" [fontsize]] |
54 | tikz TeX TikZ graphics macros via the lua script driver |
55 | tkcanvas Tk canvas widget |
56 | tpic TPIC -- LaTeX picture environment with tpic \specials |
57 | unknown Unknown terminal type - not a plotting device |
58 | vttek VT-like tek40xx terminal emulator |
59 | wxt wxWidgets cross-platform interactive terminal |
60 | x11 X11 Window System interactive terminal |
61 | xlib X11 Window System (dump of gnuplot_x11 command stream) |
62 | xterm Xterm Tektronix 4014 Mode |
Sieht nicht danach aus. ;-) Ich vermute mal, dass du mit Octave da eher was findest, wie man zumindest CSV-Daten oder sowas exportieren kann.
gnuPLOT ist zum plotten da wie der Name vermuten lässt. Was du suchst nennt sich Mathematica und gibt es kostenlos für den Raspberry Pi.
Audiodateien sind periodisierte Wellenformen. Mit einem Wellenformengenerator wäre man da schon eher auf der sicheren Seite: https://www.mikrocontroller.net/articles/Digitaler_Funktionsgenerator. Man müsste das Ding etwas umbauen, um dann mit mehreren Sinuswellen Additive Sythese zu betreiben, welche sich an komplexeren Funktionen orientiert. Es gibt auch Sythesizerprogramme, in welchen man eine Funktion einzeichnen kann, die dann in eine Audiodatei umgewandelt wird. Ich weiß nicht, wie weit man mit solchen Fragen bei Cubase kommt, aber das ist in etwa so die Richtung, in die es geht. https://p5r.uk/blog/2009/audio-with-gnu-octave.html
rbx schrieb: > Man müsste das Ding etwas umbauen, um dann mit mehreren Sinuswellen > Additive Sythese zu betreiben, welche sich an komplexeren Funktionen > orientiert. Das ist genau das, was ich gerne machen würde. Mathematisch angegebene Sinusfunktionen mit verschiedenen Frequenzen und Amplituden addieren und dann nur die Funktion, die als Summe rauskommt, als WAV oder sonstige Audio Datei speichern. Anschließend möchte ich es mir nur anhören und gegebenenfalls weiterverwenden. > Es gibt auch Sythesizerprogramme, in welchen man eine Funktion > einzeichnen kann, die dann in eine Audiodatei umgewandelt wird. Das wäre eine Möglichkeit, aber die beraubt mir dann die Möglichkeiten von gnuplot. > > Ich weiß nicht, wie weit man mit solchen Fragen bei Cubase kommt, aber > das ist in etwa so die Richtung, in die es geht. > > https://p5r.uk/blog/2009/audio-with-gnu-octave.html Das werde ich mal testen. Bin mir nur nicht gerade so sicher, ob das da: wave = sin(time*2*pi*freq)'; das ist, was ich möchte. (allerdings bin ich gerade zu müde, werde mir das also Morgen nochmal angucken) Eigentlich wollte ich jedenfalls eher so etwas machen: f(x) = sin(x) + sin(2*x) + sin(x/4) usw. und f(x) soll dann als WAV ausgegeben werden.
Nano schrieb: > Das ist genau das, was ich gerne machen würde. Mathematisch angegebene > Sinusfunktionen mit verschiedenen Frequenzen und Amplituden addieren und > dann nur die Funktion, die als Summe rauskommt, als WAV oder sonstige > Audio Datei speichern. Numerische Mathematik Software wie Octave, Matlab, Python etc. kann so was. Oder sonst vielleicht mal bei den Musikern vorbeisehen, z. B. PureData, Faust, Supercollider, SonicPi, ...
In's unreine gesprochen: Gnuplot kann Daten vor dem Plot durch externe Programme "filtern" lassen (siehe z.B. http://www.gnuplot.info/faq/#x1-300003.7). Nun nur noch ein kurzes Filter schreiben, welches die Standart-Eingabe in die Standard-Ausgabe durchreicht und gleichzeitig aus den Daten die Wave-Datei erzeugt. Hierfür zunächst im Filter einen Header schreiben (Pascal Code der Header Definition als Beispiel hier):
1 | WaveHeader: record |
2 | ChunkID : array[1..4] of CHAR; |
3 | ChunkSize : longint; // 4 byte |
4 | Format : array[1..4] of CHAR; |
5 | Subchunk1ID : array[1..4] of CHAR; |
6 | Subchunk1Size : longint; |
7 | AudioFormat : smallint; // 2 byte |
8 | NumChannels : smallint; |
9 | SampleRate : longint; |
10 | ByteRate : longint; |
11 | BlockAlign : smallint; |
12 | BitsPerSample : smallint; |
13 | Subchunk2ID : array[1..4] of CHAR; |
14 | Subchunk2Size : longint; |
15 | end; |
und danach die Gnuplot Daten im int16_t Format anhängen - fertig. Die Daten für den Wave Header sind z.B. hier beschrieben: https://docs.fileformat.com/audio/wav/
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.