Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5c6f5eb
paper initial commit
sebastianrosenzweig Mar 7, 2025
2b6a537
commit hook
sebastianrosenzweig Mar 7, 2025
71cc855
first steps
sebastianrosenzweig Mar 7, 2025
54ef74b
fixes
sebastianrosenzweig Mar 7, 2025
65471ad
new authors
sebastianrosenzweig Mar 14, 2025
f8d716f
first steps
sebastianrosenzweig Mar 14, 2025
a4db85e
new intro
sebastianrosenzweig Mar 16, 2025
1a187a9
minor
sebastianrosenzweig Mar 20, 2025
dc762d3
statement of need and audio processing
sebastianrosenzweig Mar 21, 2025
b60705a
GUI description
sebastianrosenzweig Mar 24, 2025
7579f0e
improved motivation and descriptions
sebastianrosenzweig Apr 1, 2025
9fb86a8
improvements
sebastianrosenzweig Apr 11, 2025
5586980
feedback
sebastianrosenzweig May 23, 2025
a335cde
literature tidy-up
sebastianrosenzweig May 25, 2025
26398c1
feedback
sebastianrosenzweig May 31, 2025
93a270e
activate swipe
sebastianrosenzweig May 31, 2025
0cdfe46
small addition
sebastianrosenzweig May 31, 2025
309afbf
new link+comment
sebastianrosenzweig Jun 3, 2025
52e41a5
acknowledgements
sebastianrosenzweig Jun 3, 2025
1187360
add menu picture
sebastianrosenzweig Jun 3, 2025
24e7163
readme demo
sebastianrosenzweig Jun 3, 2025
914ea5a
readme wiki
sebastianrosenzweig Jun 3, 2025
c2bec85
literature
sebastianrosenzweig Jun 6, 2025
e061abc
acknowledgemnts
sebastianrosenzweig Jun 6, 2025
bde3b8f
improved gui refresh
sebastianrosenzweig Jun 27, 2025
04473bd
smaller fixes and first docstrings
sebastianrosenzweig Jun 27, 2025
d020ad9
more docstrings
sebastianrosenzweig Jul 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Draft PDF
on: [push]

jobs:
paper:
runs-on: ubuntu-latest
name: Paper Draft
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build draft PDF
uses: openjournals/openjournals-draft-action@master
with:
journal: joss
# This should be the path to the paper within your repo.
paper-path: paper/paper.md
- name: Upload
uses: actions/upload-artifact@v4
with:
name: paper
# This is the output path where Pandoc will write the compiled
# PDF. Note, this should be the same directory as the input
# paper.md
path: paper/paper.pdf
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2016--2024 pytch development team.
Copyright (c) 2016--2025 pytch development team.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ Pytch - A Real-Time Pitch Analysis Tool For Polyphonic Music

![screenshot](pictures/screenshot.png)

## Demo & Wiki

