seq~ read and write
i am trying out writing sequencers into seq~ with the aim to be able to store them as patch of the patch then load them later. writing them doesnt seem to be a problem using the write message, i get a dialogue asking me to name and save in a location, but when i try and read message and navigate to where i saved the text file they are greyed out and dont give me the option to load them.
what am i doing wrong?
Make sure that the filename has a .txt extension.
i knew it had to be something simple and obvious.
thanks for that i’ll give it a try.
well i gave it a try and writing was successful and reading was too, however it seems that once i loaded the txt file it wouldn’t play out. i tried inserting a message to show me the info as it was playing but there was no sound…
As I understand it, seq~ is a sequencer for control data, not audio..
understood, what i should have said was that once i read the txt file, it seemed to have loaded and was playing, but didnt seem to be sending out the data, going to a midi out, that was going into a synth in ableton… hence my confusion over why i couldn’t ‘hear’ the data as it were… :~
Ok, can you see the recorded data in the text file?
If so, connect ‘print’ to seq~ output to check what’s actually sent out.
i tired that and the print window showed it was reading, but in between each event i got a warning saying "object = midi flush message = does not understand list" i’m pasting the patch to see if it makes htings easier, its maxforlive by the way
----------begin_max5_patcher---------- 2596.3oc6cssbiiaD8Y6uBUpxSobXvsFWxSI42XxVSQYQayrzjZEo7LS1Zmu 8fKjTTxhlWAcUIrlxRBfRfcePiS2Mtv42u+ts6x9dT91M+sMeYyc2862e2c1 pLUbWY4619Z32eLIL2901lF8src+6sO3tTQz2KrUe3XbZQUsOkkVjG+ehLWA iBPkUmd503zjnBaCgKq7PXwiuDm97WOF8XgSP.fn+MaDDo4MJ07JV+4M+x4F J6TQUKgZbWSCe0dW29ONFGlr4elkruRnh2aufV3+Kjslp9i6u27xC8TweL60 WiNqi0Ztbytvi+qzNz8CGix0+5vh3rzFpJCwBPBjRxdXCmF.DfPkZcFtkN2S viE.bDl7vFlJ.DfhIdXCHlGProZzTPZ.t3QgtIwuEEr6TQQVMR9V3wZIowk+ B+W19wfJUIB3bEAzXJR+Igz.FViIBMPARLlNbbkAAXPRkbcawCDXIXtABj0F UzJvhG.xIqUrviZMuH53WiRC2kD07G3Z6hebHxIXa2VemyCeKZ+WCKJNFqwp nyeJuD4KgdC1lbJJ6oppqpu4c9Uc+i89VYCe0UispA5lWsR5H23ZwowEZypF Z1sZg7WxNVbyteRU2+kxS19J4kHtoLkjk97GaO8tF7iTwj3ze0zb4soAlFHa eqJXb5SYVQ4V27SZLJu0qlcbezw1Z28QO09EyODEsOI9016WyKhNj2tL+Vbd 7GzqEos8KsJyd5osOneKs177xu42OjkZnSaURBSSyJGZW2s0JVU7ixAIH2Wv x9T81.ohz8o4gOG8Nh9mNF8amhRe7GajaP5+oo8yC1EEVjGXkgM+8jrG+U7P bBRZmuQo89Q3bNhXXwnABNgS0dIHHrkJm2IiS+8Gp19AbKi.AaIFgWi2G+Tx o7Wlo3DnJrKNAa3B.zgKtgiKXVq.iIZmQgMVlm85aZqt4ZdQMM32ptJpYcmd c2ECyaM.CNy.KtWo1WIhQDVAmX+sNun2tcZ.0jA3zSLNmdZtkmRxBK7s2uV7 lzO+en4z+WC6hI656iZqUudC0qme7kMCtxZKmE83ZMbd6jVTckyhvR2JcA9Z 4CvigQQZxSAiDTMqBVGOMUprwqei1yK4ovYiNOkhrmeNIpUBb2kOGn5GCj.2 Rrhzd6wBF39HvHX7vgTR.QvklPFnn.I.BtNaENO.S4HShK.Vi4ffzgGxvGKz 5wtmyReLKI6nqws9ZQ0ufazE0GzlrlayGvsesIyjI36rAWY4++wbaZygvgjv eLR2AjFAXRDi1c.thFzPIRVNu.XO6E.2kW.G9U6EPvMyYmCITLtDFLRpLSNk .qo6o3.FkRrNVYAJEkobSKHQh.pXLdAPAXFFK3Fu.Jlx3pYLtC.0+q3Nnjxu BcP2jQvm9LvysOC7pOiUeF8vmwiIQssvGc5z.6VamxokfLduFfJfpv1ohWmE AlQ.abtrEyABPmyESB+WISY4jzDymgUFUGruhQgQtRRDh57Jd.0q3AGZsY8C .imS.lME3kxjZmdBPf0v.Q6PkIHSa05zMfc05LlurOiUqCPyI5NIiWhRajQk XhxsVnXfa.5IftToTioLjRXsfwZzlxWT3kolU1gIAutXqKobm.nhtIsvRBpb OuByPWwriE1nyMFSbsWGMjX9nlc.Hlpmx5LSH5tFskuIxZFQGotRhYy65LyP qyEymv5LCqwUuFW83HjXctkWXtYgQmdNW.L0z2uKLyzFWQyi8x9cgBq7PeB7 PrUdnUdnwwCQ6bxLkxq4g3NFHM2AgEvDJDHFQf7zyjQD+PFgWIi9DHinqjQq jQiiLpy0Wm3lXwYLnHJx+7PqIm8YvCstP4q7P8XKrljEteWX5yyzNXkIA6N1 wPhP4x.EESvTurWVostUVs5y32Kq8hrtq4SipwNIUXmX8R5ZhlnVCCXIEANN aJCniXEhDAbghYVDbpYEh.J2LckJ6ptilk4SakwtSF64ktdkqdkqdHGXCzFx BbfM3mOvFDkWOvFxY9.azMBxVji7BTifff6UDTr3HHYQPPwYDj4WaP9hif3k 1Fj32icErLG6pCuDlmc7mNbZysAJxfAJPPCX.xs+84ZyNlFtzwXgc.EAMBf5 VGAKR6GNs7XcvAIyJVkmFdPGCSwO0JvMAJb.n.rTLXzRTiV.hTiVtSQwbAVT RqXU0YkZ9fp+rMpMuARDVMHwlUKJJ0GfTarWYuEcb+ocsLraj.EVxBjfNfCo IUQ83PI1rGA3jQm03svo41E4k6W59m+FDHHTrc16jATpfa1Zyj9NvooFIm+i yYa86tSX0l+j+52Qx59czr1uuPmF37ne6mCFb5XydUwdvE3yrG7NrTnCAcXs ydXxdx92RN5fKCHJ8qlc3FkqsHHHXjCOXhka3g47l3wAGlS8b4fC2T9OWCNX xk6nxquCy53CMQZ03CAGNO9P1goBZH.DYT6MuO.EhSmUPPnrFIfgjfb1HYVi vfrfCjraB+1FIM7zevR3rGFAuBe.zrm7Cdoxe7aGiKhF2Vl0c.cwnFO7DtFC 5Ep1i1Y3XYed1JrPP7wnv8i7.KfTMgFR.LRHtOMjevXTOAYqjrMIN85m2ZVs wT+kHed1oiOV0TUgdr4rBsOJuHNsVz9R0i1rlemWh2uOJsIItlR8PllEpTFZ wLnuhDsOhj4I7wRJS8PjnKqHo5CJQTCSlTTQfnd9lsNv3R2t.8hRLv9.zCjj .U070XpZh5DqO5DaXpDlKBvkqUGm5NPrtsvQyBDo8MJm+9RBjz8MQAPYoIpm bRermjCruCGHJePMzodRXz2WhoJOybhaTR5dhIZhwqJw4o2eC8wHlMvwUXU. o7rJ2MN3n1urDiVq4h5zfHS23F0Ckcf84Dsien7fcHsCPMSgJ5pBkiVU1Yj8 pRkOClTTnw.e1jUVy1vtSkcfcrLADvK2nTUcl7l8rtwttXgjb76KUhGJckh5 0DZ5lwls4YmJKeXJKUO76JkEianrXbmJqaRJTT9Ykkwmtx1GyXXfJKdxJqMr vK6Ywnoqr8hnlNLsEj7ZulP4yYtqqZhxMl2GhU5PIVg.ZYdbb2Qyy7TQsRts UMUNRoWjaVsbyTPCO6WVxS5DU4YcBbGByRs3xR9RmD9VmbL0DGG1kk7ksWuz oA5f9hfHbOOVtvbDlAB49LlgpFZTy0A5URshcKq3UkbQLcQOGZ5QOH8StMMB wgAMys4hRdJ2FgezoF96TrFZwkk7jNw8iN0HfEtnoNcQIOoSf26mJOy7k5zE k7jNcs71BGAYnwwzPJUxqiiwV0hH3L5DDbopQNeWVxWNOm+.nY5Q6hx87cU9 cML4Vr4lg6w4lgvYuuTYjAMCMcNxnizG1ZxPSoSabQqVmnRSKyiPsYzzh3i3 xtkbO2wdQ8vL+0THEXQy4vCOcQFy7fIRk7AnqsNDvzylE2m3pFnmMy+0fTk5 ty1..mqflE3nxzyaL8xnYPg7f09TEIjukIcg+39+K97hvKC -----------end_max5_patcher-----------
i guess the midi flush is the problem?
The problem is that you are recording a stream of raw midi bytes without converting into lists.
Quote from the reference page:
"Note: seq~ can be used to sequence MIDI data if the MIDI input stream is converted into lists of MIDI events. This conversion is necessary to avoid outputting a corrupted MIDI stream which would occur if only the raw int messages of a MIDI stream were sequenced individually and the seq~ object were not doing a simple forward linear playback."
good call. i decided to copy the example in that midi subpatch and use that rather than try to rebuild it.
so now i can indeed read and write sequences to text files. great :)
my next question is how can i have those text files as part of the patch, with the aim to record sequences live or recall ‘recorded’ sequencers in real time? i thought a message ‘read = name of text file’ would do it, but that doesnt seem to work. do i have to save the text file in a certain place?
would storing them in a coll be better?
thanks for your help.
The message ‘read filename’ (without ‘=’) should work provided the file is stored in the search path of Max.
You may also look at the [folder] object which allows to fill a menu with the names of files in a folder.
i wasnt using the = in the messages, just in that post.
great i’ll give those a go. many thanks for your help. :)
the folder object is great. does that work with buffer~?
Sure. The filenames of umenu are sent out on the middle outlet and can be used for anything you like.