Seite 1 von 2

Re: Notationsprogramm

Verfasst: Freitag 18. Februar 2011, 08:42
von mkesper
Sound: Vermutlich Phonon oder GStreamer.

Re: Notationsprogramm

Verfasst: Freitag 18. Februar 2011, 09:31
von Xynon1
Danachgehend würde ich eher zu PyMedia tendieren. Eigentlich wollte ich aber etwas einfaches über den Speaker, wie halt winsound haben. Nur Frequenz und Dauer angeben, denn Speakersound ist immer noch der beste. :mrgreen:
Dafür findet ich lediglich das nicht pythonische :( 'Beep' was es in jeder Distribution angeboten wird.

Re: Notationsprogramm

Verfasst: Freitag 18. Februar 2011, 20:14
von Leonidas
Xynon1 hat geschrieben:Danachgehend würde ich eher zu PyMedia tendieren.
Ja, nur dass PyMedia komisch riecht und aus Linux-Sicht eher nonstandard ist. Wohingegen sowohl Phonon als auch GStreamer in der Linuxwelt wohlbekannt sind.

Re: Notationsprogramm

Verfasst: Freitag 18. Februar 2011, 20:35
von lunar
PyMedia ist vor allem seit 2006 tot.

Re: Notationsprogramm

Verfasst: Freitag 18. Februar 2011, 20:58
von Xynon1
Gut zu wissen,
bisher habe ich noch nie mit Audio gearbeitet, also völliges Neuland, muss wohl demnächst mal einiges an Literatur verschlingen.

Aber gibt es wirklich nur Beep wenn man in Linux den Speaker ansprechen will, oder ist das auch mit einem von euch genannten Projekte möglich ?

Re: Notationsprogramm

Verfasst: Freitag 18. Februar 2011, 21:11
von lunar
@Xynon1: Ich habe keine Ahnung, ob man mit Phonon den Lautsprecher der Hauptplatine ansprechen kann, würde aber ins Blaue hinein geraten verneinen. Ist schließlich ziemlich anachronistisch, moderne Systeme besitzen so einen Lautsprecher gar nicht mehr.

Re: Notationsprogramm

Verfasst: Freitag 18. Februar 2011, 22:48
von problembär
Hallo,

zur Soundausgabe mit Python unter Linux hab' ich bei mir jetzt was viel Cooleres installiert:

1. Fluidsynth,
2. Das SuSE-Paket "snd_sf2" mit dem Soundfont "Vintage Dreams Waves" (128 Klänge),
3. pyFluidSynth

Das Ganze kann man dann mit folgendem Skript testen:

Code: Alles auswählen

#!/usr/bin/env python
# coding: iso-8859-1
import time
import fluidsynth
fs = fluidsynth.Synth()
fs.start()
sfid = fs.sfload("/usr/share/sounds/sf2/Vintage_Dreams_Waves_v2.sf2")
for i in range(119, 128, 1):
    fs.program_select(0, sfid, 0, i)
    for u in range(40, 75, 3):
        fs.noteon(0, u, 30)
        time.sleep(0.2)
        fs.noteoff(0, u)
fs.delete()
Die Instrumentennamen erhält man angezeigt, indem man Fluidsynth von der Shell aus mit

Code: Alles auswählen

fluidsynth -n /usr/share/sounds/sf2/Vintage_Dreams_Waves_v2.sf2
im interaktiven Modus startet und dort

Code: Alles auswählen

inst 1
eingibt. Klingt sehr gut, ein echter Softsynthesizer eben (der noch dazu gleich direkt funktioniert, ohne daß man mit dem Alsa-Sequencer oder Jack hantieren müßte (obwohl man das auch lernen sollte, wenn man wirklich Musik machen will; Zugriff darauf von Python aus wäre eigentlich nicht schlecht, kann ich aber noch nicht ...)).

Gruß

P.S.: Am Ende braucht man sowieso ein komplexes Midi-Sequencer-Programm mit Track-, Piano-Roll und Notationsansicht. Unter Windows war da immer "Cubasis VST" (eine völlig ausreichende kleinere Version des sehr teuren Profiprogramms "Cubase") ganz gut, unter Linux wohl Rosegarden oder Muse, die mich bisher aber beide noch nicht so richtig überzeugen konnten. Ist aber auch schon ein paar Jahre her, daß ich mir sie angesehen hatte. Vielleicht sind sie heute schon besser. :)

PPS.: Übrigens: Fluidsynth kann in der Konfiguration oben auch unmittelbar Midis abspielen:

Code: Alles auswählen

fluidsynth -ni /usr/share/sounds/sf2/Vintage_Dreams_Waves_v2.sf2 somemidi.mid
obwohl die meisten wohl für "General Midi" geschrieben sind, was man wohl typischerweise mit "Timidity" abspielt ...

