GMU:Autonomous-Collaborative/Hiyeon: Difference between revisions

From Medien Wiki
Line 37: Line 37:
I used the timbreID[https://github.com/wbrent/timbreID], a library for analyzing audio feature in Pure Data(Pd). In particular, its drum kit example already had the function to map the sample drum sounds to the real-time input sounds.
I used the timbreID[https://github.com/wbrent/timbreID], a library for analyzing audio feature in Pure Data(Pd). In particular, its drum kit example already had the function to map the sample drum sounds to the real-time input sounds.


====Preparing the Instruments====
===- Preparing the Instruments===
[[File:2019-10-04 17.30.jpeg|400px]]
[[File:2019-10-04 17.30.jpeg|400px]]


Before the playback, the timbreID must be trained with sounds that are timbrally different to one another.  In the initial setup, there were only 4 classifications available, but I added two more. To produce timbrally different and sounds, I used various materials from beer caps to wine corks as planned. Also to make sharp and short-duration sounds, I decided to use the metal chopsticks to tap with, rather than with fingers which was my original plan. With some experiments, I found the combination that worked somewhat well.
Before the playback, the timbreID must be trained with sounds that are timbrally different to one another.  In the initial setup, there were only 4 classifications available, but I added two more. To produce timbrally different and sounds, I used various materials from beer caps to wine corks as planned. Also to make sharp and short-duration sounds, I decided to use the metal chopsticks to tap with, rather than with fingers which was my original plan. With some experiments, I found the combination that worked somewhat well.


====Training====
===- Training===
video link: [[:File:training-final.mp4]]
video link: [[:File:training-final.mp4]]


To train,  “train” spigot should be turned on. Input sounds are made by tapping on different objects for 5-10 times. Here I am tapping each instrument about 10 times. Each input are shown in the Pd’s window.
To train,  “train” spigot should be turned on. Input sounds are made by tapping on different objects for 5-10 times. Here I am tapping each instrument about 10 times. Each input are shown in the Pd’s window.
[[File:2019-10-05 19.10.gif|200px]]
[[File:2019-10-05 19.10.gif|400px]]


What happens here is that they are detected by ‘bark~’ in the ‘pd onsets’ sub-patch, which measures the amount of growth in bands of an input’s spectrum. Here I lowered the debounce setting to 50 ms for which it will be deaf. It was set as high as 200ms initially to prevent the sample playback to retrigger the playback, but it could be lowered to play in a bit quicker rythme by using the headphones.
What happens here is that they are detected by ‘bark~’ in the ‘pd onsets’ sub-patch, which measures the amount of growth in bands of an input’s spectrum. Here I lowered the debounce setting to 50 ms for which it will be deaf. It was set as high as 200ms initially to prevent the sample playback to retrigger the playback, but it could be lowered to play in a bit quicker rythme by using the headphones.


[[File:bark.png|200px]]
[[File:bark.png|400px]]


One more thing to note here is that the master volume should be mute as the feedback sample output will be included in the training input. After training, the ‘train’ spigot should be turned off again.
One more thing to note here is that the master volume should be mute as the feedback sample output will be included in the training input. After training, the ‘train’ spigot should be turned off again.
The training dataset can be saved with the ‘write’ message and can be read again with the ‘read’ message. I added additional write and read messages for backup.
The training dataset can be saved with the ‘write’ message and can be read again with the ‘read’ message. I added additional write and read messages for backup.


====Clustering====
===- Clustering===
[[File:clustering.png|200px]]
[[File:clustering.png|400px]]
[[File:window.png|200px]]
[[File:window.png|400px]]


After training, the input sounds should be grouped by different timbral sounds with the ‘cluster’ message. Here I changed the number of cluster items from 4 to 6. Each cluster can be printed out in the Pd’s window with the radio buttons connected to the ‘cluster list’. The numbers represent the members based on the input order, starting from 0.
After training, the input sounds should be grouped by different timbral sounds with the ‘cluster’ message. Here I changed the number of cluster items from 4 to 6. Each cluster can be printed out in the Pd’s window with the radio buttons connected to the ‘cluster list’. The numbers represent the members based on the input order, starting from 0.
Line 68: Line 68:
I got each audio sample from the SampleSwap[https://sampleswap.org/filebrowser-new.php?d=DRUMS+%28FULL+KITS%29%2FDRUM+MACHINES%2F], an audio sample sharing site.  Then I put them together into one audio file with even 1s interval, for it to be processed in the Pd.
I got each audio sample from the SampleSwap[https://sampleswap.org/filebrowser-new.php?d=DRUMS+%28FULL+KITS%29%2FDRUM+MACHINES%2F], an audio sample sharing site.  Then I put them together into one audio file with even 1s interval, for it to be processed in the Pd.


[[File:sampleswap.PNG|200px]]
[[File:sampleswap.PNG|400px]]
To add sample items, I also had to change the array ‘drum-kit-times’ as such.
To add sample items, I also had to change the array ‘drum-kit-times’ as such.