2022 our 25th year online!

Welcome to the Piano World Piano Forums
Over 3 million posts about pianos, digital pianos, and all types of keyboard instruments.
Over 100,000 members from around the world.
Join the World's Largest Community of Piano Lovers (it's free)
It's Fun to Play the Piano ... Please Pass It On!

SEARCH
Piano Forums & Piano World
(ad)
Who's Online Now
70 members (Carey, Bellyman, AlkansBookcase, accordeur, akse0435, Barry_Braksick, BadSanta, danbot3, 13 invisible), 1,830 guests, and 303 robots.
Key: Admin, Global Mod, Mod
Previous Thread
Next Thread
Print Thread
Hop To
Page 2 of 2 1 2
Joined: Feb 2019
Posts: 708
P
500 Post Club Member
Offline
500 Post Club Member
P
Joined: Feb 2019
Posts: 708
I am not that familiar with commonly used GUI audio software. I usually work with Python, in which this is trivially easy to do. But how to make this accessible for the average user? In principle it should be possible because a simple GUI library is included in Python, and I believe you can make an installer that includes python itself (although I haven't tried this myself). But would this be the easiest route?

Joined: Apr 2018
Posts: 9,824
9000 Post Club Member
Offline
9000 Post Club Member
Joined: Apr 2018
Posts: 9,824
Originally Posted by pianogabe
I am not that familiar with commonly used GUI audio software. I usually work with Python, in which this is trivially easy to do. But how to make this accessible for the average user? In principle it should be possible because a simple GUI library is included in Python, and I believe you can make an installer that includes python itself (although I haven't tried this myself). But would this be the easiest route?

The easiest route would be to give it a set of files: a.mp3, b.mp3, c.mp3, ..., z.mp3, and have it create (via something like "rmsnormalize a.mp3 b.mp3 c.mp3 ... z.mp3") a new set of files, a-norm.mp3, b-norm.mp3, c-norm.mp3, ..., z-norm.mp3, which are all appropriately adjusted. No other parameters are necessary if the rms amplitude for each file is set to the same maximum value for which none of the files clip. There is only one such value so the Python program can determine that and create all the files. Why don't you make that script and we can try it out on jamiecw's original 3 files and see if it does the thing we expect?


[Linked Image]
across the stone, deathless piano performances

"Discipline is more reliable than motivation." -by a contributor on Reddit r/piano
"Success is 10% inspiration, and 90% perspiration." -by some other wise person
"Pianoteq manages to keep it all together yet simultaneously also go in all directions; like a quantum particle entangled with an unknown and spooky parallel universe simply waiting to be discovered." -by Pete14
Joined: Feb 2019
Posts: 708
P
500 Post Club Member
Offline
500 Post Club Member
P
Joined: Feb 2019
Posts: 708
I am confident that I can write that in a small python script to show the principle. But there are a few caveats: 1) users would then need to have Python installed already, and ideally also the numerical computing library Numpy, 2) mp3 is a non-free format (at least it was, not sure about the status now), and its support in open source software such as Python is not ideal (would require installing additional packages). The latter can be solved by just requiring that people use PCM (WAV) format. But all in all it would require people to install a number of packages and work with a command line.

I had another idea. For my work I use Praat a lot ( http://www.praat.org ), which is scientific speech analysis/synthesis software. It is scriptable, and I already have an old script lying around that does rms equalization (including scaling to 0dB). I can have a look at that again, and modernize it. The advantage of Praat is that it is multi-platform, free, and has a GUI. For music audio users the interface and all the options may be a bit overwhelming, but for this purpose you just have to open a bunch of files and run a script.

Joined: Apr 2018
Posts: 9,824
9000 Post Club Member
Offline
9000 Post Club Member
Joined: Apr 2018
Posts: 9,824
Originally Posted by pianogabe
I am confident that I can write that in a small python script to show the principle. But there are a few caveats: 1) users would then need to have Python installed already, and ideally also the numerical computing library Numpy,

You should be able to do both using pyinstaller.

Originally Posted by pianogabe
2) mp3 is a non-free format (at least it was, not sure about the status now),

"MP3 technology became patent-free in the United States on 16 April 2017 when U.S. Patent 6,009,399, held by and administered by Technicolor, expired."

Quote
and its support in open source software such as Python is not ideal (would require installing additional packages). The latter can be solved by just requiring that people use PCM (WAV) format. But all in all it would require people to install a number of packages and work with a command line.

There is this thing and this also.

