How to turn your 32bit notebook into a Steinway grand piano.

Forum Forums General Software How to turn your 32bit notebook into a Steinway grand piano.

  • This topic has 10 replies, 6 voices, and was last updated Nov 3-11:34 pm by olsztyn.
Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #91928
    Member
    Robin

      What you can do with most recent antiX 22 on an 18 years old 32 bit notebook.

      Part 1: How to turn your so called “deprecated” device into a Steinway grand piano.

      It’s about sound here. About high quality sound, not about some rattling or tinny squawk you might expect when reading 32 bit. It’s about near studio quality synthetisation of sheet music scores using your home equipment.

      I’m not going to run a realtime kernel for this, since this would have some drawbacks in everyday usage oft the notebook, while it improves the precision of sound processing. The programs work fine also without RT, at least when we are not talking about true studio quality output (which would require professional sound fonts anyway).
      No need to have pulseaudio installed for this, it works perfectly fine on plain alsa (but you can use it if you prefer, and if your system has the power to run pulse without bricking)

      First step: Connect the audio “line out” plug of your notebook to your home stereo amplifier equipment. If you have good quality speakers connected to it, you’ll perceive a true Steinway grand piano you can play on in your living room. But you might use earphones of good quality as well in order not to disturb the neighbours, if they are not used to hearing you playing piano through the walls…

      sudo apt-get install qsynth fluidsynth libdrumstick-rt-backends vmpk frescobaldi lilypond lilypond-fonts lilypond-data pmidi

      Then download e.g. the file “Nice-Steinway-v3.9 (204mb)” from soundfonts4u (ok, that’s a google link, I know.)

      Save it to /usr/share/sounds/sf2 system folder. Put all soundfont files you like to try there. (On an antiX live system or in antiX frugal install you’ll need to remaster, so your memory isn’t filled up by this as long it isn’t actually loaded by fluidsynth.

      By trying different soundfonts you can compare how a piece sounds differently when played on the different pianos. (This is why great pianists select their instrument when concerting, from a large collection available in the big concert halls usually, these get even trimmed and specially prepared by piano tuner or piano technician to meet precisely the artists needs before each concert.)

      Start qsynth from the “antiX → programs → media” menu first.

      Press “Configuration” button. From the Config menu for the first sound module you are going to create now, activate in the tab “midi” the Checkbox “Activate Midi input”, and select “alsa_seq” for driver. Default channels setting to “16” is fine for now, you might want to adjust this according to your needs later. Midi bank settings: “gm”. Midi client name ID (ALSA/CoreMidi): “qsynth”.
      Configuration of sound module: MIDI

      From tab “Audio” select

      Audiodriver: alsa
      Resolution : 16bits
      Samplingrate: 44100
      Buffersize: 64
      Buffers: 2
      Audiochannels: 2
      Audiogroups: 1
      Polyphonie: 256

      Configuration of sound module: Audio

      Again, you can adjust later to what you like best, e.g. a Sampling rate of “48000” or resolution “float”.

      In tab “Soundfonts” click on the button “open”. Select the downloaded soundfont. You can add multiple soundfonts here and change their sort order of usage, but please be aware these are all loaded into RAM now. So if you have not really much RAM installed, make sure not to load more than a single soundfont at a time. Also make sure the font doesn’t exceed your installed memory, then you’ll get into trouble…

      Configuration of sound module: Soundfonts

      Accept all your changes by clicking “OK”.
      Don’t touch anything in the “Settings” tab.

      In the qsynth main window deactivate “Corus”, it doesn’t make any sense for Piano solo. But you can decide whether you want to activate “Hall” or not, and play a bit with its settings. Adjust master amplification to what you need.

      Now keep this qsynth window open (you might minimise it if you like), while setting up the piano keyboard.

      Start “VMPK” from the “antiX → Programs → Media“ menu.

      It will probably not stay open, if you have not installed pulseaudio. If this happens, you’ll need to apply a manual workaround to allow it coming up:
      Walk in zzzFM into the config folder of vmpk in your home folder, e.g. “/home/demo/.config/vmpk.sourceforge.net” and open the file “Keyboard.conf” either with geany or with leafpad. Enter the following lines right at the beginning of this file, above the existing entries:

      [Connections]
      AdvancedEnabled=false
      InEnabled=false
      InPort=
      InputDriver=ALSA
      OutEnabled=false
      OmniEnabled=false
      OutPort=
      OutputDriver=ALSA
      ThruEnabled=false

      Save the file and close it.
      Then restart VMPK from the “antiX → Programs → media” menu.

      This time it should come up properly even without pulseaudio present, on plain alsa. It was set up poorly by the developers or maintainers only, so you can’t even reach the GUI to fix the settings when pulse is not present. Funny thing.
      It will consume way less system load when running on plain alsa, so it is feasible even on old 32bit hardware. On my 32bit notebook the fluidsynth/qsynth process consumes around 15 to 20% CPU when playing, and the VMPK or “Frescobaldi” process another 5 to 30% (depending on complexity of score), which makes not more than something between 20 and 60% CPU load when processing and playing sound directly from scores in a really fine sound quality, stereo.

      Form the VMPK Menu “Edit” open “MIDI settings”.
      Uncheck “MIDI input”
      Set MIDI-Out Driver to “ALSA”.
      Check “Show Advanced connections”.
      From “Connection of MIDI-output” select “FLUID-Synth (qsynth):0”
      Accept by clicking “OK”.

      VMPK MIDI configuration

      Again from the “Settings” menu open “Settings”,

      Set Number of keys to 88,
      First Key: A
      Key assignment: Click "open" button and choose your language.
      Check "Activate Play from keyboard"
      Check "Activate Play with mouse"
      (And if you have a touchscreen you can instead activate Play on touchscreen.)

      Keep all the other settings unchanged as the defaults.
      Accept by clicking “OK”.

      After this the main Virtual MIDI Piano Keyboard window should look like the next screenshot, it should show “Acoustic Grand Piano” in “Program”, and “General MIDI” in “Bank”. Possibly you’ll need to adjust its window size a bit by stretching at its borders so the keys have a reasonable size.

      Now you are done, ready for a first soundcheck:
      Click on one of the keys, or strike over them whit pressed left mouse button.
      You should hear the warm and brilliant sound of this grand Piano, which soundfont you have chosen.

      Qsynth and VMPK running on antiX 22

      To get an impression how the 32bit computed grand piano sounds like when playing real masterpieces, download some of these, which work great for testing, from Midisheetmusic.

      You can either directly play them in pmidi on commandline or import them into Frescobaldi to see the scores as well. pmidi has the drawback you can’t regulate its speed, so let’s proceed directly with Frescobaldi instead.

      From menu “antiX → Programs → Media” open “Frescobaldi” now. You don’t need to close VMPK before, you can use them together. Qsynth window must stay open, either minimised or in background.
      From Frescobaldi’s menu “File” select “Import/Export → MIDI import”.
      Select one of the MIDI files you have downloaded from the link above. Let midi2ly import the file by clicking the respective button. Everything should happen automatically, observe the lower left corner of Frescobaldi window to see the progress. You’ll have the score on the right side, and on the upper left corner you’ll see a player. Click on “Play” simply to listen to the score displayed. The sound is generated directly from this sheet music now, using the sound of the grand piano you’ve installed on your PC.
      For some pieces you need to adjust the speed. Here e.g. Field’s “Nocturne in B flat” plays way to slow, you need to set the speed to mostly 200% using the vertical regulator at the right edge of the player section of Frescobaldi, to get it right. Other pieces play way to fast, you need to reduce speed. You can do it while it’s playing.

      Frescobaldi playing on antiX 22

      All this works fine in antX 22, without pulseaudio, on plain alsa. Probably it works fine with pulseaudio also, but I can’t check this, since pulseaudio bricks this notebook by excessive CPU load the very moment you start this service. So maybe somebody else might report about his findings in an antiX 22 with pulse installed.

      Btw, firefox and claws mail are running while trying and writing this in leafpad, making the needed screenshots with antiXscreenshot2, and Roger router is also running, waiting for an important incoming FAX message. antiX 22 on this notebook old as the hills won’t let me wait even a second for any task. Everything completely stable now, fast and fluid with the new nouveau driver. Simply great! I want to say thank you to all people who let this happen, Special thanks to anticapitalista for all the work he does for us in the background. And also to the people of nouveau, taking care even for old video cards to run absolutely fine again, after nvidia itself had mostly bricked this notebook by stopping driver updates already in buster. And finally many thanks to the creators of the brilliant free high quality soundfonts, it makes all the difference to the tinny sound of synthsised scores when using the default soundfonts from the repos.

      So have fun making music on your new Steinway grand piano!

      Best Regards
      Robin

      Windows is like a submarine. Open a window and serious problems will start.

      #91929
      Member
      PPC

        Damn!

        Now I’ve seen it all 🙂 Thanks for that (It could be handy for the musicians out there)

        Also

        pulseaudio bricks this notebook by excessive CPU load the very moment you start this service.

        What the hell? I can run it on my 64bits netbook just fine- could it be a 32bits problem?

        P.

        #91942
        Forum Admin
        anticapitalista

          Thanks @Robin – great post!

          I assume you are using the 5.19 Debian backports kernel that you have posted about.

          Philosophers have interpreted the world in many ways; the point is to change it.

          antiX with runit - leaner and meaner.

          #91952
          Member
          techore

            @Robin, very cool. Thank you for sharing.

            #91955
            Moderator
            christophe

              Excellent how-to & creative!! 🙂

              confirmed antiX frugaler, since 2019

              #92014
              Member
              Robin

                I assume you are using the 5.19 Debian backports kernel that you have posted about.

                Yes, still on this very kernel, it runs fine. Meanwhile even mostly elogind free, I’ve apt-purged elogind package without running into any issues. I say explicitely “mostly”, since when trying to remove libelogind0 as well, it would remove fluidsynth also, which I can’t let happen, since the alternative timidity wouldn’t run stable at all, producing 100% system load arbitrarily sometimes when trying to access it (whith the very same midi files which ran fine a minute before still), and timidity service needs to be killed and restarted then. So there is no way around fluidsynth.

                $ uname -r
                5.19.0-0.deb11.2-686-pae
                $ LANG=C sudo apt-get --simulate purge libelogind0
                Reading package lists... Done
                Building dependency tree... Done
                Reading state information... Done
                The following packages will be REMOVED:
                  fluidsynth* libelogind0*
                0 upgraded, 0 newly installed, 2 to remove and 2 not upgraded.
                Purg fluidsynth [2.1.7-1.1]
                Purg libelogind0 [246.10-3.0antix1]

                Windows is like a submarine. Open a window and serious problems will start.

                #92015
                Forum Admin
                anticapitalista

                  @Robin – here are nosystemd/elogind debs for fluidsynth

                  http://download.tuxfamily.org/antix/Testing/

                  Philosophers have interpreted the world in many ways; the point is to change it.

                  antiX with runit - leaner and meaner.

                  #92147
                  Member
                  Robin

                    Many thanks, @anticapitalista, for these! I’ve just purged the rest of elogind successfully from the system, and I don’t notice any trouble. Fluidsynth works properly, exactly the same as before.

                    $ sudo apt-get install './fluidsynth/fluidsynth_2.1.7-1.1.0nosystemd1_i386.deb' './fluidsynth/libfluidsynth2_2.1.7-1.1.0nosystemd1_i386.deb'
                    Paketlisten werden gelesen… Fertig
                    Abhängigkeitsbaum wird aufgebaut… Fertig
                    Statusinformationen werden eingelesen… Fertig
                    Hinweis: »fluidsynth« wird an Stelle von »./fluidsynth/fluidsynth_2.1.7-1.1.0nosystemd1_i386.deb« gewählt.
                    Hinweis: »libfluidsynth2« wird an Stelle von »./fluidsynth/libfluidsynth2_2.1.7-1.1.0nosystemd1_i386.deb« gewählt.
                    Die folgenden Pakete werden aktualisiert (Upgrade):
                      fluidsynth libfluidsynth2
                    2 aktualisiert, 0 neu installiert, 0 zu entfernen und 14 nicht aktualisiert.
                    Es müssen noch 0 B von 290 kB an Archiven heruntergeladen werden.
                    Nach dieser Operation werden 6.144 B Plattenplatz freigegeben.
                    Holen:1 ./fluidsynth/libfluidsynth2_2.1.7-1.1.0nosystemd1_i386.deb libfluidsynth2 i386 2.1.7-1.1.0nosystemd1 [234 kB]
                    Holen:2 ./fluidsynth/fluidsynth_2.1.7-1.1.0nosystemd1_i386.deb fluidsynth i386 2.1.7-1.1.0nosystemd1 [55,5 kB]
                    (Lese Datenbank ... 269163 Dateien und Verzeichnisse sind derzeit installiert.)
                    Vorbereitung zum Entpacken von .../libfluidsynth2_2.1.7-1.1.0nosystemd1_i386.deb ...
                    Entpacken von libfluidsynth2:i386 (2.1.7-1.1.0nosystemd1) über (2.1.7-1.1) ...
                    Vorbereitung zum Entpacken von .../fluidsynth_2.1.7-1.1.0nosystemd1_i386.deb ...
                    Entpacken von fluidsynth (2.1.7-1.1.0nosystemd1) über (2.1.7-1.1) ...
                    libfluidsynth2:i386 (2.1.7-1.1.0nosystemd1) wird eingerichtet ...
                    fluidsynth (2.1.7-1.1.0nosystemd1) wird eingerichtet ...
                    Trigger für man-db (2.9.4-2) werden verarbeitet ...
                    Trigger für libc-bin (2.31-13+deb11u5) werden verarbeitet ...
                    $ sudo apt-get purge libelogind0
                    Paketlisten werden gelesen… Fertig
                    Abhängigkeitsbaum wird aufgebaut… Fertig
                    Statusinformationen werden eingelesen… Fertig
                    Die folgenden Pakete werden ENTFERNT:
                      libelogind0*
                    0 aktualisiert, 0 neu installiert, 1 zu entfernen und 14 nicht aktualisiert.
                    Nach dieser Operation werden 800 kB Plattenplatz freigegeben.
                    Möchten Sie fortfahren? [J/n] j
                    (Lese Datenbank ... 269162 Dateien und Verzeichnisse sind derzeit installiert.)
                    Entfernen von libelogind0:i386 (246.10-3.0antix1) ...
                    Trigger für libc-bin (2.31-13+deb11u5) werden verarbeitet ...
                    

                    (Sorry, had forgotten to set LANG=C in front of the above commands so their output doesn’t show up in English language here, but they read: everything has gone perfectly fine. Didn’t update the remaining 14 available package upgrades on purpose the same time, in order to eliminate possible other sources of failure in case of unexpected problems would have occurred.)

                    
                    $ LANG=C apt-cache policy elogind libelogind0 systemd libsystemd0
                    elogind:
                      Installed: (none)
                      Candidate: 246.10-3.0antix1
                      Version table:
                         246.10-3.0antix1 500
                            500 http://ftp.halifax.rwth-aachen.de/mxlinux/packages/antix/bullseye bullseye/nosystemd i386 Packages
                         246.10-2.0antix4 500
                            500 http://ftp.halifax.rwth-aachen.de/mxlinux/packages/antix/bullseye bullseye/main i386 Packages
                         246.9.1-1+debian1 500
                            500 http://ftp.de.debian.org/debian bullseye/main i386 Packages
                    libelogind0:
                      Installed: (none)
                      Candidate: 246.10-3.0antix1
                      Version table:
                         246.10-3.0antix1 500
                            500 http://ftp.halifax.rwth-aachen.de/mxlinux/packages/antix/bullseye bullseye/nosystemd i386 Packages
                         246.10-2.0antix4 500
                            500 http://ftp.halifax.rwth-aachen.de/mxlinux/packages/antix/bullseye bullseye/main i386 Packages
                         246.9.1-1+debian1 500
                            500 http://ftp.de.debian.org/debian bullseye/main i386 Packages
                    systemd:
                      Installed: (none)
                      Candidate: (none)
                      Version table:
                         251.3-1~bpo11+1 -1
                            100 http://deb.debian.org/debian bullseye-backports/main i386 Packages
                         247.3-7+deb11u1 -1
                            500 http://ftp.de.debian.org/debian bullseye/main i386 Packages
                    libsystemd0:
                      Installed: (none)
                      Candidate: (none)
                      Version table:
                         251.3-1~bpo11+1 -1
                            100 http://deb.debian.org/debian bullseye-backports/main i386 Packages
                         247.3-7+deb11u1 -1
                            500 http://ftp.de.debian.org/debian bullseye/main i386 Packages
                         241.4+antix1 -1
                            500 http://ftp.halifax.rwth-aachen.de/mxlinux/packages/antix/bullseye bullseye/main i386 Packages
                    

                    Great work. Many thanks!

                    Best Regards
                    Robin

                    Windows is like a submarine. Open a window and serious problems will start.

                    #92250
                    Member
                    olsztyn

                      Am I seeing things? Just about half an hour ago I saw a second page of this thread, with another post from Robin where he further expanded on this accomplishment. That post included various pictures of musicians. Was that post deleted or this was just my imagination?
                      In any casse:
                      I have been closely following this thread and want to thank Robin and congratulate on such amazing accomplishment. I am not a musician myself, just a fan of classical music…

                      Live antiX Boot Options (Previously posted by Xecure):
                      http://antixlinuxfan.miraheze.org/wiki/Table_of_antiX_Boot_Parameters

                      #92252
                      Member
                      Robin

                        Hi olsztyn
                        🙂 It has been swallowed by the board software after adding some few lines only to its starting posting. Brian is working on it, trying to free it from wherever it is captured now.
                        If it can’t get restored for some reason, I’ll repost it in a new thread.

                        Interim-info:
                        Probably some server side misconfiguration deleted the posting (instead of rejecting the edit simply) while it grew to large after adding the last few letters to it in a very last edit I did. No problem at all.

                        UPDATE: The thread having been in an accident was restored by the board crew. Many thanks to the admins and mods involved! Here’s the new link: Part 2: How to turn your PC into a full symphony orchestra?

                        Windows is like a submarine. Open a window and serious problems will start.

                        #92253
                        Member
                        olsztyn

                          If it can’t get restored for some reason, I’ll repost it in a new thread.

                          Thank you Robin! This page contained a wealth of additional information. I am glad it will be recreated…

                          In general though:
                          If such post is actually published and short time after some crazy board content monitoring software decides to delete it, what does this mean and what criteria are being used? This is however a question to board administrators…

                          • This reply was modified 1 year, 6 months ago by olsztyn.
                          • This reply was modified 1 year, 6 months ago by olsztyn.

                          Live antiX Boot Options (Previously posted by Xecure):
                          http://antixlinuxfan.miraheze.org/wiki/Table_of_antiX_Boot_Parameters

                        Viewing 11 posts - 1 through 11 (of 11 total)
                        • You must be logged in to reply to this topic.