If you want to see `pytch` in action, watch our [demo video](https://youtu.be/LPt83Wqf2e4).

Please have a look at our [wiki](https://github.com/pytchtracking/pytch/wiki) for an explanation of the GUI.


## Download and Installation

Clone the project
Expand All @@ -30,9 +37,9 @@ pytch
```
hit return and sing!

## Contribution
## Contributing

Every contribution is welcome. To ensure consistent style we use [black](https://github.com/psf/black).
Every contribution is welcome. Please feel free to open and issue or a pull request. To ensure consistent style we use [black](https://github.com/psf/black).
You can add automated style checks at commit time using [pre-commit](https://pre-commit.com/)

```bash
Expand Down
4 changes: 4 additions & 0 deletions paper/compile.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash

cd ..
docker run --rm -it -v "$PWD:/data" -u "$(id -u):$(id -g)" openjournals/inara -o pdf paper/paper.md -p
181 changes: 181 additions & 0 deletions paper/paper.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
@article{MeierCM24_RealTimePLP_TISMIR,
author = {Peter Meier and Ching-Yu Chiu and Meinard M{\"u}ller},
title = {{A} Real-Time Beat Tracking System with Zero Latency and Enhanced Controllability},
journal = {Transactions of the International Society for Music Information Retrieval ({TISMIR})},
year = {2024},
volume = {7},
number = {1},
pages = {213--227},
doi = {10.5334/tismir.189},
url-demo = {https://audiolabs-erlangen.de/resources/MIR/2024-TISMIR-RealTimePLP}
}

@inproceedings{StefaniT22_RealTimeMIR_DAFX,
title = {On the challenges of embedded real-time music information retrieval},
author = {Domenico Stefani and Luca Turchet},
booktitle = {Proceedings of the International Conference on Digital Audio Effects (DAFx)},
volume = {3},
pages = {177--184},
year = {2022}
}

@phdthesis{Cuesta22_Multipitch_PhD,
author = {Helena Cuesta},
year = {2022},
title = {Data-driven Pitch Content Description of Choral Singing Recordings},
school = {Universitat Pompeu Fabra, Barcelona, Spain},
}

@article{BerglinPD22_VisualFeedback_JPM,
author = {Jacob Berglin and Peter Q Pfordresher and Steven Demorest},
title = {The effect of visual and auditory feedback on adult poor-pitch remediation},
journal = {Psychology of Music},
volume = {50},
number = {4},
pages = {1077-1090},
year = {2022},
doi = {10.1177/03057356211026730},
URL = {https://doi.org/10.1177/03057356211026730},
}

@inproceedings{RosenzweigSM22_libf0_ISMIR-LBD,
author = {Sebastian Rosenzweig and Simon Schw{\"a}r and Meinard M{\"u}ller},
title = {libf0: A Python Library for Fundamental Frequency Estimation},
booktitle = {Late Breaking Demos of the International Society for Music Information Retrieval Conference ({ISMIR})},
address = {Bengaluru, India},
year = {2022},
url-pdf = {https://archives.ismir.net/ismir2022/latebreaking/000003.pdf},
url-code = {https://github.com/groupmm/libf0/}
}

@book{Mueller21_FMP_SPRINGER,
author = {Meinard M\"{u}ller},
title = {Fundamentals of Music Processing -- Using Python and Jupyter Notebooks},
type = {Monograph},
year = {2021},
isbn = {978-3-030-69807-2},
publisher = {Springer Verlag},
edition = {2nd},
pages = {1--495},
doi = {10.1007/978-3-030-69808-9},
url-details = {http://www.music-processing.de}
}

@article{RosenzweigCWSGM20_DCS_TISMIR,
author = {Sebastian Rosenzweig and Helena Cuesta and Christof Wei{\ss} and Frank Scherbaum and Emilia G{\'o}mez and Meinard M{\"u}ller},
title = {{D}agstuhl {ChoirSet}: {A} Multitrack Dataset for {MIR} Research on Choral Singing},
journal = {Transactions of the International Society for Music Information Retrieval ({TISMIR})},
volume = {3},
number = {1},
year = {2020},
pages = {98--110},
publisher = {Ubiquity Press},
doi = {10.5334/tismir.48},
url-pdf = {2020_RosenzweigCWSGM_DagstuhlChoirSet_TISMIR_ePrint.pdf},
url-demo = {https://www.audiolabs-erlangen.de/resources/MIR/2020-DagstuhlChoirSet}
}

@inproceedings{ScherbaumMRM19_MultimediaRecordings_FMA,
author = {Frank Scherbaum and Nana Mzhavanadze and Sebastian Rosenzweig and Meinard M{\"u}ller},
title = {Multi-media recordings of traditional {G}eorgian vocal music for computational analysis},
booktitle = {Proceedings of the International Workshop on Folk Music Analysis ({FMA})},
address = {Birmingham, UK},
year = {2019},
pages = {1--6}
}

@inproceedings{RosenzweigSM19_StableF0_ISMIR,
author = {Sebastian Rosenzweig and Frank Scherbaum and Meinard M{\"u}ller},
title = {Detecting Stable Regions in Frequency Trajectories for Tonal Analysis of Traditional {G}eorgian Vocal Music},
booktitle = {Proceedings of the International Society for Music Information Retrieval Conference ({ISMIR})},
pages = {352--359},
address = {Delft, The Netherlands},
year = {2019},
doi = {10.5281/zenodo.3527816}
}

@inproceedings{KriegerowskiS_Pytch_2017,
author = {Marius Kriegerowski and Frank Scherbaum},
title = {Pytch - simultane mehrkanalige Audioanalyse von Gesangstimmen},
booktitle = {Late-breaking Demos of the Workshop: Musik trifft Informatik at 47. Jahrestagung der Gesellschaft für Informatik},
year = {2017},
address = {Chemnitz, Germany},
}

@article{Scherbaum16_LarynxMicrophones_IWFMA,
author = {Frank Scherbaum},
title = {On the Benefit of Larynx-Microphone Field Recordings for the Documentation and Analysis of Polyphonic Vocal Music},
journal = {Proceedings of the International Workshop Folk Music Analysis},
pages = {80--87},
address = {Dublin,Ireland},
year = {2016}
}

@article{SixCL13_Tarsos_JNMR,
author = {Joren Six and Olmo Cornelis and Marc Leman},
title = {Tarsos, a Modular Platform for Precise Pitch Analysis of {W}estern and Non-{W}estern Music},
journal = {Journal of New Music Research},
volume = {42},
number = {2},
pages = {113-129},
year = {2013},
doi = {10.1080/09298215.2013.797999}
}

@inproceedings{CannamLS10_SonicVisualizer_ICMC,
author = {Chris Cannam and Christian Landone and Mark B. Sandler},
title = {Sonic {V}isualiser: An Open Source Application for Viewing, Analysing, and Annotating Music Audio Files},
booktitle = {Proceedings of the International Conference on Multimedia},
address = {Florence, Italy},
pages = {1467--1468},
year = {2010},
}

@article{CamachoH08_SawtoothWaveform_JASA,
author = {Arturo Camacho and John G. Harris},
title = {A sawtooth waveform inspired pitch estimator for speech and music},
publisher = {ASA},
year = {2008},
journal = {The Journal of the Acoustical Society of America},
volume = {124},
number = {3},
pages = {1638--1652},
}

@article{Goto04_RealTimeF0_SC,
title = {A real-time music-scene-description system: Predominant-F0 estimation for detecting melody and bass lines in real-world audio signals},
author = {Masataka Goto},
journal = {Speech Communication},
volume = {43},
number = {4},
pages = {311--329},
year = {2004},
publisher = {Elsevier}
}

@article{CheveigneK02_YIN_JASA,
author = {Alain de Cheveign{\'e} and Hideki Kawahara},
title = {{YIN}, a fundamental frequency estimator for speech and music.},
journal = {Journal of the Acoustical Society of America (JASA)},
year = {2002},
volume = {111},
pages = {1917--1930},
number = {4},
}

@article{Boersma01_Praat_GI,
author = {Paul Boersma},
journal = {Glot International},
number = {9/10},
pages = {341--345},
title = {{Praat}, a system for doing phonetics by computer},
volume = {5},
year = {2001}
}

@book{HagermanS80_Barbershop_CITESEER,
title = {Fundamental frequency adjustment in barbershop singing},
author = {B Hagerman and Johan Sundberg},
year = {1980},
publisher = {Citeseer}
}
Loading