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
QtWS25 Last Chance

Synchronize an QOpengl line with audio file

Scheduled Pinned Locked Moved Unsolved General and Desktop
qopenglaudiomultimedia
16 Posts 2 Posters 2.4k 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 Offline
    H Offline
    HW-Developer
    wrote on last edited by HW-Developer
    #1

    I want to create an app that can play an audio and synchronize it with a QOpenglWidget that include a divided ruler instead of a qslider like this:
    divided ruler
    but i can't figure out how to create positionchanged method in my QOpenglWidget class, so any one has a simple example or an idea, i really appreciate it. Thank you.

    1 Reply Last reply
    0
    • mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi
      you mean some method or signal to move the red line ?

      H 1 Reply Last reply
      0
      • mrjjM mrjj

        Hi
        you mean some method or signal to move the red line ?

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

        @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
          #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