Quote
I had another idea. For my work I use Praat a lot ( http://www.praat.org ), which is scientific speech analysis/synthesis software. It is scriptable, and I already have an old script lying around that does rms equalization (including scaling to 0dB). I can have a look at that again, and modernize it. The advantage of Praat is that it is multi-platform, free, and has a GUI. For music audio users the interface and all the options may be a bit overwhelming, but for this purpose you just have to open a bunch of files and run a script.

Can it be packaged into a single executable like pyinstaller would do with python scripts? Because if it can, then it really doesn't matter the technology behind the executable.


[Linked Image]
across the stone, deathless piano performances

"Discipline is more reliable than motivation." -by a contributor on Reddit r/piano
"Success is 10% inspiration, and 90% perspiration." -by some other wise person
"Pianoteq manages to keep it all together yet simultaneously also go in all directions; like a quantum particle entangled with an unknown and spooky parallel universe simply waiting to be discovered." -by Pete14
Joined: Feb 2019
Posts: 708
P
500 Post Club Member
Offline
500 Post Club Member
P
Joined: Feb 2019
Posts: 708
Originally Posted by Tyrone Slothrop
Can it be packaged into a single executable like pyinstaller would do with python scripts? Because if it can, then it really doesn't matter the technology behind the executable.


Not that I know of. Praat is already one executable. But there would be a separate script (text) file. So you would have to open, Praat, then the script file, the the audiofiles you want converted and then click "run".

I have no experience with pyinstaller, but see that e.g. librosa and pysoundfile are not on the compatibility list (https://github.com/pyinstaller/pyinstaller/wiki/Supported-Packages), and these are libraries that do require non-python files. But it can't hurt to try. Perhaps it works.

I will be on holidays for the next two weeks, but see if I can try pyinstaller today.

Joined: Apr 2018
Posts: 9,824
9000 Post Club Member
Offline
9000 Post Club Member
Joined: Apr 2018
Posts: 9,824
Originally Posted by pianogabe
Originally Posted by Tyrone Slothrop
Can it be packaged into a single executable like pyinstaller would do with python scripts? Because if it can, then it really doesn't matter the technology behind the executable.


Not that I know of. Praat is already one executable. But there would be a separate script (text) file. So you would have to open, Praat, then the script file, the the audiofiles you want converted and then click "run".

I have no experience with pyinstaller, but see that e.g. librosa and pysoundfile are not on the compatibility list (https://github.com/pyinstaller/pyinstaller/wiki/Supported-Packages), and these are libraries that do require non-python files. But it can't hurt to try. Perhaps it works.

I will be on holidays for the next two weeks, but see if I can try pyinstaller today.

OK. If you run out of time, let me know because then I'll take a crack. Could use some little project to improve my Python skills.


[Linked Image]
across the stone, deathless piano performances

"Discipline is more reliable than motivation." -by a contributor on Reddit r/piano
"Success is 10% inspiration, and 90% perspiration." -by some other wise person
"Pianoteq manages to keep it all together yet simultaneously also go in all directions; like a quantum particle entangled with an unknown and spooky parallel universe simply waiting to be discovered." -by Pete14
Joined: Feb 2019
Posts: 708
P
500 Post Club Member
Offline
500 Post Club Member
P
Joined: Feb 2019
Posts: 708
pyinstaller does not work out of the box for me, if I import librosa or pysoundfile, or even just numpy. I am sure the latter should be fixable because it is supported, but alas, on Ubuntu, it does not work as is; it exits with errors. It does work if I just import the wave library (which is part of the standard library) so wav files could be read and written. However without numpy things will be cumbersome.

I will see if I get it to work in Praat. You could have a look if on your machine if you can get an executable from python using pyinstaller. Just a file with two lines for testing:

import numpy
print(numpy.__version__)

This would be enough to see if the pyinstaller can work. I am sure the actual Python code to do the equalization is easy.

Joined: Feb 2016
Posts: 2,977
2000 Post Club Member
Offline
2000 Post Club Member
Joined: Feb 2016
Posts: 2,977
You could also use ffmpeg I think, and perhaps a windows batch file.

https://trac.ffmpeg.org/wiki/AudioVolume

There is also ffmpeg-normalize for Python.

https://github.com/slhck/ffmpeg-normalize


♯ ♮ ♭ ø ° Δ ♩ ♪ ♫ ♬
Yamaha C3X
YouTube
[Linked Image]

Joined: Feb 2019
Posts: 708
P
500 Post Club Member
Offline
500 Post Club Member
P
Joined: Feb 2019
Posts: 708
Originally Posted by bSharp(C)yclist

There is also ffmpeg-normalize for Python.
https://github.com/slhck/ffmpeg-normalize


Very interesting! This is still command line based but it seems to install fine if you follow the instructions, and is easy to use, once installed.

Joined: Apr 2018
Posts: 9,824
9000 Post Club Member
Offline
9000 Post Club Member
Joined: Apr 2018
Posts: 9,824
Originally Posted by pianogabe
Originally Posted by bSharp(C)yclist

There is also ffmpeg-normalize for Python.
https://github.com/slhck/ffmpeg-normalize


Very interesting! This is still command line based but it seems to install fine if you follow the instructions, and is easy to use, once installed.

So, does this mean we are about to have some friendly competition?

I'd open an Eclipse instance except that those who program Python in Eclipse have "forgotten the face of their father."


[Linked Image]
across the stone, deathless piano performances

"Discipline is more reliable than motivation." -by a contributor on Reddit r/piano
"Success is 10% inspiration, and 90% perspiration." -by some other wise person
"Pianoteq manages to keep it all together yet simultaneously also go in all directions; like a quantum particle entangled with an unknown and spooky parallel universe simply waiting to be discovered." -by Pete14
Joined: Apr 2019
Posts: 2,067
A
2000 Post Club Member
Offline
2000 Post Club Member
A
Joined: Apr 2019
Posts: 2,067
You didn't specify if you have played them individually or used the same midi file for all of them.

#3 is the best in my opinion. It's either played better or the VST has better sensitivity range. There is more expression in it and the altitudes in the dropbox depict this as well.

Joined: Feb 2019
Posts: 708
P
500 Post Club Member
Offline
500 Post Club Member
P
Joined: Feb 2019
Posts: 708
Originally Posted by Tyrone Slothrop

So, does this mean we are about to have some friendly competition?

I'd open an Eclipse instance except that those who program Python in Eclipse have "forgotten the face of their father."


laugh

I will leave tomorrow morning early, so won't have time to produce something useful in the next two weeks. I haven't tried it but the ffmpeg-normalize package looks very good (and has even more advanced options than rms normalize). I guess an improvement would be to implement something that has a graphical user interface. Praat, or Audacity would be nice. I do not know if the latter has sufficiently functional scripting options.

Joined: Jun 2019
Posts: 21
Full Member
Offline
Full Member
Joined: Jun 2019
Posts: 21
I've always wondered why someone hasn't made a piano MIDI "Pangram" that covers just about every note played using every technique possible. Then you could just feed that MIDI into any VST of your choice and see how the VST recreates it (to see which VSTs fail at recreating various techniques and what not).

Joined: Oct 2013
Posts: 3,868
3000 Post Club Member
Offline
3000 Post Club Member
Joined: Oct 2013
Posts: 3,868
What do you mean by “every technique” possible ? Some VST have already a staccato vs. non staccato articulation. If you add the velocity axis with a phrasing axis (staccato, normal, legato, tenuto...) 1/ you will have more samples to record and store, and 2/ no way to communicate efficiently the second axis value from the controller to the VST.


http://www.sinerj.org/
http://humeur-synthe.sinerj.org/
Yamaha N1X, Bechstein Digital Grand, Garritan CFX, Ivory II pianos, Galaxy pianos, EWQL Pianos, Native-Instrument The Definitive Piano Collection, Soniccouture Hammersmith, Truekeys, Pianoteq
Joined: Jun 2019
Posts: 21
Full Member
Offline
Full Member
Joined: Jun 2019
Posts: 21
Originally Posted by Frédéric L
What do you mean by “every technique” possible ? Some VST have already a staccato vs. non staccato articulation. If you add the velocity axis with a phrasing axis (staccato, normal, legato, tenuto...) 1/ you will have more samples to record and store, and 2/ no way to communicate efficiently the second axis value from the controller to the VST.


Yeah I was just referring to how some demos I've seen people post are almost all staccato or what not. A good "template" would have examples of all forms of articulation just to show how the VST handles short or sustained notes and various velocities.

(linking for general posterity, obviously you know what these are)

https://en.wikipedia.org/wiki/Articulation_(music)

Last edited by Maconi; 08/17/19 08:13 PM.
Joined: Apr 2018
Posts: 9,824
9000 Post Club Member
Offline
9000 Post Club Member
Joined: Apr 2018
Posts: 9,824
In case people hadn't seen it, a new PW member posted a new VST comparison video in another PW subforum:



[Linked Image]
across the stone, deathless piano performances

"Discipline is more reliable than motivation." -by a contributor on Reddit r/piano
"Success is 10% inspiration, and 90% perspiration." -by some other wise person
"Pianoteq manages to keep it all together yet simultaneously also go in all directions; like a quantum particle entangled with an unknown and spooky parallel universe simply waiting to be discovered." -by Pete14
Page 2 of 2 1 2

Link Copied to Clipboard
What's Hot!!
Piano World Has Been Sold!
--------------------
Forums RULES, Terms of Service & HELP
(updated 06/06/2022)
---------------------
Posting Pictures on the Forums
(ad)
(ad)
New Topics - Multiple Forums
New DP for a 10 year old
by peelaaa - 04/16/24 02:47 PM
Estonia 1990
by Iberia - 04/16/24 11:01 AM
Very Cheap Piano?
by Tweedpipe - 04/16/24 10:13 AM
Practical Meaning of SMP
by rneedle - 04/16/24 09:57 AM
Country style lessons
by Stephen_James - 04/16/24 06:04 AM
Forum Statistics
Forums43
Topics223,390
Posts3,349,260
Members111,633
Most Online15,252
Mar 21st, 2010

Our Piano Related Classified Ads
| Dealers | Tuners | Lessons | Movers | Restorations |

Advertise on Piano World
| Piano World | PianoSupplies.com | Advertise on Piano World |
| |Contact | Privacy | Legal | About Us | Site Map


Copyright © VerticalScope Inc. All Rights Reserved.
No part of this site may be reproduced without prior written permission
Powered by UBB.threads™ PHP Forum Software 7.7.5
When you purchase through links on our site, we may earn an affiliate commission, which supports our community.