Re: Notationsprogramm

Verfasst: Dienstag 22. Februar 2011, 17:00
von questlove
vielen vielen dank! ;)
ich selber bin auchschon schlauer geworden und werde euer antworten jetzt mal nochmal genau durchgehen :)

LG

Re: Notationsprogramm

Verfasst: Donnerstag 7. Juli 2011, 16:07
von questlove
Ich stehe gerade vor dem Problem , dass ich bei meinem Notationsprogramm auch die Dateien, die man damit erstellt abspeichern will, um sie wann anders forstetzen zu können. Da Mingus keine brauchbare Methode zur Verfügung stellt, die geschrieben Noten in einem Format auszugeben, das man abspeichert und dann einzeln wieder durch methoden aufruft (also ich erstelle die schon geschriebenen Noten nocheimal), dachte ich ich protokolliere einfach die noten auf einer text datei (z.B: A4,G4,D2 für eine viertel a note, viertel g note, halbe d note) und führe einzeln die Methoden Note erstellen mit den empfangenen Werten auf..
Wie kann ich jetzt eine solche Datei an einem bestimmten ort erstellen? (wie die Speichern unter funktion in den Programmen) und kann ich ihnen eine eigenes Kürzel geben, sodass die Datei mit meinem Programm auch geöffnet wird und nicht mit dem Editor?

LG
questlove

Re: Notationsprogramm

Verfasst: Donnerstag 7. Juli 2011, 19:54
von problembär
Uff, da willst Du also das Rad noch einmal neu erfinden. Denn das bestehende .mid (Midi-)Format wäre natürlich für Noten sehr leistungsfähig.

Ansonsten gehe ich mal davon aus, daß Du weißt, wie man Textdateien speichert und liest.
Weiterhin, daß Du Tkinter benutzt. Dann brauchst Du also noch den Dateinamen. Dazu schau' Dir am besten mal "pydoc tkFileDialog" an.

Gruß

Re: Notationsprogramm

Verfasst: Dienstag 23. August 2011, 11:56
von questlove
Ich würde gerne die Lieder, die man mit diesem programm komponiert, festhalten, um später daran weiterarbeiten zu können. Mein plan war dass ich eine text datei erstelle und zeilenweise ein protokoll vom projekt erstelle, bei dem ich dann nach wiederöffnen jede zeile einzeln durchgehe (am anfang steht der titel und es wird eine methode aufgerufen die den titel setzt, dann kommen noten und es werden methoden verwendet um die noten wieder zu erstellen,....) und am schluss wieder am letzten stand bin. Ist es dann vllt auch möglich diesen dateien ein eigenes kürzel zu geben, welches für mein programm steht, und bei doppelklick öffnet sich auch das programm mit dem projekt?

und wie mache ich eine typische speichern unter funktion? mit methoden des moduls "os" oder?

Re: Notationsprogramm

Verfasst: Dienstag 23. August 2011, 12:00
von Hyperion
questlove hat geschrieben: und wie mache ich eine typische speichern unter funktion? mit methoden des moduls "os" oder?
Ich habe das ganze nicht wirklich verstanden, denke aber mal, dass Du einfach `open` suchst ;-)

Re: Notationsprogramm

Verfasst: Dienstag 23. August 2011, 12:20
von questlove
mit open kann ich eine datei erstellen, das weis ich.
aber ich meinte ich brauch ein "speichern unter fenster", in dem ich sozusagen einen pfad wählen kann, (was ich auch noch nicht weis wie ich das in ein fenster bekomme ;) ) und dann die funktion, die die datei direkt an diesem pfad erstellt.. kann ich das mit open machen? ich hab das noch nicht gesehen.

Re: Notationsprogramm

Verfasst: Dienstag 23. August 2011, 12:23
von EyDu
Welches GUI-Toolkit verwendest du denn? Darin sollte ein entsprechender Dialog vorgesehen sein.

Re: Notationsprogramm

Verfasst: Dienstag 23. August 2011, 12:24
von Hyperion
Naja, Du kannst `open` ja einen kompletten Pfad übergeben.

Der andere Teil Deiner Frage zielt ja irgend wie auf ein GUI-Toolkit ab. Da müßtest Du erst einmal sagen, welches Du verwendest. Unter Qt gibt es bspw. den `QFileDialog`.

Re: Notationsprogramm

Verfasst: Dienstag 23. August 2011, 12:52
von questlove
nö. tkinter ^^

Re: Notationsprogramm

Verfasst: Dienstag 23. August 2011, 12:53
von Hyperion
questlove hat geschrieben:nö. tkinter ^^
'Nö' ist jetzt eine Antwort auf welche Frage? :roll:

So, ich bin mal lieb.