Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Synchronize an QOpengl line with audio file

Synchronize an QOpengl line with audio file

Scheduled Pinned Locked Moved Unsolved General and Desktop
qopenglaudiomultimedia
16 Posts 2 Posters 2.5k Views
  • 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.
  • H HW-Developer

    @mrjj Yes that's right

    mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #4

    @HW-Developer
    well did u subclass QOpenglWidget ?
    If yes, you can just add a slot to it like
    public slots:
    void PositionChanged( int pos) ;

    and in cpp
    void yourclassname:: PositionChanged( int pos) {
    change the variable that controls the red line.
    }

    H 1 Reply Last reply
    0
    • mrjjM mrjj

      @HW-Developer
      well did u subclass QOpenglWidget ?
      If yes, you can just add a slot to it like
      public slots:
      void PositionChanged( int pos) ;

      and in cpp
      void yourclassname:: PositionChanged( int pos) {
      change the variable that controls the red line.
      }

      H Offline
      H Offline
      HW-Developer
      wrote on last edited by HW-Developer
      #5

      @mrjj for example if we have this code to draw the red line

      glColor3f(1.0, 0.0, 0.0);
      glBegin(GL_LINES);
      glVertex3f(-1 + (redLine*scaleFactor), 1 + -(0 * 0.016), -1.0);
      glVertex3f(-1 + (redLine*scaleFactor), 1 + -(130 * 0.016), -1.0);
      glEnd();
      

      //scaleFactor is a float variable which determines the space before the red line
      //redline is a float variable = 320 + 160;

      and i create the positionChanged(int position) methode, what should i change using the position variable?

      mrjjM 1 Reply Last reply
      0
      • H HW-Developer

        @mrjj for example if we have this code to draw the red line

        glColor3f(1.0, 0.0, 0.0);
        glBegin(GL_LINES);
        glVertex3f(-1 + (redLine*scaleFactor), 1 + -(0 * 0.016), -1.0);
        glVertex3f(-1 + (redLine*scaleFactor), 1 + -(130 * 0.016), -1.0);
        glEnd();
        

        //scaleFactor is a float variable which determines the space before the red line
        //redline is a float variable = 320 + 160;

        and i create the positionChanged(int position) methode, what should i change using the position variable?

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #6

        @HW-Developer
        I would assume redLine variable ?

        H 1 Reply Last reply
        0
        • mrjjM mrjj

          @HW-Developer
          I would assume redLine variable ?

          H Offline
          H Offline
          HW-Developer
          wrote on last edited by HW-Developer
          #7

          @mrjj When i use redLine =0, it gives me this result:
          0_1543423125490_cap1.PNG
          so 160 is the space between the small grey lines
          and 320 is just a number that i added so the red line will be in the same line with my slider
          0_1543423370788_cap2.PNG

          mrjjM 1 Reply Last reply
          0
          • H HW-Developer

            @mrjj When i use redLine =0, it gives me this result:
            0_1543423125490_cap1.PNG
            so 160 is the space between the small grey lines
            and 320 is just a number that i added so the red line will be in the same line with my slider
            0_1543423370788_cap2.PNG

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #8

            @HW-Developer
            so the redline default offset is 320+160.
            so if you add to that, it will move the redline.
            Do you mean to hook up the slider so it moves the redline or what is task?

            H 1 Reply Last reply
            0
            • mrjjM mrjj

              @HW-Developer
              so the redline default offset is 320+160.
              so if you add to that, it will move the redline.
              Do you mean to hook up the slider so it moves the redline or what is task?

              H Offline
              H Offline
              HW-Developer
              wrote on last edited by
              #9

              @mrjj The slider was my first test so to have the same result i did have with my slider i initialize the red line on the same line with that slider so when the audio is playing, they will be moving in the same time

              mrjjM 1 Reply Last reply
              0
              • H HW-Developer

                @mrjj The slider was my first test so to have the same result i did have with my slider i initialize the red line on the same line with that slider so when the audio is playing, they will be moving in the same time

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #10

                @HW-Developer
                ok.
                so now you want a method in QOpenglWidget that also moves the redLine ?

                H 1 Reply Last reply
                0
                • mrjjM mrjj

                  @HW-Developer
                  ok.
                  so now you want a method in QOpenglWidget that also moves the redLine ?

                  H Offline
                  H Offline
                  HW-Developer
                  wrote on last edited by
                  #11

                  @mrjj Yes that's right

                  mrjjM 1 Reply Last reply
                  0
                  • H HW-Developer

                    @mrjj Yes that's right

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #12

                    @HW-Developer
                    Ok, i assumed you subclassed it ?
                    like
                    class MyGLWidget : public QOpenGLWidget ...

                    so you can just add a new method to it to alter the redLine variable.

                    H 1 Reply Last reply
                    0
                    • mrjjM mrjj

                      @HW-Developer
                      Ok, i assumed you subclassed it ?
                      like
                      class MyGLWidget : public QOpenGLWidget ...

                      so you can just add a new method to it to alter the redLine variable.

                      H Offline
                      H Offline
                      HW-Developer
                      wrote on last edited by
                      #13

                      @mrjj Yes of course i already did what is necessary to have the drawing ruler that i upload it above

                      mrjjM 1 Reply Last reply
                      0
                      • H HW-Developer

                        @mrjj Yes of course i already did what is necessary to have the drawing ruler that i upload it above

                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #14

                        @HW-Developer
                        ok but you question was
                        " how to create positionchanged method in my QOpenglWidget class,"
                        so i must be missing something you ask about ?
                        (if you already did make such method)

                        H 1 Reply Last reply
                        0
                        • mrjjM mrjj

                          @HW-Developer
                          ok but you question was
                          " how to create positionchanged method in my QOpenglWidget class,"
                          so i must be missing something you ask about ?
                          (if you already did make such method)

                          H Offline
                          H Offline
                          HW-Developer
                          wrote on last edited by HW-Developer
                          #15

                          @mrjj I already draw the qopenglwidget but I did not synchronize it with the audio file using positionchanged method that I did ask you about

                          mrjjM 1 Reply Last reply
                          0
                          • H HW-Developer

                            @mrjj I already draw the qopenglwidget but I did not synchronize it with the audio file using positionchanged method that I did ask you about

                            mrjjM Offline
                            mrjjM Offline
                            mrjj
                            Lifetime Qt Champion
                            wrote on last edited by
                            #16

                            hi
                            well you can hook up the AUDIO positionchanged
                            signal to your own method (slot)
                            using connect.
                            http://doc.qt.io//qt-5/signalsandslots.html

                            so it will directly call your method when it changes.

                            1 Reply Last reply
                            0

                            • Login

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Users
                            • Groups
                            • Search
                            • Get Qt Extensions
                            • Unsolved