-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
51 lines (42 loc) · 2.64 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
pythonMuzyka - beatbox
======================
Repozytorium `pythonMuzyka` zawiera następujące pliki i foldery:
* `beatbox.py` - główna aplikacja; skrypt tworzący piosenkę, która została podana jako argument,
* `create_song.py` - moduł z funkcją `create_song` do tworzenia piosenki ze ścieżek,
* `create_track.py` - moduł z funkcją `create_track` do tworzenia ścieżki z sampli, nutek i instrumentów,
* `merge_sounds.py` - moduł z funkcją `merge_sounds` do złączania dwóch dźwiękóW stosując przesunięcie dźwięków w ścieżce,
* `sounds.py` - moduł z definicją dźwięków w postaci funkcji:
* `sound_sin` - funkcja tworząca falę sinusoidalną,
* `sound_sawtooth` - funkcja tworząca falę trójkątną (piła),
* `sound_rectangle` - funkcja tworząca falę prostokątną,
* `notes.txt` - plik tekstowy ze słownikiem nutek,
* `sample_song` - folder z piosenką stworzoną z sampli,
* `db_gt_main_opening` - folder z piosenką z głównym motywem openingu anime Dragonball GT,
* `last_christmas` - folder z piosenką "Last Christmas",
* `songs` - folder z wygenerowanymi piosenkami.
Ponadto każdy z folderów z piosenkami składa się z:
* `defs.txt` - plik tekstowy ze słownikiem opisującym konfigurację utworu - zawiera tylko argument `bpm`,
* `song.txt` - plik tekstowy określający kolejność odgrywanych ścieżek,
* `trackAB.txt` - pliki tekstowe określające kolejność odgrywania sampli, nutek i instrumentów, gdzie AB to 2 cyfry; jeden wiersz jest odtwarzany na raz. Przykłady zapisu:
* `01` - odwołanie do sampla `01`,
* `A-4` - odwołanie do nutki o częstotliwości `A-4`,
* `01:A-4` - odwołanie do instrumentu `01` o częstotliwości `A-4`,
* `sampleXY.wav` - pliki dźwiękowe, gdzie XY to 2 cyfry,
* `sampleXY.txt` - pliki tekstowe określające definicję instrumentu w postaci kodu pythonowego, który powinien zawierać:
* `global instrument` - w pierwszej linijce określenie zmiennej instrument jako zmiennej globalnej,
* `f` - częstotliwość dźwięku,
* `t` - czas trwania dźwięku; trzeba pamietać o uwzględnieniu `bpm`,
* `instrument` - określenie użytego dźwięku wraz z przekształceniem go do macierzy wymiaru `n x 2`
Działanie programu
------------------
Program uruchamia się z folderu z programem (katalog bieżący) przy użyciu komendy:
```
./beatbox.py utworX/
```
lub
```
./beatbox.py utworX
```
gdzie `utworX` to nazwa katalogu z piosenką lub nazwa pliku w formacie `*.zip`.
W przypadku zwykłego folderu piosenka zostanie utworzona w katalogu bieżącym, zaś
w przypadku archiwum w folderze `tmp` z plikami tymczasowymi.