]> CRI, Mines Paris - PSL - minwii.git/blobdiff - src/app/minwii.py
utilisation de la flûte traversière.
[minwii.git] / src / app / minwii.py
index b52657ddb6690d4d89d27e793db3fa47c67e5e7e..dbf1b23862984ef04deaebf149f8c2837dcb54dc 100755 (executable)
@@ -6,10 +6,12 @@ $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
@@ -20,16 +22,30 @@ class MinWii(object):
     def __init__(self) :
         app = Desktop()
         synth = Synth()
     def __init__(self) :
         app = Desktop()
         synth = Synth()
-        synth.program_select(0, 0, 0)
 
 
-        if True :
+        while True :
+            # sélection de la chanson
             home = Home(songPath=SONG_FILE_PATH)
             home.connect(QUIT, app.quit)
             app.run(home)
             app.close(home)
             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/etoile_neige.xml', printNotes=True)
+            # sélection de l'instrument
+            selector = InstrumentSelector()
+            selector.run()
+            selector.stop()
+            pygame.event.clear()
+            EventDispatcher.reset()
+            instrumentDescription = selector.selectedInstrument
+            
+            # lancement du lecteur / clavier
+            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()