Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
RustyPipes Open Source VPO Software
#1
Hallo, ich hoffe es ist ok wenn ich hier ein neues VPO-Projekt vorstelle!

RustyPipes ist eine virtuelle Pfeiffenorgel welche GrandOrgue und Hauptwerk Samplesets laden kann. Es wird sowohl Sample Precaching als auch Sample Streaming von SSDs unterstützt. Das erlaubt z.b. das Spielen von großen Samplesets mit vielen Registern mit wenigen Gigabytes RAM. Um nicht unnötig Latenz beim Spielen zu erhöhen werden bei allen Samples die ersten Millisekunden ins RAM geladen und dann der Rest von der Disk gestreamed. Wer das nicht will kann natürlich alle Samples komplett ins RAM laden.
Ein paar Features:
- Sample Streaming und Sample Precaching
- Convolution Reverb
- MIDI Input Support
- MIDI Datei Playback
- MIDI Kanalmappings mit Presets
- GUI und Textmodus UI (TUI)
- 32-bit interner Audiomischer
- Automatisches Resampling
- 24-bit und 16-bit sample support
- "Original tuning" Modus für authentisches Klangbild
Was fehlt bzw. ist (noch) nicht implementiert:
Geteilte Manuale, Koppeln - Stattdessen kann man aber MIDI-Kanalzuordnungen als Presets speichernd und aktivieren.
Digitales Tremolo
Traktor bzw. Windwerk Geräusche
RustyPipes ist ein komplett neues, in Rust implementiertes Projekt. Es ist gratis und Open Source unter der GPLv2. Der Hauptwerk-Support ist noch ein bisschen eine Baustelle. Binaries gibt es für Linux, OSX und Windows.
Download:
https://github.com/dividebysandwich/rusty-pipes/releases
Ein paar Soundbeispiele:
https://playspoon.com/files/RustyPipes-B...nor-BWV548.flac
https://playspoon.com/files/RustyPipes-V...o2-Allegro.flac
https://playspoon.com/files/RustyPipes-V...-Cantabile.flac
#2
#3
Mit ziemlicher Sicherheit nicht - ich bin auch erst noch dabei mich durch einige Demo-Sets durchzuarbeiten und zu schauen wo es raucht. Hauptwerk ist aber auch generell ein schwieriger Kandidat, das XML Schema ist über viele Jahre gewachsen und das merkt man... Jede Menge Magic Numbers und teils verschiedene Wege das gleiche Ziel zu erreichen. Ich kann verstehen warum GrandOrgue hier einen eigenen Weg gegangen ist.
#4
Sieht interessant aus! Kann man auch mehr als ein Midi Gerät nutzen, Keyboard1, Keyboard2 und Pedal zum Beispiel?
Sehe ich es richtig das noch keine Manipulation des Klangs stattfindet wie z.B durch ein Windmodell? Die Demos, stammen die von Piotr Grabowski's Friesach? Hätte ich tatsächlich nicht erkannt im Vergleich zu GrandOrgue, aber es klingt nicht unbedingt schlecht.
#5
Aktuell wird nur ein MIDI Input unterstützt, die Manuale sollte man auf MIDI Kanäle verteilen, also Manual 1 auf Channel 1, Manual 2 auf Channel 2, Pedal auf Channel 3, etc.
Ich bin mir auch nicht ganz sicher wie man mehrere MIDI devices hier sinnvoll einbinden kann, schliesslich basiert alles auf MIDI Channels.
Nein es gibt noch kein Windmodell, dazu bin ich noch nicht gekommen. Auch Tremulant fehlt noch.
Richtig, die Demos sind Friesach. Kann auch an meiner laienhaften Registrierung liegen ;)
BTW es gibt jetzt Version 1.0.2 mit verbessertem Hauptwerk support. Falls jemand ein Sampleset >v4.2 hat welches frei verfügbar ist, ich bin für Hinweise dankbar.
#6
Zitat von Dividebysandwich im Beitrag #5
Ich bin mir auch nicht ganz sicher wie man mehrere MIDI devices hier sinnvoll einbinden kann, schliesslich basiert alles auf MIDI Channels.
Organteq könnte da vielleicht eine Vorlage sein. Bei den Einstellungen kannst du auswählen welche Midi Geräte Inputs sind und zusätzlich kannst du sagen dein Keyboard 1 welches Midi Kanal 1 nutzt wird zu Kanal 2 umgeroutet.
Übrigens läuft das Programm nicht auf Distributionen wie Debian 12, wegen libc6. Denke dort doch einmal über ein AppImage wie bei GrabndOrgue nach, oder noch besser ein Flatpak. Mit einem Flatpak erreichst du auch noch viel mehr. Ich werde das ganze im Blick behalten und wenn ich irgendwann das Update meines System mache mal live antesten. Der Code sieht übrigens so wie ich das beurteilen kann gut und sauber aus.
#7
Es gibt wieder Neues: RustyPipes v1.0.3 hat jetzt auch Tremulant und versteht prinzipiell Windchests, zumindest bei GrandOrgue sets. Beim Tremulant bin ich auf Feedback angewiesen ob das so passt oder ob Pitch oder Amplitudenmodulation zu heftig sind.
Download: https://github.com/dividebysandwich/rust...ases/tag/v1.0.3
Zitat von Untersatz32 im Beitrag #6
Organteq könnte da vielleicht eine Vorlage sein. Bei den Einstellungen kannst du auswählen welche Midi Geräte Inputs sind und zusätzlich kannst du sagen dein Keyboard 1 welches Midi Kanal 1 nutzt wird zu Kanal 2 umgeroutet.
Keine schlechte Idee! Sollte kein großes Problem sein, ich muss mir nur überlegen wie ich das im UI mache, ohne jetzt direkt ein anderes Programm zu kopieren. Ich kann z.b. pro MIDI Device eine Zeile machen in der man einstellen kann welcher MIDI Kanal auf welchen internen Kanal geroutet wird... oder ich mache 16 Zeilen für die 16 internen Kanäle und pro Zeile kann man Device und MIDI Kanal einstellen.
Zitat von Untersatz32 im Beitrag #6
Übrigens läuft das Programm nicht auf Distributionen wie Debian 12, wegen libc6. Denke dort doch einmal über ein AppImage wie bei GrabndOrgue nach, oder noch besser ein Flatpak. Mit einem Flatpak erreichst du auch noch viel mehr. Ich werde das ganze im Blick behalten und wenn ich irgendwann das Update meines System mache mal live antesten. Der Code sieht übrigens so wie ich das beurteilen kann gut und sauber aus.
Uff, Flatpak... Das hat mich jetzt mehr Zeit gekostet als das implementieren vom Tremulant ;)
Okay es gibt jetzt auch ein Flatpak zum downloaden. Ich werde das später dann auf Flathub stellen sobald das ein paar User überlebt hat.
Ich kann aber wirklich empfehlen einfach RustyPipes selber zu compilieren. Rust installieren ist ein Einzeiler (Siehe https://rustup.rs/) und dann einfach "cargo build --release" oder gleich "cargo run --release". Und das sage ich jetzt nicht nur weil ich mich auf pull requests freue - aber eben auch deswegen ;)
#8
Zitat von Dividebysandwich im Beitrag #5
Falls jemand ein Sampleset >v4.2 hat welches frei verfügbar ist, ich bin für Hinweise dankbar.
Ein ziemliches Dickschiff: Die Demo (Vol. 0) der Ladegast-Orgel aus Schwerin ist kostenlos verfügbar und setzt Hauptwerk VII voraus.
#9
Zitat von Dividebysandwich im Beitrag #7
Keine schlechte Idee! Sollte kein großes Problem sein, ich muss mir nur überlegen wie ich das im UI mache, ohne jetzt direkt ein anderes Programm zu kopieren.
Bei Organteq sieht es so aus:
Bild entfernt (keine Rechte)
Finde ich persönlich praktisch. Einen andere Idee wäre die Midi Eingänge in einer Liste auszuwählen und in der Ansicht der Werke für jedes Werk dann den Kanal zu wählen auf welchem es reagieren soll. Beispiel hier aus Aeolus (https://archie3d.github.io/aeolus_plugin/)
Bild entfernt (keine Rechte)
#10
Danke für den Tip bez. Hauptwerk v7!
...aber... was geht denn dort ab?
2
3
4
5
6
<o><a>11057</a><c>2730</c><g>200</g><i>140</i><b>NonPhoto 1 terzflote 3 1/5</b></o>
<o><a>12094</a><c>2730</c><g>250</g><i>212</i><b>DrStop2 2 octave 2</b></o>
<o><a>15013</a><c>2730</c><g>180</g><i>212</i><b>AltDrstop p cello 8 (stark)</b></o>
<o><a>12004</a><c>2730</c><g>250</g><i>212</i><b>DrStop2 3 piffero 4</b></o>
<o><a>12041</a><c>2730</c><g>250</g><i>212</i><b>DrStop2 p copp. I</b></o>
<o><a>16068</a><c>2730</c><g>200</g><i>139</i><b>NonPhoto2 1 flmajor 8</b></o>
Fast alle XML Elemente haben nur noch 1 Buchstaben. Wenn das ein Versuch ist das XML etwas kleiner zu machen... warum dann nicht einfach JSON oder gleich Protobuf, Bincode oder dergleichen verwenden? Sehr seltsam.
So, jedenfalls gibt es jetzt RustyPipes v1.0.4 [Download] mit folgenden Features:
* Hauptwerk v7 Kompatibilität (WIP)
* Mehrere MIDI Devices werden unterstützt
* Demo-Samplesets mit leeren WAV Dateien führen nicht mehr zum Abbruch
Man kann jetzt einfach mehrere Devices anwählen:
Pro Input-Device kann man jetzt entweder alles auf einen virtuellen MIDI-Kanal in RustyPipes mappen...
...oder bei Bedarf auch ganz genau definieren wohin welcher MIDI Kanal des jeweiligen Geräts geroutet werden soll:
Der Hauptwerk Support ist immer noch in den Kinderschuhen, ich muss mir noch was überlegen um zwischen den Perspektiven umzuschalten. Vorerst nimmt er sich eine einzige Perspektive, mit Vorliebe was mit "direkt" oder dergleichen im Namen. Aber die Schwerin-Demo funktioniert soweit schon mal und braucht mit den default-settings nur 13GB RAM. Wem das zu viel ist der kann die "Preload Frames" kleiner drehen.
#11
Ich habe jetzt einmal das Flatpak getestet mit der Niederzwehren (Kassel) https://binauralpipes.com/niederzwehren erschwerend kam für das Programm hinzu, dass ich ein Testsystem von alter 2.5" usb hdd genutzt habe. Aber es ging erstaunlich gut.
Soweit war alles intuitiv und der Klang geht in Ordnung. Bei spielen selbst hatte ich ein Knacken, dieses ist auf der Aufnahme die ich mit Tenacity/Audacity gmeacht habe aber nicht zu hören... Die Orgel klingt eigentlich wie gewohnt, einige Töne weichen aber doch etwas vom gewohnten Klang ab, aber nicht im negativen Sinne. Auch ohne IR scheint noch ein zusätzlicher Hall dabei zu sein, kann das sein?
Was mir so durch den Kopf ging bei meinem verwendeten Set:
- Geräusche für Tasten/Traktur einzelne Register?
- Bei den Namen fehlt die Angabe 16", 8" etc.
- Verdammt, es funktioniert ja wirklich 
- Wäre schön wenn man die Einträge der Register bearbeiten könnte und in einer zum Programm passenden json speichern kann.
Später wäre es aber wirklich wichtig ähnlich zu anderen Programmen die Register mit Midi ein/aus schalten zu können (Lernfunktion) sowie eine Aufnahmefunktion. Aber Stand jetzt eine beeindruckende Leistung von dir. Ich hoffe es geht weiter.
EDIT Ich würde auf Grafiken verzichten. Für jedes Werk die Register in einer Liste und fertig, in der Praxis nutzen die meisten wohl bei Touchscreens ohnehin die Simplen Buttonansichten. Sweelinq bietet schon keine andere Methode an.
Ich habe einmal das Ergebnis als Audio angehängt.
#12
Super, das hört man gern!
Hmm wegen Knacken... wenn das im Recording nicht drin ist dann vermute ich mal dass das nicht an RP liegt.
Hall: Nein wenn IR auf 0 ist dann gibt es absolut keinen Hall. Da wird nur in 32-bit zusammengemischt.
Percussion: Ja ist auf meiner Wunschliste :)
Namen: Die kommen eigentlich aus dem File, wundert mich dass die Fuss-zahl nicht drin ist.
"Verdammt es funktioniert": Hab ich mir das erste mal auch gedacht :)
Was genau meinst du mit "Einträge der Register", meinst du die Namen?
MIDI- bzw. Audio-Recording: Grossartige Idee, kommt auf meine Liste.
MIDI control messages: Kommt auf meine Liste.
#13
Zitat von Dividebysandwich im Beitrag #12
Was genau meinst du mit "Einträge der Register", meinst du die Namen?
Wenn aus dem Odf der Eintrag "Prinzipal" übernommen wurde, dann wäre es schön, wenn ich mit einer Tastenkombination diesen Eintrag ändern könnte zum Beispiel in "Prinzipal 8". Idee wie bei Aeolus Shift+Linksklick.
Zitat von Dividebysandwich im Beitrag #12
MIDI- bzw. Audio-Recording: Grossartige Idee, kommt auf meine Liste.
Mein Vorschlag wäre hier es wie Sweelinq zu machen. In den Einstellungen legt man einfach fest ob die Aufnahme als Midi, Audio oder beides erfolgen soll und ein Aufnahmeknopf startet dann alles. Du musst dabei aber eine Entscheidung treffen oder dem Nutzer die Wahl lassen... GrandOrgue startet die Aufnahme mit der Orgelkonfiguration wie sie gerade ist, während Sweelinq die Orgel zurücksetzt (alle Register aus, Sweller offen) beim Start einer Aufnahme. Hat beides Vorteile und Nachteile, in beiden Fällen würde ich mir eine Wahlmöglichkeit wünschen.
Zitat von Dividebysandwich im Beitrag #12
MIDI control messages: Kommt auf meine Liste.
Für mich eigentlich die wichtigste Funktion, ich habe kein Display an meiner Orgel und wenn ich eines brauche dann geht dies nur mit dem Tablet über remote.
#14
Zitat von Untersatz32 im Beitrag #13Zitat von Dividebysandwich im Beitrag #12
MIDI control messages: Kommt auf meine Liste.
Für mich eigentlich die wichtigste Funktion, ich habe kein Display an meiner Orgel und wenn ich eines brauche dann geht dies nur mit dem Tablet über remote.
Frage, wie soll ich das am besten mit den MIDI mapping presets kombinieren? Ich denke mal MIDI Learning und dann kann man sich aussuchen welcher virtuelle MIDI channel für den Stop ein und ausgeschaltet wird. Oder hast du einen anderen Vorschlag?
#15
Zitat von Dividebysandwich im Beitrag #14
Frage, wie soll ich das am besten mit den MIDI mapping presets kombinieren? Ich denke mal MIDI Learning und dann kann man sich aussuchen welcher virtuelle MIDI channel für den Stop ein und ausgeschaltet wird. Oder hast du einen anderen Vorschlag?
Wenn ich so etwas programmieren müsste, dann würde ich zum Beispiel bei einem Rechtsklick auf ein Element einen Dialog öffnen in dem ich das Gerät und die Aktion auswählen kann. Also Beispiel Gerät1 Note 100 NoteON = Einschalten, Gerät1 Note 100 NoteOFF = Ausschalten. Bei einer Lernfunktion sollte dann nach dem Klick auf einen Lernen Button selbst erkannt werden was gerade beim Midi Gerät passiert.
Beim lernen für einen Button wäre es klug zuerst das Event zum Auslösen abzufragen und dann noch das Event zum Abschalten.
Je nach Spieltisch kann es durchaus bei einem Selbstbau auch vorkommen, dass jemand mit einem NoteON einschalte will, mit dem nächsten NoteON dann ausschalten möchte. Sweelinq hat für so einen Fall ich glaube 5 Events auf die ein Button reagieren kann.
- Hauptwerk
- Hauptwerk-Konfiguration, Diskussion
- Hauptwerk-Samplesets
- GrandOrgue
- GrandOrgue-Konfiguration, Diskussion
- GrandOrgue-Samplesets
- Sweelinq
- Sweelinq-Konfiguration, Diskussion
- Sweelinq-Samplesets
- Sonstige Orgelsoftware
- Organteq
- Sonstige Sampler
- Hardware
- Spieltische und Selbstbau
- Zubehör (PCs, Monitore, Interfaces etc.)
- Klangabstrahlung
- Musikalisches
- Noten, Einspielungen, Konzerte
- Sonstige Musikthemen
Jetzt anmelden!
Jetzt registrieren!