PianoPlayer - Automatic fingering generator for piano scores

Overview

PianoPlayer

Codacy Badge Downloads lics DOI

Automatic piano fingering generator.
Find the optimal fingering combination to play a piano score. Optionally visualize it in 3D with vedo.

Download and Install:

pip install pianoplayer

to enable sound you may need to:

sudo apt install libasound2-dev
pip install simpleaudio

Installing without 3D rendering

To only install the core functionality and skip everything else, use the following:

pip install music21
pip install --no-deps pianoplayer

To visualize the output annotated score install the latest musescore, or any other renderer of MusicXML files.

Windows 10 users can place this file: pianoplayer.bat on their desktop (edit the path to your local anaconda or python installation). Check out this link in case of installation problems.

CLI Usage:

Example command line from terminal:
pianoplayer scores/bach_invention4.xml --verbose -n10 -rvzm
will find the right hand fingering for the first 10 measures, pop up a 3D rendering window and invoke musescore.

The output is saved as a MusicXML file with name output.xml.

pianoplayer         # if no argument is given a GUI will pop up (on windows try `python pianoplayer.py`)
# Or
pianoplayer [-h] [-o] [-n] [-s] [-d] [-k] [-rbeam] [-lbeam] [-q] [-m] [-v] [--vedo-speed]
            [-z] [-l] [-r] [-XXS] [-XS] [-S] [-M] [-L] [-XL] [-XXL]
            filename
# Valid file formats: MusicXML, musescore, midi (.xml, .mscz, .mscx, .mid)
#
# Optional arguments:
#   -h, --help            show this help message and exit
#   -o , --outputfile     Annotated output xml file name
#   -n , --n-measures     [100] Number of score measures to scan
#   -s , --start-measure  Start from measure number [1]
#   -d , --depth          [auto] Depth of combinatorial search, [2-9]
#   -rbeam                [0] Specify Right Hand beam number
#   -lbeam                [1] Specify Left Hand beam number
#   --quiet               Switch off verbosity
#   -m, --musescore       Open output in musescore after processing
#   -b, --below-beam      Show fingering numbers below beam line
#   -v, --with-vedo       Play 3D scene after processing
#   -z, --sound-off       Disable sound
#   -l, --left-only       Fingering for left hand only
#   -r, --right-only      Fingering for right hand only
#   -XXS, --hand-size-XXS Set hand size to XXS
#   -XS, --hand-size-XS   Set hand size to XS
#   -S, --hand-size-S     Set hand size to S
#   -M, --hand-size-M     Set hand size to M
#   -L, --hand-size-L     Set hand size to L
#   -XL, --hand-size-XL   Set hand size to XL
#   -XXL, --hand-size-XXL Set hand size to XXL

GUI Usage:

Just type pianoplayer in a terminal (or double click the pianoplayer.bat file), then:

newgui

  • press Import Score (valid formats: musescore, MusicXML, MIDI, PIG)
  • press GENERATE (output.xml is written)
  • press Musescore to visualize the annotated score
  • press 3D Player to show the animation (Press Esc to quit the application)

Example output, as displayed in musescore:

(If fingering numbers are not visible enough try -b option.)

bachinv4

pianoplayer3d

How the algorithm works:

The algorithm minimizes the fingers speed needed to play a sequence of notes or chords by searching through feasible combinations of fingerings.

One possible advantage of this algorithm over similar ones is that it is completely dynamic, which means that it takes into account the physical position and speed of fingers while moving on the keyboard and the duration of each played note. It is not based on a static look-up table of likely or unlikely combinations of fingerings.

Fingering a piano score can vary a lot from individual to individual, therefore there is not such a thing as a "best" choice for fingering. This algorithm is meant to suggest a fingering combination which is "optimal" in the sense that it minimizes the effort of the hand avoiding unnecessary movements.

Parameters you can change:

  • Your hand size (from 'XXS' to 'XXL') which sets the relaxed distance between thumb and pinkie.
  • The beam number associated to the right hand is by default nr.0 (nr.1 for left hand). You can change it with -rbeam and -lbeam command line options.
  • Depth of combinatorial search, from 3 up to 9 notes ahead of the currently playing note. By default the algorithm selects this number automatically based on the duration of the notes to be played.

