]> CRI, Mines Paris - PSL - minwii.git/blobdiff - src/app/minwii.py
Ajout description midi des instruments et sélection au niveau de fluidsynth.
[minwii.git] / src / app / minwii.py
index 08bbcfd8db3b58df5452ba8d7becc5ef6884a6e5..7901c9c75d17942b87b0559f1111e35386c43cfa 100755 (executable)
@@ -6,29 +6,43 @@ $Id$
 $URL$
 """
 
 $URL$
 """
 
+import pygame
 from pgu.gui import Desktop
 from pgu.gui import QUIT
 from widgets.home import Home
 from widgets.playingscreen import SongPlayingScreen, PlayingScreen
 from pgu.gui import Desktop
 from pgu.gui import QUIT
 from widgets.home import Home
 from widgets.playingscreen import SongPlayingScreen, PlayingScreen
+from widgets.instrumentselector import InstrumentSelector
 from synth import Synth
 from eventutils import EventDispatcher
 from musicxml import musicXml2Song
 from synth import Synth
 from eventutils import EventDispatcher
 from musicxml import musicXml2Song
+from config import SONG_FILE_PATH
 
 class MinWii(object):
     
     def __init__(self) :
         app = Desktop()
         synth = Synth()
 
 class MinWii(object):
     
     def __init__(self) :
         app = Desktop()
         synth = Synth()
-        synth.program_select(0, 0, 0)
 
 
-        if True :
-            #home = Home()
-            #home.connect(QUIT, app.quit)
-            #app.run(home)
-            #app.close(home)
+        while True :
+            home = Home(songPath=SONG_FILE_PATH)
+            home.connect(QUIT, app.quit)
+            app.run(home)
+            app.close(home)
+            returnValue = home.returnValue
+            if not returnValue :
+                break
             
             
-            song = musicXml2Song('/Users/pinbe/dev/minwii/src/songs/chansons/quinquin.xml')
+            selector = InstrumentSelector()
+            selector.run()
+            selector.stop()
+            pygame.event.clear()
+            EventDispatcher.reset()
+            instrumentDescription = selector.selectedInstrument
+            
+            song = musicXml2Song(home.songFile, printNotes=True)
+            bank, preset = instrumentDescription['bank'], instrumentDescription['preset']
+            synth.program_select(0, bank, preset)
             playingScreen = SongPlayingScreen(synth, song)
             playingScreen = SongPlayingScreen(synth, song)
-            #playingScreen = PlayingScreen(synth)
             playingScreen.run()
             playingScreen.run()
+            pygame.event.clear()
             EventDispatcher.reset()
             EventDispatcher.reset()