tidalcycles / strudel

Web-based environment for live coding algorithmic patterns, incorporating a faithful port of TidalCycles to JavaScript
https://strudel.cc/
GNU Affero General Public License v3.0
641 stars 111 forks source link

Fix wchooseCycles not picking the whole pattern #1061

Closed ilesinge closed 5 months ago

ilesinge commented 5 months ago

Currently wchooseCycles, if fed with patterns, will pick an element from a different pattern at every event instead of at every cycle. I would expect it to stick to the same choice for the whole pattern, like wrandcat in Tidal Cycles.

Demo of the problem and of the fix: https://strudel.cc/#Ly8gVU5DSEFOR0VEIENPREUKY29uc3QgX3djaG9vc2VXaXRoID0gZnVuY3Rpb24gKHBhdCwgLi4ucGFpcnMpIHsKICBjb25zdCB2YWx1ZXMgPSBwYWlycy5tYXAoKHBhaXIpID0%2BIHJlaWZ5KHBhaXJbMF0pKTsKICBjb25zdCB3ZWlnaHRzID0gW107CiAgbGV0IGFjY3VtID0gMDsKICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHsKICAgIGFjY3VtICs9IHBhaXJbMV07CiAgICB3ZWlnaHRzLnB1c2goYWNjdW0pOwogIH0KICBjb25zdCB0b3RhbCA9IGFjY3VtOwogIGNvbnN0IG1hdGNoID0gZnVuY3Rpb24gKHIpIHsKICAgIGNvbnN0IGZpbmQgPSByICogdG90YWw7CiAgICByZXR1cm4gdmFsdWVzW3dlaWdodHMuZmluZEluZGV4KCh4KSA9PiB4ID4gZmluZCwgd2VpZ2h0cyldOwogIH07CiAgcmV0dXJuIHBhdC5mbWFwKG1hdGNoKTsKfTsKCi8vIE9SSUdJTkFMOgovL2NvbnN0IHdjaG9vc2VDeWNsZXMgPSAoLi4ucGFpcnMpID0%2BIF93Y2hvb3NlV2l0aChyYW5kLCAuLi5wYWlycykuaW5uZXJKb2luKCk7CgovLyBQUk9QT1NBTDoKY29uc3QgZml4ZWRXY2hvb3NlQ3ljbGVzID0gKC4uLnBhaXJzKSA9PiBfd2Nob29zZVdpdGgocmFuZC5zZWdtZW50KDEpLCAuLi5wYWlycykuaW5uZXJKb2luKCk7CgovLyBCVUcgREVNTzoKd2Nob29zZUN5Y2xlcyhbImJkIGJkIGJkIiwxMF0sIFsiaGggaGggaGgiLDNdLCBbInNkIHNkIHNkIiwxXSkuZmFzdCg0KS5zKCkKCi8vIEZJWCBERU1POgovL2ZpeGVkV2Nob29zZUN5Y2xlcyhbImJkIGJkIGJkIiwxMF0sIFsiaGggaGggaGgiLDNdLCBbInNkIHNkIHNkIiwxXSkuZmFzdCg0KS5zKCk%3D

yaxu commented 5 months ago

Thanks!