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.
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
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?
So, ich bin mal
lieb.