Limitations

  • Some specific fingering combinations, considered too unlikely in the first place, are excluded from the search (e.g. the 3rd finger crossing the 4th).
  • Hands are always assumed independent from each other.
  • In the 3D representation with sounds enabled, notes are played one after the other (no chords), so the tempo within the measure is not always respected.
  • Small notes/ornaments are ignored.
Comments
  • cannot find vtkplotter package

    cannot find vtkplotter package

    I receive the following error on Windows 10 and Ubuntu 18.04 as well after I import a score and click on 3D player in the GUI.

    VirtualKeyboard: cannot find vtkplotter package. Not installed?
    Try:
    (sudo) pip install --upgrade vtkplotter
    

    Any idea?

    bug 
    opened by kohanyirobert 10
  • Problem installing

    Problem installing

    Hello! The last month, i've been trying to install this program, but i just can't seem to do it. I never worked with python before, but i managed to get pip install working now. When i put in the pip install --upgrade pianoplayer , it says :

    Collecting pianoplayer Using cached pianoplayer-2.1.0.tar.gz (1.2 MB) Collecting music21 Using cached music21-5.7.2.tar.gz (18.5 MB) Collecting vtkplotter Using cached vtkplotter-2020.3.1.tar.gz (18.4 MB) ERROR: Could not find a version that satisfies the requirement vtk (from vtkplotter->pianoplayer) (from versions: none) ERROR: No matching distribution found for vtk (from vtkplotter->pianoplayer)

    when i then try to open the batch file, it just flashes and dissapears. Could someone please help me out? Thank you! Regards, Brend

    opened by BrendRR 10
  • Suggestion to UI

    Suggestion to UI

    Instead of writing fingering numbers as lyrics, could you consider using MuseScore's fingering notation? I think it would be more ergonomic and aesthetically more pleasing.

    opened by mhoangvslev 8
  • pianoplayer) (from versions: none) ERROR: No matching distribution found for vtk (from vtkplotter->pianoplayer)"">

    " Using cached vtkplotter-2020.3.1.tar.gz (18.4 MB) ERROR: Could not find a version that satisfies the requirement vtk (from vtkplotter->pianoplayer) (from versions: none) ERROR: No matching distribution found for vtk (from vtkplotter->pianoplayer)"

    Hi, I'm trying to install this for windows 10 and I get this error when I enter "pip install --upgrade pianoplayer" what should I do? I'm using python 3.8.5 if that matters.

    opened by gabezilla52 6
  • AttributeError: 'Instrument' object has no attribute 'tie'

    AttributeError: 'Instrument' object has no attribute 'tie'

    I'm getting the following error when running pianoplayer "xy.mid" --verbose -n10 -rvz (tested on Windows with Python 3.8 & 3.7, and on Manjaro python 3.8)

    Traceback (most recent call last):
      File "/home/anton/.local/bin/pianoplayer", line 195, in <module>
        rh.noteseq = reader(sf, beam=args.rbeam)
      File "/home/anton/.local/lib/python3.8/site-packages/pianoplayer/scorereader.py", line 51, in reader
        if n.tie and (n.tie.type=='continue' or n.tie.type=='stop'): continue
    AttributeError: 'Instrument' object has no attribute 'tie'
    
    opened by IngoOutgo 4
  • Errors package

    Errors package

    I downloaded the 2000 most popular piano sheet music from Musescore, as mxl.

    I ran the lastest pip version of pianoplayer on all of the files (on XXS setting), and started getting errors, like https://github.com/marcomusy/pianoplayer/issues/21 and others (python errors).

    Here I share an archive of all of the files that had execution errors (148 out of 2000), in the hope this helps you make this system more robust.

    File names are constructed from musescore ID, and title, so you can always trace back to musescore.com in order to see the file.

    errors.zip

    opened by AmitMY 4
  • Hand size keeps defaulting to M, MuseScore3 not showing fingering

    Hand size keeps defaulting to M, MuseScore3 not showing fingering

    Running this on Windows, so not sure how much of it has to do with this!

    Whenever I try to run it from either the GUI or command line using -S, -XS, etc, it defaults to M. It also seems to run through it twice (e.g., I see 'Your hand span set to size-M which is 17.22 cm (max relaxed distance between thumb and pinkie)' appear twice with the fingering output following it.

    Additionally, opening the output.xml file in MuseScore3 does not show any fingering, just the music. Scanning through the output file XML doesn't seem to clearly show any fingering.

    My apologies if this has already been addressed - I've searched through the issues and haven't seen anything in regard to these two issues!

    opened by kchurch05 3
  • Exception in Tkinter Callback

    Exception in Tkinter Callback

    Love this program as it's very helpful in learning fingering for new songs but getting an Exception in Tkinter calklback on a couple scores and hoping you might be able to help?

    Saving score to output.xml
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Users\Matth\anaconda3\lib\tkinter\__init__.py", line 1705, in __call__
        return self.func(*args)
      File "C:\Users\Matth\anaconda3\Scripts\pianoplayer", line 93, in generateCMD
        sf.write('xml', fp='output.xml')
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\stream\__init__.py", line 252, in write
        return super().write(*args, **kwargs)
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\base.py", line 2562, in write
        return formatWriter.write(self, regularizedConverterFormat, fp, subformats, **keywords)
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\converter\subConverters.py", line 927, in write
        dataBytes = generalExporter.parse()
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\musicxml\m21ToXml.py", line 363, in parse
        outObj = self.fromGeneralObject(obj)
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\musicxml\m21ToXml.py", line 399, in fromGeneralObject
        outObj = meth(obj)
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\musicxml\m21ToXml.py", line 411, in fromScore
        scOut = sc.makeNotation(inPlace=False)
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\stream\__init__.py", line 13127, in makeNotation
        **subroutineKeywords)
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\stream\__init__.py", line 6040, in makeNotation
        bestClef=bestClef)
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\stream\__init__.py", line 5765, in makeMeasures
        inPlace=inPlace,
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\stream\makeNotation.py", line 577, in makeMeasures
        'within any measures' % (e, start, end))
    music21.exceptions21.StreamException: cannot place element Piano with start/end 180.0/180.0 within any measures
    

    On a different score I get the following error:

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Users\Matth\anaconda3\lib\tkinter\__init__.py", line 1705, in __call__
        return self.func(*args)
      File "C:\Users\Matth\anaconda3\Scripts\pianoplayer", line 89, in generateCMD
        self.lh.noteseq = reader(sf, beam=self.LeftHandBeam)
      File "C:\Users\Matth\anaconda3\lib\site-packages\pianoplayer\scorereader.py", line 32, in reader
        strm = sf.parts[beam].flat
      File "C:\Users\Matth\anaconda3\lib\site-packages\music21\stream\iterator.py", line 328, in __getitem__
        e = fe[k]
    IndexError: list index out of range
    

    I did some research and found the following: This error occurs when you run a program using the Canvas library (used from Unit 2 onwards) more than once. This is a known problem with Canvas, and is not caused by your programming. The only solution is to close all Python windows then re-run IDLE after each time you run your program.

    Not sure if the above is relevant. Any idea on how to fix the issue?

    bug 
    opened by mathiasjg 3
  • Exception on loading a music xml file

    Exception on loading a music xml file

    Windows 7, x64 system with python 3.6.

    I get an exception after loading a XML file. The program first prints the following

    Your hand span set to size-M which is 17.22 cm
    (max relaxed distance between thumb and pinkie)
    Reading beam 0 with 63 objects in stream.
    meas.1   finger:2 on C4         v=0.1      [2, 2, 3, 2, 5, 4] d:
    meas.1   finger:2 on C4         v=0.1      [2, 3, 2, 5, 4] d:5
    meas.2   finger:3 on D4         v=0.1      [3, 2, 5, 4, 2] d:5
    meas.2   finger:2 on C4         v=0.1      [2, 5, 4, 2, 2] d:5
    meas.2   finger:5 on F4         v=0.1      [5, 4, 2, 2, 3] d:5
    meas.3   finger:4 on E4         v=0.1      [4, 2, 2, 3, 2] d:5
    meas.3   finger:2 on C4         v=0.6      [2, 2, 3, 2, 5, 4] d:
    meas.3   finger:2 on C4         v=0.8      [2, 3, 2, 5, 4] d:5
    meas.4   finger:3 on D4         v=0.9      [3, 2, 5, 4, 1] d:5
    meas.4   finger:2 on C4         v=0.8      [2, 5, 4, 1, 1] d:5
    meas.4   finger:5 on G4         v=3.3      [5, 4, 1, 1, 5] d:5
    meas.5   finger:4 on F4         v=3.3      [4, 1, 1, 5, 3] d:5
    meas.5   finger:1 on C4         v=3.2      [1, 1, 5, 3, 2, 1] d:
    meas.5   finger:1 on C4         v=4.0      [1, 5, 3, 2, 1] d:5
    meas.6   finger:5 on C5         v=1.3      [5, 4, 3, 2, 1] d:5
    meas.6   finger:4 on A4         v=0.8      [4, 3, 2, 1, 5] d:5
    meas.6   finger:3 on F4         v=0.4      [3, 2, 1, 5, 5] d:5
    meas.7   finger:2 on E4         v=0.7      [2, 1, 5, 5, 4, 2] d:
    meas.7   finger:1 on D4         v=0.6      [1, 5, 5, 4, 2, 4] d:
    meas.7   finger:5 on B-4        v=0.5      [5, 5, 4, 2, 4, 3] d:
    meas.7   finger:5 on B-4        v=0.6      [5, 4, 2, 4, 3] d:5
    meas.8   finger:4 on A4         v=0.5      [4, 2, 4, 3, 1] d:5
    meas.8   finger:2 on F4         v=0.7      [2, 4, 3, 1, 2] d:5
    meas.8   finger:4 on A4         v=0.9      [4, 3, 1, 2, 1] d:5
    meas.9   finger:3 on G4         v=0.9      [3, 2, 3, 2, 5] d:5
    meas.9   finger:2 on C4         v=0.1      [2, 3, 2, 5, 4] d:5
    meas.10   finger:3 on D4        v=0.1      [3, 2, 5, 4, 2] d:5
    meas.10   finger:2 on C4        v=0.1      [2, 5, 4, 2, 3] d:5
    meas.10   finger:5 on F4        v=0.1      [5, 4, 2, 3, 2] d:5
    meas.11   finger:4 on E4        v=0.8      [4, 2, 3, 2, 5] d:5
    meas.11   finger:2 on C4        v=0.8      [2, 3, 2, 5, 4] d:5
    meas.12   finger:3 on D4        v=0.9      [3, 2, 5, 4, 1] d:5
    meas.12   finger:2 on C4        v=2.6      [2, 5, 4, 1, 5] d:5
    meas.12   finger:5 on G4        v=1.9      [5, 4, 1, 5, 3] d:5
    meas.13   finger:4 on F4        v=2.1      [4, 1, 5, 3, 1] d:5
    meas.13   finger:1 on C4        v=2.6      [1, 5, 3, 2, 1] d:5
    meas.14   finger:5 on C5        v=1.3      [5, 4, 3, 2, 1] d:5
    meas.14   finger:4 on A4        v=0.8      [4, 3, 2, 1, 5] d:5
    meas.14   finger:3 on F4        v=0.6      [3, 2, 1, 5, 4] d:5
    meas.15   finger:2 on E4        v=0.6      [2, 1, 5, 4, 2] d:5
    meas.15   finger:1 on D4        v=0.4      [1, 5, 4, 2, 3] d:5
    meas.15   finger:5 on B-4       v=0.3      [5, 4, 2, 3, 2] d:5
    meas.16   finger:4 on A4
    meas.16   finger:2 on F4
    meas.16   finger:3 on G4
    meas.17   finger:2 on F4
    meas.17   finger:1 on C4
    meas.17   finger:1 on C4
    meas.18   finger:5 on A4
    meas.18   finger:3 on F4
    meas.18   finger:4 on G4
    meas.19   finger:0 on F4
    Your hand span set to size-M which is 17.22 cm
    (max relaxed distance between thumb and pinkie)
    

    and then throws an exception

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Program Files\Python36\lib\tkinter\__init__.py", line 1705, in __call
    __
        return self.func(*args)
      File "pianoplayer", line 89, in generateCMD
        self.lh.noteseq = reader(sf, beam=self.LeftHandBeam)
      File "C:\Program Files\Python36\lib\site-packages\pianoplayer\scorereader.py",
     line 32, in reader
        strm = sf.parts[beam].flat
      File "C:\Program Files\Python36\lib\site-packages\music21\stream\iterator.py",
     line 328, in __getitem__
        e = fe[k]
    IndexError: list index out of range
    

    I have attached the xml file that causes this error. Any pointers to this would be very helpful. TIA

    hb.zip

    opened by GitterHubber 3
  • Odd results for some accidentals

    Odd results for some accidentals

    This is a neat piece of software -- thanks for writing it!

    I've been playing with it a bit and noticed that for some "weird" accidentals like Cb the program outputs bizarre fingering choices. If I rewrite the note as B the fingering makes much more sense. I haven't tried the other comparable accidentals (B#, E#, Fb) to know if this is a general or specific problem (nor have I looked at double sharps or double flats). You may not even be actively working on this software anymore, but in case you are this is a minor issue that could use correcting. Thanks!

    Best, Jeffrey

    opened by jncarey 3
  • Double sharps are not recognized

    Double sharps are not recognized

    So for this score: https://musescore.com/user/147231/scores/1029831

    I get many errors:

    ERROR note not found F##

    Definitely makes sense why it's not recognized, just wanted to let you know in case you want to fix

    opened by AmitMY 2
  • On Windows

    On Windows

    "pip install pianoplayer" gives

    ERROR: Cannot install pianoplayer==1.0.0, pianoplayer==1.1.0, pianoplayer==1.1.1, pianoplayer==2.0.0, pianoplayer==2.0.1, pianoplayer==2.0.4, pianoplayer==2.0.5, pianoplayer==2.0.6, pianoplayer==2.0.7 and pianoplayer==2.1.0 because these package versions have conflicting dependencies.

    opened by AllTheProjects 1
  • Cannot visualize: `ERROR: texture file wood1 does not exist`

    Cannot visualize: `ERROR: texture file wood1 does not exist`

    Hello. I'm trying to visualize my MIDI file with this command:

    pianoplayer midi_file.midi -vz
    

    However, the command fails with these errors:

    [vedo.mesh.py:463] ERROR: texture file wood1 does not exist
    [vedo.mesh.py:463] ERROR: texture file wood1 does not exist
    Traceback (most recent call last):
      File "/home/hiroki/.local/bin/pianoplayer", line 224, in <module>
        vk = VirtualKeyboard(songname=xmlfn)
      File "/home/hiroki/.local/lib/python3.9/site-packages/pianoplayer/vkeyboard.py", line 41, in __init__
        self.build_keyboard()
      File "/home/hiroki/.local/lib/python3.9/site-packages/pianoplayer/vkeyboard.py", line 91, in build_keyboard
        self.vp += Text('PianoPlayer ^'+__version__+" ",
    NameError: name 'Text' is not defined
    

    I couldn't find the texture files on my computer. How can I get them?

    opened by toku-sa-n 3
  • No output.xml

    No output.xml

    After the program is finished processing, there is no output.xml file, or it is nowhere to be found. The first time running the program, it was found in the folder, but no longer. Also, the GUI Musescore function does not work, returning 'musescore' is not recognized as an internal or external command, operable program or batch file..

    opened by ztianhan 0
  • Timing information units ?

    Timing information units ?

    Hi,

    I am trying to understand the data in the INote class, in particular self.time and self.duration

    https://github.com/marcomusy/pianoplayer/blob/master/pianoplayer/scorereader.py#L20

    What are their units ? Are they measured in seconds or are they relative to another time reference ?

    Cheers

    opened by nyue 0
Releases(2.2.0)
Owner
Marco Musy
EMBL
Marco Musy
live coding in python + supercollider

live coding in python + supercollider

Zack 6 Feb 06, 2022
AudioDVP:Photorealistic Audio-driven Video Portraits

AudioDVP This is the official implementation of Photorealistic Audio-driven Video Portraits. Major Requirements Ubuntu = 18.04 PyTorch = 1.2 GCC =

232 Jan 03, 2023
Music Streaming Platform based on full implementation of DBSM

Symphony Music Streaming Platform based on full implementation of DBSM List of Commands Insert User (INSERT) Function to implement input in USER Get a

Parth Maradia 1 Nov 12, 2021
❤️ This Is The EzilaXMusicPlayer Advaced Repo 🎵

Telegram EzilaXMusicPlayer Bot 🎵 A bot that can play music on telegram group's voice Chat ❤️ Requirements 📝 FFmpeg NodeJS nodesource.com Python 3.7+

Sadew Jayasekara 11 Nov 12, 2022
Make an audio file (really) long-winded

longwind Make an audio file (really) long-winded Daily repetitions are an illusion anyway.

Vincent Lostanlen 2 Sep 12, 2022
A collection of python scripts for extracting and analyzing acoustics from audio files.

pyAcoustics A collection of python scripts for extracting and analyzing acoustics from audio files. Contents 1 Common Use Cases 2 Major revisions 3 Fe

Tim 74 Dec 26, 2022
A GUI-based audio player with support for a large variety of formats

Miza-Player A GUI-based audio player with support for a large variety of formats, able to play from web-hosted media platforms such as YouTube, includ

Thomas Xin 3 Dec 14, 2022
Stevan KZ 1 Oct 27, 2021
TwitterMusicBot - A Twitter bot with Spotify integration.

A Twitter Music Bot 🤖 🎵 🎶 I created this project to learn more about APIs, so it only works for student purposes. Initially, delving into the Spoti

Gustavo Oliveira 2 Jan 02, 2022
ᴀ ʙᴏᴛ ᴛʜᴀᴛ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜꜱɪᴄ ɪɴ ᴛᴇʟᴇɢʀᴀᴍ ɢʀᴏᴜᴘ ᴏɴ ᴠᴏɪᴄᴇ ᴄᴀʟʟ

GJ516 LOVER'S ııllıllı ♥️ ➤⃝Gᴊ516_ᴍᴜꜱɪᴄ_ʙᴏᴛ ♥️ ıllıllı ᴀ ʙᴏᴛ ᴛʜᴀᴛ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜꜱɪᴄ ɪɴ ᴛᴇʟᴇɢʀᴀᴍ ɢʀᴏᴜᴘ ᴏɴ ᴠᴏɪᴄᴇ ᴄᴀʟʟ Requirements 📝 FFmpeg NodeJS nodesou

1 Nov 22, 2021
Scrap electronic music charts into CSV files

musiccharts A small python script to scrap (electronic) music charts into directories with csv files. Installation Download MusicCharts.exe Run MusicC

Dustin Scharf 1 May 11, 2022
❤️ Hi There Im Cozmo Music Bot A next gen powerful telegram group Music bot for get your Songs and music @Venuja_Sadew

🎵 Cozmo MUSIC 🎵 Cozmo Music is a Music powerfull bot for playing music on telegram voice chat groups. Requirements FFmpeg NodeJS nodesource.com Pyth

Venuja Sadew 3 Jan 08, 2022
An audio guide for destroying oracles in Destiny's Vault of Glass raid

prophet An audio guide for destroying oracles in Destiny's Vault of Glass raid. This project allows you to make any encounter with oracles without hav

24 Sep 15, 2022
Some utils for auto speech recognition

About Some utils for auto speech recognition. Utils Util Description Script Reset audio Reset sample rate, sample width, etc of audios.

1 Jan 24, 2022
Deep learning transformer model that generates unique music sequences.

music-ai Deep learning transformer model that generates unique music sequences. Abstract In 2017, a new state-of-the-art was published for natural lan

xacer 6 Nov 19, 2022
A Python wrapper around the Soundcloud API

soundcloud-python A friendly wrapper around the Soundcloud API. Installation To install soundcloud-python, simply: pip install soundcloud Or if you'r

SoundCloud 84 Dec 31, 2022
🎵 A repository for manually annotating files to create labeled acoustic datasets for machine learning.

🎵 A repository for manually annotating files to create labeled acoustic datasets for machine learning.

Jim Schwoebel 28 Dec 22, 2022
Official implementation of A cappella: Audio-visual Singing VoiceSeparation, from BMVC21

Y-Net Official implementation of A cappella: Audio-visual Singing VoiceSeparation, British Machine Vision Conference 2021 Project page: ipcv.github.io

Juan F. Montesinos 12 Oct 22, 2022
Spotify Song Recommendation Program

Spotify-Song-Recommendation-Program Made by Esra Nur Özüm Written in Python The aim of this project was to build a recommendation system that recommen

esra nur özüm 1 Jun 30, 2022
A python program to cut longer MP3 files (i.e. recordings of several songs) into the individual tracks.

I'm writing a python script to cut longer MP3 files (i.e. recordings of several songs) into the individual tracks called ReCut. So far there are two

Dönerspiess 1 Oct 27, 2021