Hallo zusammen,
das nun Folgende wurde jetzt trotz starker Kürzung des Ausgangsthemas auch schon wieder lang und ich möchte natürlich nicht alle Kräfte hier wegen eines kleinen Scriptes binden...also wer nicht kann/ will, einfach überfliegen oder "Script hacken" oder was auch immer man als Wikiteam macht, um ein neues Programm für tauglich zu befinden. 😉 (Und sicherlich ist es "hackbar" - gibt es irgendwo Richtlinien im Netz für die Fehleranfälligkeit und Sicherheit von Programmen, vielleicht einen guten Link, der bewährt, aber schwer zu finden ist?)
Keba schrieb:
Es ist ein Feature, es kostet Zeit es zu implementieren. Es wieder raus zu hauen geht schnell. 😉
Das stimmt wohl auch, aber rein aus Benutzersicht würde mich das nerven, wenn ich mich manuell um Abhängigkeiten kümmern müsste - ich finde das Feature schon sinnvoll, würde es also gerne so lassen und erst beim nächsten Script (oder der nächsten Version) darauf achten, dass einem nicht gleich sudo apt-get vor den Latz geknallt wird.
Für die Abfrage ob der String auf .mp3
endet, ist das aber relativ egal. 😉 Die Variable wird dadurch nicht angepasst.
Das fiel mir beim morgentlichen Aufstehen im Geiste wie Schuppen von den Augen. So kann ein langer Tag enden... 😊
Solange du der einzige Autor bist kannst du immer irgendwann deinen Code GPL-lizensieren. Wenn mehrere dran gearbeitet haben, musst die eben vorher fragen.
Ich habe Anregungen im Netz gefunden, aber alles von Grund auf neu zusammengebaut, also lediglich Doku "konsumiert" und auch die relevanten Befehle + Optionen in Erfahrung gebracht. Ich schätze, trotz strengem Copyright, dass ein einzelner Befehl + seine Optionen in gewisser Kombination noch nicht die nötige Schöpfungshöhe erreichen, um kopiergeschützt zu sein?! Dann wäre ja schon jede Manpage fast ein Befehls-Copyright-erzeugendes Produkt...fehlt nur noch das Patent auf die Schleife oder die Füllung der Variable LIEDLAENGE. 😀
Mal ernsthaft: Kann man denn nun eigentlich mittlerweile bedenkenlos den von MS patentierten Fortschrittsbalken verwenden oder ist das eine Urban Legend?
Ich schätze mal, mit den gleichen Variablennamen könnte man da theoretisch auch ganz schön böse auf die Nase fallen, oder? Also wenn da einer im Netz in einem Forum was ohne Lizenz postet und man kopiert das 1:1 und baut was draus und veröffentlicht das dann. Oder stellt das sogar unter die GPL und derjenige will aber ein starkes Copyright/ Urheberrecht, obwohl er es veröffentlicht hat (ein Abmahnanwalt itself etwa).
Ich denke, als allgemeine Projektfragen kann man die Antworten zu einigen meiner Fragen hier vielleicht noch unterbringen, wenn man nicht beim Urschleim mit dem Antworten anfängt oder sich in Details verliert, oder? Sind ja dann immerhin Projekt-bezogene Fragen, die beim Autor aufgrund mangelndes Erfahrungs- oder Wissensschatzes auftauchen.
Aber zu spät ist es nie. 😉
Nunja, ich fragte mich z.B., ob man nachträglich eine Lizenz durch eine restriktivere ersetzen kann. Dann könnte sich ja jeder auf die legerere Lizenz/ Programmkopie beruhen, die im Netz umherschwirrt. Oder es ist so, dass man als Inhaber des Copyrights beliebig seine Lizenzen ändern kann. Sicherlich kann man dazu (bei weiterem und sofortigen Wissensbedarf) noch was im Netz finden, aber ich nehme auch gerne einen Einblick aus erster Hand entgegen.
Zuerst wollte ich mich ganz um die Lizenzierungsfrage drücken oder dachte gar nicht an sowas...
Wie gesagt, ist bei solch kleinen Dingen nicht sonderlich wichtig. Daher versuch ich jetzt hier auch nicht die GPlv3 zu verteidigen, das Thema gehört hier nicht hin.
Wenn du das Thema schon mal wo diskutiert oder niedergeschrieben hattest, würde ich mir das gerne mal ansehen. So richtig gefällt mir nach meiner Lektüre keine der beiden Versionen. Und das "or later" halte ich auf den ersten Blick sogar für rechtlich bedenklich, da man in keinem Vertrag (nach deutschen Recht) auf einmal Verschlechterungen "zum selben Preis" einbauen darf, subjektiv genau dies aber eintreten könnte (wie beim Streit zw. GPL v2 vs. v3). Oder es gilt auch hier: Der Inhaber des Copyrights darf die Lizenz vielleicht beliebig wieder ändern und andere Nutzer die Lizenz "sonderkündigen" (und übergangsweise einen Monat weiternutzen!?). Nun haue ich bestimmt viele Rechtsgebiete durcheinander, nur um mir einen Sinn zu konstruieren. 😉
Grüße, Keba.
Grüße auch. 😉
Hallo unknow,
user unknown schrieb:
oder wir sollen einfach die gleichen Vorschläge nochmal machen?
Berechtigter Einwand, da das Ursprungsthema doch etwas aufgebläht ist. Ich versuche mal, die wichtigsten Sachen zusammenzutragen. Wollte ich evtl. später mal diskutieren, da ich meinte, das meiste sind eher "Feature Requests", die jetzt für die Veröffentlichung im Wiki keine Rolle spielen. Kenne die Gepflogenheiten unter Programmierern/ Projekten übrigens auch noch nicht so und bin hier mehr so reingerutscht - darum ist auch das Ursprungsthema so zerfasert.
Hauptsächlich geht es um diesen Post, der allerdings vieeel zu lang ist, also hier nochmal Zitate (die größten zusammenhängenden Blöcke wenigstens):
(Habe anfangs nicht geplant gehabt, so eine "große Sache" daraus zu machen, sonst wäre das Thema dort besser vorbereitet gewesen.)
Eigene Ideen (aber evtl. bin ich auf einem Auge blind und sehe nicht über den Tellerrand):
Ein paar Verbesserungsvorschläge und Ideen hätte ich schon, etwa Zenity für eine komfortable einfache grafische Ordnerauswahl oder mp3info statt dem ganzen mplayer-Paket, ein cut entfernen, einen Check auf Vorhandensein von mp3-Dateien im Ordner (sonst Fehlermeldung)
...was (letzteres) ja auch Keba sofort erkannte...(Ich dachte mittlerweile sogar, das wäre schon gelöst gewesen. *g*)
, aber das wird dann alles zuviel.
Im Folgenden geht es um diese beiden Links am Anfang des Themas:
http://www.vdr-portal.de/board60-linux/board62-software/p505218-tool-f%C3%BCr-mp3-fade-in-out/#post505218
http://blog.gi-project.de/2010/04/stapelverarbeitung-von-audiodaten-mit-linux-und-sox/
Die Kernkomponenten habe ich aus den beiden Ansätzen "zusammengeklaut" und nochmal neu hergeleitet/ umfunktioniert. Also von Grund auf nachvollzogen bzw. neu geschrieben. Erst heute morgen sah ich, dass ich das Script aus Link 1 noch gar nicht richtig angesehen hatte - aber auch da fehlte eine Schleife. Diese allerdings ist das geringste Problem - aber die wichtigste Anforderung.
Ich vermute auch mal das Array (..." [ @ ] "...)suboptimal, aber sei es drum - man muss sich nur zu helfen wissen. Ist für den Zweck effizient genug. (An was man nicht alles denken sollte...)
Das folgende sind wohl eher "Feature Requests":
Ausblick:
Neben bereits genanntem (Bitrate, zenity...): Man könnte noch eine ncurses-Oberfläche einbauen, Fehlermeldungen ausgeben statt unterdrücken (oder loggen), einen OK/ Error je Datei einbauen, Dash-kompatible Syntax ohne Bash-Spezifika verwenden (schneller - ist bestimmt nicht alles kompatibel), manche Checks mit "Kniffen" kürzen/ umstrukturieren, einzelne Dateien zulassen, das Abbrechen mit STRG + C, welches zu gekürzten Originaldateien führt, verhindern, eine Abfrage einbauen, ob man wirklich will, Hinweise einbauen wie welche Programme noch installiert würden (was die intelligente kurze which-Abfrage evtl. wieder unnötig aufbläht), evtl. andere Dateien zulassen als mp3 (evtl. reicht dazu schon ein Ändern von *.mp3 in *.ogg usw.)...und man könnte natürlich auch noch *...war wichtige Idee, aber leider gerade wieder Faden verloren...* oder ein Paket daraus bauen. Die voraussichtliche Zeit könnte man anhand der MB des Ordners und erster Zeitmessungen (mit time?) auch noch anzeigen lassen.
Auch die 2 Wartesekunden zur Anzeige der Optionen beim Start des Programms könnte man anders lösen, etwa dass das Programm dabei schon startet - aber das ist eine Kleinigkeit, die nicht zu den wichtigen Anforderungen gehörte. Ich schätze auch mal, dass man den Tabulator bei echo kodieren sollte (wie in der Manpage), aber bei mir funktioniert es erstaunlicherweise auch einfach so. Auf Unix dann vielleicht nicht mehr...
Man könnte auch weitere Optionen für ecasound einfügen, aus der Erinnerung etwa -C und was zur Unterdrückung von Ausgaben, die ich ohnehin nach /dev/null leite. Eine Erfolgsabfrage/ OK je Datei wäre in dem Fall noch ganz sinnvoll. Oder ein Check des noch vorhandenen freien Speicherplatzes. Ein Ordner --help ist auch nicht erlaubt, aber da macht auch mv und rm Probleme, wenn man nicht die Option "–" oder "\--help" (oder anders?) verwendet. 😀
All das wird etwas Overkill für eine kleine Funktion, die man mal eben schnell umgesetzt haben will. ☺ Allerdings ist sowas eine gute Übung und manches kann man als Schnippsel oder Grundgerüst für andere Programme so oder ähnlich weiterverwenden. Oder wenn man mal ein richtiges Programm daraus bzw. aus etwas ähnlichem oder abgeleiteten paketieren (und in die Standardrepos bringen?) will.
Zur Änderung der Bitrate hatte ich lange recherchiert und dort jeden Schritt notiert, falls jemand den Gedanken folgen oder selbst als Anwender sowas nachforschendes mal machen möchte (Inspiration). Hier mal ein Auszug, nachdem Hexeditor als "Hackerei" flachfiel und Kompilieren nun wohl durch eine Configdatei von ecasound (nicht aber eine Option zur Befehlszeile von ecasound!?) wohl "irgendwie" angepasst werden kann (diese muss man selbst erzeugen bzw. aus der Doku kopieren!):
#ext-cmd-mp3-input = mpg123 --stereo -r %s -b 0 -q -s -k %o %f
#ext-cmd-mp3-output = lame -b %B -s %S --little-endian -S - %f
Diese Zeilen kann man durch Entfernen von "#" aktivieren.
Dann kann man sie auch anpassen. Ich als Musiklaie verstehe noch nicht ganz, wieso man für einen INPUT eine Bitrate angeben muss, die doch eigentlich in der Datei kodiert ist - vielleicht kann man die damit reduziert abspielen? Im Zweifel werde ich nichts ändern bzw. eine passende setzen.
Wo man diese Datei hinkopieren kann, steht oben in meinen Stichpunkten (Kästchen, gelb).
Obwohl Du keine Zeit hast sie umzusetzen? Wir haben ja die Zeit!
Das Umsetzen ist das eine, zumal wenn es "nur" um Features geht. Das andere ist berechtigte Kritik zu bekommen. Ob das dazu führt, dass man "nur" dazulernt oder auch was umsetzt (sicherlich aber in späteren Projekten!) oder andere das übernehmen möchten (wahrscheinlich nicht, trotz Open Source, oder?), das spielt dann keine Rolle und hängt vom Einzelfall ab. Gerne kann man manches auch später umsetzen. Auf jeden Fall aber ist die Kritik nicht umsonst, da ich ja Anfänger bin und sicherlich noch was zu lernen habe. Ich musste mir manchmal auch einfach irgendwie zu helfen wissen, gerade bei der Fallunterscheidung .mp3/.MP3 usw. - oder bei dem Array (mal im Quelltext nach "@" suchen...). ☺
Sonst wäre das Script und die Doku noch längst nicht fertig. Gerade ein sauberer Wikiartikel dauerte auch nochmal Stunden - ich hätte es bei meinem Schreibtempo ja nicht für möglich gehalten...und wie immer sollte ich eigentlich gar nicht mehr hier im Forum oder gar Wiki rumlungern... 😉 Der "Feature Freeze" und "Docu Freeze" ist quasi bei mir persönlich erreicht (ich böser Diktator, der nichts demokratisch entwickelt hat *g*), ich möchte hier noch von euch, gerne auch dir, dazulernen und schlimme Bugs verhindern, bevor das Ding veröffentlicht wird. ☺
Bin froh, dass ich überhaupt noch einen Wiki-Artikel geschafft habe (ohne geht ja nicht, sonst hätte ich das der Zeit und Prioritäten wegen besser mal lassen sollen...aber das Problem haben wir ja alle irgendwie, nicht?). Ich werde nun nochmal bisschen suchen, ob es schon was ähnliches gibt, aber sei es drum - im Wiki stand bisher wohl nichts vergleichbares oder etwa doch? Der Artikel ist jedenfalls fertig. ☺
Ich wünsch euch was (was ihr euch wünscht). Schönen Tag und so. 😉
Grüße, Benno
P.S.:
$ apt-cache search mp3fade
$
*Schweiß von Stirn wisch* 😉