I have struggled to make a small patch to reproduce my issue so far (which is in a big patch) but hoping the source of my problem might be obvious from my description.
I have been generating long passages of music in the following way:
- decide number of notes
- create pitch and rhythm list with that number of notes
- derive time signature for this phrase from absolute value of rhythms
- collect a phrase in a set of separate bach.collect objects (one per parameter)
- create another phrase
- loop the process until passage is finished
- bang all the bach.collect into a bach.beatbox and output the entire piece
This works great, except that the time signatures are super long and to make the output usable I have to manually divide all the bars, so I implemented a subpatch to divide the time signatures into smaller chunks. This seems to produce sensible output in the bach.score for time signatures with denominators of /2 /4 and /8 but every time a /16 signature is used, loads of notes go missing.
I'm not very fluent at reading the lllls from bach.tree but from analysing one a bit, it looks like bach.beatbox is putting way too many notes in each bar.
I've attached a patch with a tree and score where I think you can see that the notes in voice 1 don't match up with the tree (it looks like it truncates the bar when the bar is full).
As what i'm doing is just sending a long list of notes and a long list of time signatures, I don't really understand this behaviour. I expected that the measure-wise behaviour would just fill a bar and then move on to the next one, introducing ties if necessary (which is what happens with other time signature denominators). There is probably something I'm missing?
Another possibility is that you might have a better idea or a built-in way of doing this? I could easily run an operation on the whole score retroactively (but I don't want to settle for quantizing the whole score to 4/4)
Code: Select all
<pre><code>
----------begin_max5_patcher----------
2515.3oc6cs0bihiE94jeET7ztUk1stARL07Ru8lsq7P5tpjd1W5pqTDrbLy
fAWfbtzSM+2GItXCFgC1fcb6AmDGaIgNmy246b.Igk+yyOy79nm4IlF+hw2L
N6r+77yNKsHUAmk+9yLm49rWfaRZyL8hlMiGJLuHqNA+YQZ4++ub0Guz.Z70
qt9Riau5S2Z7gO+eM97uc8+4xaL9x+y35K+vs+1MWJK9lKM93Wt4lK+3Wuv3
ye4q4Ec8U2d6Ue9SE8afeH2KZQXZmixKLbwrnEh.tHUU.4k5ONUAht+2eGDZ
tpo9gEsDlW3bWg2T+vGtKl6IxLZHzBMBHefIXLBQsvNvKLXHqQX4CKpCF.YX
BTVHxgLBbgAFOBX7cUG9Wmet5oK5Hx8q+pgXJ2f+7boVwGaDO8EwzY9dFRac
9BgQzDiGi783FkMtMiCNaKLvb.irkObvHHvVZx.pDEfViPLDv1FPnPGnMRBB
XKEHf.6HHLimj39.uFH7ifew3eIhLxq+ea.eOQ9GR9GzN+Mjh2vVufh2vziP
EFdVQhWlyyrZSSiuWG7nZAOTyfmEDkxVHVTJfgsXTa8fGllxfPncD7tegPDE
tk138tgOn0NwlKMoX2YbAO9Ndn68A7xjp1RfHjTdADxRsPRwy6lc55McThWT
7RdRPTz7b64alRwj9qTDleW9thhPEEszZSlF8zLtaxhXtzPtmGmmpCVzEvkM
sJZ5jW5eveI+PL+30JQs1yKO7w7ItKBDgQBdRPjn3fBWDDrpQShBESb8p.vO
JUJ+nvL0SUAC.AjFIrWr4+p5r4gScimEE56IJ7qx9HWUUMeyubY+nhR8hBhh
y5Afx4t5InxKqIWr4JiHsvv7GlkPiD+ejpVxHnB.IQ3NYhJ8eNFZcQwuKkRZ
5vj4td9JqcoJgr08bYOb1ApNjBD99mjokk7Y+68C7EurtCXl+Xeuotgg7fUT
GUj7EFjppSnLDJoDEcEyrgWs7vm5OluRw9lhCm+6xlL2WFvwG6Khk9WtVtUk
.UZdgdA7IEJ0mThs7SUnkJ0O0K8gXe2fBWzOhhlk5dfzQVTFDYsgL.LmQTGG
KLlxHXlCwQkEzBORUjCVVC0FxnpfNBgMBSo1XHEgYxy0XyjPpMbj73PHlrHa
Dk.XkMNYRJQyQuOMMJfeWZJi6F6JbuCr7Qt4mmNIG9Uwn9gShJk8HqhTbP9+
G4AQdRBgAOT8x47ptuzPR4+mrHzS3qxIWtVYVCy0ROYl44ju3tmy+Qkk6tIA
QtBaxxBMKb9spcP.C.f1LETWRVIEJbakUI0jOOlmHuLE25l0Cwxv6Jk7RRn6
7pEMNZlqeX+anTj5hSHLMBqClqfOadTravrnw7LyOPZ3Otl2Vl9iGNtlK8I+
whopW3tPDU8Hlx8eXpPecIx3lfzyRLIJV3yGmdRibR3pl4EM+kmlxCSlKSLU
S1tdx7EIYpr6X2vwOE6KVo1KaHZchsRtF5osGMjZs95AR8.oNugXsjZ+PQfe
hPOmVakmn4oKcobsjFxbXDp7hd1DKJLJbKYPsT3xKLfXgX6apFbmnZD84OU1
RyjsFp9DMC5VR2.CrrZrLqlRn0XxrgDYCIx1JJlcyIx1PRrgDXCIvZC6hpkc
kN6tZIW0qQG25TCa2sq1koOx0Ofugq.QasukXLCffXq0RMezveczhwIyaJ4X
8ZNj4Fsg.HDAND4FO4GKIDn00GHen20WulgTWMBtPsfqZYZ0As0Ao+I.s6VF
Kn9Y1ChFf1NCs5meIHd.Z6Lzpe9TfjAnsyPq9IQ.ZM.scFZ0O3Yn8.z1YnU+
HGgzAnsyPq9ANBYCPamgV8iWD5L.scEZQ0FO13Wjux2KQO1pu1L70br4aDBS
wLr8Q5fxP0FTVvKwMhuMMSclAlCC3sN1VaTYtRY5sHHcpUZ.h2PSxwZ2Sad7
Nlon1vzTRap7XZJKrtZyQ3oCHrFDt1n0bCkxys4acnFyVHLGNWWc7U+P1PCC
Yq6Pq9grgFFxV2gV8CYCMLjstCs5GxFZXHacGZ0OjMzvP15Lzh0uDZXv.z1E
nsbeMalrMI0+zJDI3k+eoCYZT73Jun758lciAT7+FcDZtKxOPBDenEH4PKPq
Co.WU6L23+P8wfqZgk+TNcQoOhSU4rkFlZwmclU0VL5p50T8IV9zouV8v2SR
WdHRC5c.+QdPdFjpgRYGY1qe0PdHvwwRszoP.yhhoNLo.s.UtoH.8U2CQ3Mz
8.8fTc7o0HQspYqYIYKXQ6LEpiC1glaI1XqV.T8Q2C0z8avBQUpF+yfEB1NK
bceHq8Z.iwPpYptMb8AF4oOirI9.7jiQ9N36Q8Pp110M3WsaxYAs7L.YWOBt
uOOYe5GwHGlE1JyQRv.pxQBA8GUsp..VvkBnSjUbOoDGtb3amN7OdjF0Ajv1
xgBnY2rxV.DBAXuNTS9oHnoinHYOChr9n+ObmEamrw9gId.iI2NqbOEStSwL
jAW4AJngrOoSGIWlTGRFlaspqp+04s8ZbCA4PnLGaqr4hvFPjmM.2uTakLXx
.RJIWFPGqMJi83ocRsW.fgA45hjq0F6ce4L2pymnTdaHBjEQHUdGa7aqxusz
fF09CXRtsFE2SSSwtF5w1ih33Jni0S4X1L4B2axo8orYcDL2Ve5ayoH2JjkA
oPaXFrRbnvz3SVCduSftuOCvZT58Sv0VYbmr9mtbNmcDA6y7FaEGodNil2A8
Vt669M09r2ttKdJh4b8aXoV6sMEyF2wSQHc6Ikux9Qo1c.0l2xD0ryHJG15H
HFwrg1p61Sniza8NKqQPJggn1xy73fXpb8ps9vzcRVaFkp1IDS2HYsx1ZdoL
nC.gkcDdMmlBia0tdX11A45qVbx1uBwMdxl1dSWHO4JyQYcs9i7NiQsrPU+r
DRpGZ0aqFb8NF0OqCb8Ndax3TsmqtFQ0ST2K8LbSie6HwouufvNPmdsNd+ox
r8UD.4mmNdfl9V2wulOm06oSOx74mNpCAYaCS2vI5Y0o8iYsg.p9ZMq6Duei
q6VOpyuZOu+z4dagi5Qk9Ucg81Zm1Ikd+AGGM8bushdGRkF0+8b+jSa2mV+s
9Vduydyll0x2FMQ2L31OZROLq3GbEYuPN5gk05z.HHGK.wwS3J6XQQNZhVQ+
rl+p+cM8x4F69xazZq.QrYD8vIB18EIni5w2M0M68qlH3Fm79zivrzWuREyk
e57VqJu5L5mDsH1qXh1y+VCqzWLQi4IB+vrMDfUsAgxZj1EMnsBpnS1njf0D
TlA5Ned9ZHjJEkLLm496YeCVwtH8s9gYuM8a1MyX9i9EsOcV9Mci8l5K3dhE
wYyy+y1DyrCMZLONbgeZaOWYcmq9tVxMII8aAp44qlQ55ib9ec9eCAD3VhC
-----------end_max5_patcher-----------
</code></pre>