• Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Strawberry Music Player Forums
    2. Gustavo L Conte
    • Profile
    • Following 1
    • Followers 0
    • Topics 4
    • Posts 80
    • Best 13
    • Controversial 0
    • Groups 0

    Gustavo L Conte

    @Gustavo L Conte

    Sysadm/DevOps

    LEarning Qt and loving it

    Also make some alternative electronic music, its available on Tidal, Qobuz, Spotify, Deezer, YT Music, Apple Music, etc

    15
    Reputation
    80
    Profile views
    80
    Posts
    0
    Followers
    1
    Following
    Joined Last Online
    Website gu.pro.br Location Brazil Age 41

    Gustavo L Conte Unfollow Follow

    Best posts made by Gustavo L Conte

    • RE: What Do You Listen To?

      Hey guys nice topic! I'm very ecletic, but usually listen to rock and roll, oldies, br popular music (MPB) and electronic like kraftwerk or Jean Michel Jarre. Also like strokes, libertines, strawbs, well, as I said I'm quite ecletic. This includes even Shakira or Kylie Minogue lol

      I've recently published my own instrumental songs (as GUSTAVO L CONTE) on Qobuz, tidal, spotify, YT, apple, etc, that I make on Linux with Renoise tracker. When the process finishes there will be about seven EPs available!
      I'm an enthuasiast, but some songs have its moments lol
      please give a peek if you can
      tks!! !

      ELETROlambada.jpg

      https://push.fm/fl/c9npojzb

      https://music.youtube.com/channel/UCmtpR0fsOuwqkXRT4cLCqTA

      posted in Music
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Strawberry & Easytag

      @ashley194 said in Strawberry & Easytag:

      a day ago

      Hi all, First off, I'm running Debian 12.6 "Bookworm" KDE DE.

      In Strawberry, every time I select 'Show in file browser' in the context menu it opens up Easytag instead of the Dolphin file manager!

      Open a terminal.
      Execute

      xdg-open .
      

      to see if it opens Dolphin. If not, you might need to fix the association. Sometimes xdg-open might be pointing to the wrong application. If xdg-open is opening files with the wrong application, you can fix this by adjusting your MIME type associations or setting the correct default application for handling specific types of files.

      EXAMPLES

      For Directories (typically handled by file managers like Dolphin):

      xdg-mime default dolphin.desktop inode/directory
      

      or, i.e. For Text Files:

      xdg-mime default kate.desktop text/plain
      

      or, For PDF Files:

      xdg-mime default okular.desktop application/pdf
      

      the query mistekko sent is very useful to debug which default application is set for opening folders, which is the case. The first command I sent is useful to actually test if the problem lies in Strawberry or system-wide.

      posted in Technical Help
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Reintegrate projectM Visualizer
      if (projectm_) {
          short samples_per_channel = static_cast<short>(map.size / sizeof(size_t) / 2);
          const short *data = reinterpret_cast<short*>(map.data);
          projectm_->pcm()->addPCM16Data(data, samples_per_channel);
        }
      

      I think I finally got it. Output is finnally as expected, interacting with the song. We only have to divide by sizeof size_t, in samples_per_channel!!!! Now its working just like when I use the pulseaudio Capture code. (also I've removed the resetGL on the render loop)

      Screenshot from 2024-07-05 16-52-13.png
      Zylot - Crosshair Dimension (Light of the Ages)

      Now we need to fix the projection / OpenGL extensions or whatever is wrong that brakes rendering of plugins.

      posted in Development
      Gustavo L ConteG
      Gustavo L Conte
    • RE: External User commands

      To integrate user-defined commands into Strawberry Music Player without requiring programming changes to its code, we can leverage UNIX concepts like shell scripting, command-line utilities, and inter-process communication.

      Tools like zenity can be useful for creating a GUI

      #!/bin/bash
      
      # Define actions
      ACTION=$(zenity --list --title="Strawberry Actions" \
          --column="Action" --height=300 \
          "Check Integrity" \
          "Normalize Volume (ReplayGain)" \
          "Open in Editor" \
          "Move Files" \
          "Display Spectrogram" \
          "Query Database" \
          "Cancel")
      
      case $ACTION in
          "Check Integrity")
              echo "Checking integrity of files..."
              # Implement your integrity check command here
              ;;
          "Normalize Volume (ReplayGain)")
              echo "Normalizing volume..."
              # Add replaygain command here
              ;;
          "Open in Editor")
              echo "Opening files in editor..."
              # Example: open the currently selected file in a text editor
              xdg-open "$CURRENT_FILE"
              ;;
          "Move Files")
              echo "Moving files..."
              # Example: mv selected files to another directory
              mv "$CURRENT_FILE" /path/to/destination/
              ;;
          "Display Spectrogram")
              echo "Generating spectrogram..."
              # Example: display spectrogram for current track
              sox "$CURRENT_FILE" -n spectrogram
              ;;
          "Query Database")
              echo "Querying database..."
              # Custom query logic here
              ;;
          *)
              echo "Cancelled."
              ;;
      esac
      

      Integrate with Strawberry Use Strawberry's command-line options to pass information about the current track or playlist. Strawberry supports commands like:

      --playuri <uri>: Play a specific track.
      --stop: Stop playback.
      --next: Play the next track.

      Combine this with environment variables to pass the currently playing track:

      CURRENT_FILE=$(strawberry --playuri | awk '{print $1}')
      

      Create a Keybinding Use a global hotkey (e.g., via your desktop environment or a tool like xbindkeys) to trigger the script. This avoids modifying Strawberry itself.

      Share Scripts Create a shared directory (e.g., ~/.strawberry-scripts) where users can place their custom commands. Your main script could dynamically load commands from this directory.

      Benefits

      • MOSTLY No coding changes to Strawberry itself.
      • Highly flexible: users can define their commands.
      • Simple integration using existing UNIX tools.
      • Community-friendly: users can share scripts.

      EDIT> It just occured to me that this approach would not be good for Windows users, shucks

      posted in Feature Suggestions
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Library cleared when external drive not connected

      @bebelalu55
      try disabling Library scan during startup.
      Probably it is rescanning and without the external storage, the library becomes empty.

      posted in Technical Help
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Position indicator very difficult to see over moodbar when using a dark theme.

      Using qt6ct you can enable under stylesheets a new slider, that has much more visibility
      but It also disables the moodbar 😞

      I agree about the difficulty to see the indicator over moodbar.... could be something that we could customize on the program itself, at least color or width, dunno

      posted in General Discussion
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Reintegrate projectM Visualizer

      Yes! Put this on drawBackground , just after the Init()
      also, remove the resetGL

      glShadeModel(GL_SMOOTH);
      glClearColor(0, 0, 0, 0);
      glViewport(0, 0, width(), height());
      glMatrixMode(GL_TEXTURE);
      glLoadIdentity();
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      glMatrixMode(GL_MODELVIEW);
      glLoadIdentity();
      glDrawBuffer(GL_BACK);
      glReadBuffer(GL_BACK);
      glEnable(GL_BLEND);
      
      glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
      glEnable(GL_LINE_SMOOTH);
      glEnable(GL_POINT_SMOOTH);
      glClearColor(0.0F, 0.0F, 0.0F, 0.0F);
      glLineStipple(2, 0xAAAA);
      

      also change the ConsumeBuffer as I sent the post before. Tell me what happes; I'm done here.

      posted in Development
      Gustavo L ConteG
      Gustavo L Conte
    • WakkaQt - a Karaoke recorder written in C++ and Qt6

      This software is currently in Alpha stage for developers to test. Help requested: for Windows and MacOS tests. NOTE: gStreamer is mandatory on all platforms.

      WakkaQt - Karaoke App

      WakkaQt is a karaoke application built with C++ and Qt6, designed to record vocals over a video/audio track and mix them into a rendered file.
      This app features webcam recording, YouTube video downloading, real-time sound visualization, and post-recording video rendering with FFmpeg, also it uses an open-source Auto Tune algorithm called XC42, by Gareus, featuring automatic masterization of the final track with noise reduction, normalization, compression, etc.
      You can adjust the volume of the vocals before rendering and you can render how many times you want until you are satisfied with the final mix.

      It records audio only too, but a webcam is still mandatory.
      You can use different input audio sources than the webcam, but I still need to program a method to choose different webcams, if the user had multiple webcams.
      In the future I believe I'm going to improve masterization, autotune and add some optional effects to audio and video.
      Also intend to improve the sync method of video, vocals and playback, I'm not satisfied with it since I could not test in several different platforms. as a far feature I intend to use FFMpeg not as an external process, but via libav, programmed in an integrated right into the APP, instead of calling a sub-process. Same wish here with youtube downloader, which is also an external program. (yt-dlp)

      Its pretty easy to use, follow the instructions onscreen basically.

      • if you want to download a karaoke playback from YouTube, just paste the URL and press FETCH
      • When a playback is loaded, Qt6 will preview the video and the SING button becomes available.
      • This will force you into a dialog to choose the correct audio input source for the session and after that, recording starts, indicated by the RED circle.
      • Anytime, when you're done, just press FINISH and you will be prompted to preview the vocals-only, without any effect.
      • In this dialog you are able to adjust the volume for the final mix.
      • By clicking render, ffmpeg is invoked and the coolest progress bar ever made on earth will indicate FFMpeg render progress! YEAH!
      • and after rendering it will preview the final mix; you can RENDER AGAIN by pressing the button, if you are not satisfied with the volume adjustment. You can adjust to 0 - 100% and up to 500%; less than 100% reduces volume while values higher than 100% amplifies.

      wakka-logo.png

      And now i'm very sorry for posting this, but i must show an example lol
      god have mercy
      tks guys

      link text
      https://gu.pro.br/seven/

      Requirements

      To build and run this application, ensure you have the following:

      C++17 or later
      Qt6 (Qt Multimedia module)
      FFmpeg binary (for video/audio mixing and rendering)
      yt-dlp binary (for downloading YouTube videos)
      gStreamer is necessary for the vocals-preview dialog

      Install LV2 plugin for AutoTune
      https://x42-plugins.com/x42/x42-autotune

      Thank you for having FUN!

      https://github.com/guprobr/WakkaQt

      posted in General Discussion
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Reintegrate projectM Visualizer

      @Starberry , @kblaschke

      That's something I'd really like to happen so I'm on it
      the logic behind my promise is a little fuzzy: Give me a little bit of time.... since bits are just one's or zero's, "a little bit" is quite controversial.. LoL 🍕

      anyway

      let's do this ! 💨

      posted in Development
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Reintegrate projectM Visualizer

      I had success starting to display stuff with v4 using QOpenGLWindow in a separate, smaller program. Soon I'll upload the code, I just need to adjust some things like resize and OpenGL context. I've used as ConsumeBuffer the pulseaudio capture code. I just need to adjust some stuff i think to make it better, but i got so excited about a positive display in v4 that i wanted to share ASAP

      LoooooooooooooooooooooooooooL!

      PS: still, several GL error 1282 in the majority of presets tested.

      Screenshot from 2024-07-24 09-19-42.png

      while some actually works ❤

      Screenshot from 2024-07-24 10-07-52.png

      posted in Development
      Gustavo L ConteG
      Gustavo L Conte

    Latest posts made by Gustavo L Conte

    • RE: Strawberry doesn't see new files

      @scubaboyc compare the fields of metadata of a working file with a problematic one. I believe there's a specific field missing thats part of the SQL constraint

      posted in Technical Help
      Gustavo L ConteG
      Gustavo L Conte
    • RE: External User commands

      To integrate user-defined commands into Strawberry Music Player without requiring programming changes to its code, we can leverage UNIX concepts like shell scripting, command-line utilities, and inter-process communication.

      Tools like zenity can be useful for creating a GUI

      #!/bin/bash
      
      # Define actions
      ACTION=$(zenity --list --title="Strawberry Actions" \
          --column="Action" --height=300 \
          "Check Integrity" \
          "Normalize Volume (ReplayGain)" \
          "Open in Editor" \
          "Move Files" \
          "Display Spectrogram" \
          "Query Database" \
          "Cancel")
      
      case $ACTION in
          "Check Integrity")
              echo "Checking integrity of files..."
              # Implement your integrity check command here
              ;;
          "Normalize Volume (ReplayGain)")
              echo "Normalizing volume..."
              # Add replaygain command here
              ;;
          "Open in Editor")
              echo "Opening files in editor..."
              # Example: open the currently selected file in a text editor
              xdg-open "$CURRENT_FILE"
              ;;
          "Move Files")
              echo "Moving files..."
              # Example: mv selected files to another directory
              mv "$CURRENT_FILE" /path/to/destination/
              ;;
          "Display Spectrogram")
              echo "Generating spectrogram..."
              # Example: display spectrogram for current track
              sox "$CURRENT_FILE" -n spectrogram
              ;;
          "Query Database")
              echo "Querying database..."
              # Custom query logic here
              ;;
          *)
              echo "Cancelled."
              ;;
      esac
      

      Integrate with Strawberry Use Strawberry's command-line options to pass information about the current track or playlist. Strawberry supports commands like:

      --playuri <uri>: Play a specific track.
      --stop: Stop playback.
      --next: Play the next track.

      Combine this with environment variables to pass the currently playing track:

      CURRENT_FILE=$(strawberry --playuri | awk '{print $1}')
      

      Create a Keybinding Use a global hotkey (e.g., via your desktop environment or a tool like xbindkeys) to trigger the script. This avoids modifying Strawberry itself.

      Share Scripts Create a shared directory (e.g., ~/.strawberry-scripts) where users can place their custom commands. Your main script could dynamically load commands from this directory.

      Benefits

      • MOSTLY No coding changes to Strawberry itself.
      • Highly flexible: users can define their commands.
      • Simple integration using existing UNIX tools.
      • Community-friendly: users can share scripts.

      EDIT> It just occured to me that this approach would not be good for Windows users, shucks

      posted in Feature Suggestions
      Gustavo L ConteG
      Gustavo L Conte
    • What about: Captchas on the forum

      We will, we will CAPTCHAs
      Sing it
      We will, we will CAPTCHAs
      Everybody
      We will, we will CAPTCHAs
      Hmm
      We will, we will CAPTCHAs
      Alright
      😛

      posted in Feature Suggestions
      Gustavo L ConteG
      Gustavo L Conte
    • RE: WakkaQt - a Karaoke recorder written in C++ and Qt6

      Just passing by to say that since last month

      WakkaQt gone v1.0!

      WakkaQt is a multiplatform karaoke application built with C++ and Qt6, designed to record vocals over a video/audio track and mix them into a rendered file.

      • This app features webcam recording,
      • YouTube video downloading,
      • real-time sound visualization,
      • and post-recording video rendering with FFmpeg.
      • It automatically does some mastering on the vocal tracks.
      • It also has a custom AutoTuner class I programmed called VocalEnhancer that provides slight pitch shift/correction and formant preservation.
      more info here:

      https://gu.pro.br/wakkaqt/

      Merry christmas ppl

      posted in General Discussion
      Gustavo L ConteG
      Gustavo L Conte
    • RE: QApplicationPrivate::notify_helper crash

      @leo said in strawberry version 1.2.2 crashing:

      ii libqt6widgets6:amd64 6.7.2+dfsg-4 amd64 Qt 6 widgets module

      Hmm Qt 6.7
      I use here on ubuntu 24.10 Qt 6.6.2

      When I have time will try compiling here strawberry against 6.7.2, to see if there are any issues.

      Meanwhile keep us informed of anything

      tks

      posted in Technical Help
      Gustavo L ConteG
      Gustavo L Conte
    • RE: QApplicationPrivate::notify_helper crash

      Hi Leo,

      The issue appears to be a segmentation fault caused by the premature deletion of an object, likely within the Qt6 event handling system. Jonas is correct that the backtrace doesn't clearly indicate the exact problem, and we need to take some steps to diagnose and potentially resolve the issue:

      1. Gather More Information
        Crash Timing: Does the crash occur during specific actions (e.g., changing songs, idle state, playlist interactions)?
        Playback Context: Are there any specific file types or codecs involved when the crash happens?
        Reproducibility: Can you reliably reproduce the crash? If yes, describe the steps.

      2. System and Package Details
        You mentioned you are using the Liquorix kernel. Did you install Strawberry from a package (e.g., a Debian/Ubuntu .deb) or build it from source? If from a package, specify its source.

      Check for library mismatches:

      Run

      ldd $(which strawberry)
      

      (to see if any library paths point to unexpected or mismatched versions)

      1. Check Dependencies
        Ensure that all the required dependencies, particularly libQt6Core and libQt6Widgets, are consistent with the Strawberry version. Use:
      dpkg -l | grep qt6
      

      (to ensure they match the versions expected by Strawberry 1.2.2)

      Workaround Suggestions

      Switch to a Stable Kernel: Since you're on Liquorix, consider trying the default kernel of your distribution to rule out kernel-specific issues.
      Downgrade Strawberry: Temporarily revert to the previous version if stability is critical while investigating further:

      sudo apt install strawberry=1.2.1
      
      posted in Technical Help
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Reintegrate projectM Visualizer

      @jonas I would not say that I completely gave up, but I just started a new position in a company so I lost that whole free time to mess with this particular thing

      I went making https://github.com/guprobr/WakkaQt instead to learn a bit more Qt before resuming this task
      The last ideas we discussed, I never tried... but the last post on projectM made me feel second toughts on the viability of the idea.... anyway, i want to resume this task someday I don't think we should give up but certainly something is missing in the backend inner parts of how Qt works with OpenGL and how projectM works with OpenGL, as it was discussed on the thread on github.

      But the first thing i would do is trying with latest Qt LTS, before anything.
      Second thing, to try with the same version on Windows!
      We have to figure where the problem is. Obviously its a Qt issue, but what made me stop working on it was when SDL window version showed the same issues. That was very disappointing.

      PS: sorry to take so long to answer, I just saw this today

      posted in Development
      Gustavo L ConteG
      Gustavo L Conte
    • Notable Improvement in Memory Management

      Lately I have noticed a much better memory management in the program as a whole. I'm used to long hours even days with a same session opened, and I can assure, not in a objective way, but by actually noticing, that memory consumption and management has improved big time.

      • Use own thread for lyrics parsing -> this surely fixed something regarding to that

      I don't remember other commits, but the cover/context ones surely made a huge benefit.

      So here's my cheers for that, we don't need to post just trouble here but its good to recognize when things improve, its a lot of effort from Jonas to keep this a stable project with so many features to deal with at the same time. Strawberry RuleS!

      posted in Development
      Gustavo L ConteG
      Gustavo L Conte
    • WakkaQt - a Karaoke recorder written in C++ and Qt6

      This software is currently in Alpha stage for developers to test. Help requested: for Windows and MacOS tests. NOTE: gStreamer is mandatory on all platforms.

      WakkaQt - Karaoke App

      WakkaQt is a karaoke application built with C++ and Qt6, designed to record vocals over a video/audio track and mix them into a rendered file.
      This app features webcam recording, YouTube video downloading, real-time sound visualization, and post-recording video rendering with FFmpeg, also it uses an open-source Auto Tune algorithm called XC42, by Gareus, featuring automatic masterization of the final track with noise reduction, normalization, compression, etc.
      You can adjust the volume of the vocals before rendering and you can render how many times you want until you are satisfied with the final mix.

      It records audio only too, but a webcam is still mandatory.
      You can use different input audio sources than the webcam, but I still need to program a method to choose different webcams, if the user had multiple webcams.
      In the future I believe I'm going to improve masterization, autotune and add some optional effects to audio and video.
      Also intend to improve the sync method of video, vocals and playback, I'm not satisfied with it since I could not test in several different platforms. as a far feature I intend to use FFMpeg not as an external process, but via libav, programmed in an integrated right into the APP, instead of calling a sub-process. Same wish here with youtube downloader, which is also an external program. (yt-dlp)

      Its pretty easy to use, follow the instructions onscreen basically.

      • if you want to download a karaoke playback from YouTube, just paste the URL and press FETCH
      • When a playback is loaded, Qt6 will preview the video and the SING button becomes available.
      • This will force you into a dialog to choose the correct audio input source for the session and after that, recording starts, indicated by the RED circle.
      • Anytime, when you're done, just press FINISH and you will be prompted to preview the vocals-only, without any effect.
      • In this dialog you are able to adjust the volume for the final mix.
      • By clicking render, ffmpeg is invoked and the coolest progress bar ever made on earth will indicate FFMpeg render progress! YEAH!
      • and after rendering it will preview the final mix; you can RENDER AGAIN by pressing the button, if you are not satisfied with the volume adjustment. You can adjust to 0 - 100% and up to 500%; less than 100% reduces volume while values higher than 100% amplifies.

      wakka-logo.png

      And now i'm very sorry for posting this, but i must show an example lol
      god have mercy
      tks guys

      link text
      https://gu.pro.br/seven/

      Requirements

      To build and run this application, ensure you have the following:

      C++17 or later
      Qt6 (Qt Multimedia module)
      FFmpeg binary (for video/audio mixing and rendering)
      yt-dlp binary (for downloading YouTube videos)
      gStreamer is necessary for the vocals-preview dialog

      Install LV2 plugin for AutoTune
      https://x42-plugins.com/x42/x42-autotune

      Thank you for having FUN!

      https://github.com/guprobr/WakkaQt

      posted in General Discussion
      Gustavo L ConteG
      Gustavo L Conte
    • RE: Strawberry & Easytag

      @ashley194 said in Strawberry & Easytag:

      a day ago

      Hi all, First off, I'm running Debian 12.6 "Bookworm" KDE DE.

      In Strawberry, every time I select 'Show in file browser' in the context menu it opens up Easytag instead of the Dolphin file manager!

      Open a terminal.
      Execute

      xdg-open .
      

      to see if it opens Dolphin. If not, you might need to fix the association. Sometimes xdg-open might be pointing to the wrong application. If xdg-open is opening files with the wrong application, you can fix this by adjusting your MIME type associations or setting the correct default application for handling specific types of files.

      EXAMPLES

      For Directories (typically handled by file managers like Dolphin):

      xdg-mime default dolphin.desktop inode/directory
      

      or, i.e. For Text Files:

      xdg-mime default kate.desktop text/plain
      

      or, For PDF Files:

      xdg-mime default okular.desktop application/pdf
      

      the query mistekko sent is very useful to debug which default application is set for opening folders, which is the case. The first command I sent is useful to actually test if the problem lies in Strawberry or system-wide.

      posted in Technical Help
      Gustavo L ConteG
      Gustavo L Conte