omz:forum

    • Register
    • Login
    • Search
    • Recent
    • Popular

    Welcome!

    This is the community forum for my apps Pythonista and Editorial.

    For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.


    Using custom sound effects.

    Pythonista
    4
    8
    5484
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • laszlo.j.hermann
      laszlo.j.hermann last edited by

      Hallo,

      Can I use my "custom" effects?
      I created the full collection piano CAF (90 keys) to make a small piano app. I created a modified copy of PIANO App and I want to use it with my effects (filename PIANO_01.caf .. PIANO_90.caf). The CAF files and the PIANO.py ist in the Subdirectory root/Piano/. Opening the CAF file in Phytonista "explorer" plays the CAF file.

      How can I address my own CAF files in a .py script?

      I'm using the following code:

      for i in range(0,90):
        effect_name = 'PIANO_'+str(i+1).zfill(2)
        self.sounds.append(effect_name)
        sound.load_effect(effect_name)
      

      unfortunately the sound.play_effect(self.sounds[index]) doesn't plays any node.

      Is there any suggestion?

      Thanks and cheers.

      1 Reply Last reply Reply Quote 0
      • omz
        omz last edited by

        If you want to use custom sound effects, the effect name has to include the filename extension (.caf in your case).

        1 Reply Last reply Reply Quote 0
        • laszlo.j.hermann
          laszlo.j.hermann last edited by

          many thanks it works :-)

          1 Reply Last reply Reply Quote 0
          • laszlo.j.hermann
            laszlo.j.hermann last edited by

            Hmmm, new effect...
            Now I have no sound or sound is muted after I started a Radio App.
            But the demo Piano.py works.

            Loading the custom sounds:

            for i in range(0,90):
                       filename = 'PIANO_'+str(i+1).zfill(2)+'.caf'
                       filepath = './PianoCAF/'+ filename
                       self.sounds.append(filename)
                       sound.load_effect(filepath)
                       if os.path.exists(filepath):
                           print(self.sounds[i])
            

            File are printed also they are existing.

            def touch_began(self, touch):
                   sound.set_volume(0.5)    
                   self.pitchmodifier = 0      
                   self.nodevalue = 13 - int((self.size.w - touch.location.x) / (self.size.w/13))    
                   self.start_nodeindex = 40 + self.nodevalue+(12*self.pitchmodifier)
                   print('On index: '+ str(self.start_nodeindex))
                   print('On sound: '+ self.sounds[self.start_nodeindex])
                   self.keypressed[self.nodevalue] = self.start_nodeindex
                   sound.play_effect(self.sounds[self.start_nodeindex])  
                   #direct test of sound
                   sound.play_effect('PIANO_42.caf') 
            

            stdout:

            On index: 50
            On sound: PIANO_51.caf
            

            but no sound.
            Any suggestion?

            1 Reply Last reply Reply Quote 0
            • Webmaster4o
              Webmaster4o last edited by

              When you're running a radio app, no other sound will play. It's the same if you download a game from the App Store. No sound will play if you're running the radio app.

              1 Reply Last reply Reply Quote 0
              • laszlo.j.hermann
                laszlo.j.hermann last edited by

                Unfortunatly it is not the point. I already stopped every other Apps and rebooted. No sound. ( The Piano.py demo app working properly but not my one )

                1 Reply Last reply Reply Quote 0
                • JonB
                  JonB last edited by

                  this may be a stupid observation, but make sure your volume is turned up, and also that the mute is not on, (hardware switch, or else from settings if you have hardware switch set to lock rotation).

                  your might try preloading just a few sounds, in case there is some memory implication of loading 90 sounds.

                  you could also try using sound.Player objects

                  sound.Player() -- An object-oriented music/sound player interface... Basically, you create one by passing an absolute path to the constructor. It has play, pause and stop methods, which should be self-explanatory, and a current_time attribute which can be used for scrubbing etc.

                  (as an aside.... how does your piano have 90 keys? I'm jealous, mine only have 88!)

                  are you on the beta, or in 1.5?

                  1 Reply Last reply Reply Quote 0
                  • laszlo.j.hermann
                    laszlo.j.hermann last edited by

                    When the hardware is muted or volume is down, the demo piano app also wouldn't work. But it is working. The memory allocation can be a reason, so I reduced the number of effects.

                    		if i in range(47,49):
                    			sound.load_effect(filepath)
                    

                    but no difference.
                    How can I validate the success of load_effect()?

                    I can check the sound.Player() but I don't understand why it is not working since yesterday (without any changing in the code).

                    I generated the 90 sounds with Pianoteq and it was the range I defined and not the 88 keys. 😊

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post
                    Powered by NodeBB Forums | Contributors