* IOhannes m zmoelnig via Pd-list <[email protected]> [2026-01-28 15:04]: > On 1/28/26 14:36, Benjamin Wesch wrote: > > On Wed, Jan 28, 2026 at 12:10 PM IOhannes m zmoelnig via Pd-list > > <[email protected]> wrote: > > > like in the attached patch. > > > > this is really cool - thanks for the contributions and inspiration, > > cyrille and iohannes! > > with left-aligned text, i saw that the lists with additional line > > break characters result in a leading whitespace on the left. > > yes. > that's because we are actually adding a *word* with the content "\n" - and > the word is surrounded by whitespace. > > basically, my advice is to use the [string( message with unicode points: > - use [file] to read the raw UTF-8 bytes > - use [unicode/utf82codenumber] to convert the UTF-8 bytes into > unicode-points > - prefix [string(
I tried to implement this (see attached) but [text2d] renders the actual bytes as numbers... Something I am missing? Thanks to all of you! best, P
I am only a test and this is my second line
#N canvas 248 231 595 447 12; #X declare -lib Gem; #X msg 169 227 close \, open /tmp/peter.txt; #X obj 397 187 file size; #X msg 397 127 /tmp/peter.txt; #X obj 397 157 symbol .; #X obj 379 233 i; #X obj 171 53 t b b b; #X msg 171 23 bang; #X obj 74 339 utf82codenumber; #X obj 38 24 declare -lib Gem; #X obj 39 80 gemwin; #X msg 38 55 create \, 1; #X obj 59 166 gemhead; #X obj 59 402 text2d; #X obj 74 374 list prepend string; #X obj 74 305 file; #X connect 0 0 14 0; #X connect 1 0 4 1; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 4 0 14 0; #X connect 5 0 4 0; #X connect 5 1 0 0; #X connect 5 2 2 0; #X connect 6 0 5 0; #X connect 7 0 13 0; #X connect 10 0 9 0; #X connect 11 0 12 0; #X connect 13 0 12 0; #X connect 14 0 7 0;
#N canvas 174 201 649 594 10; #X obj 102 142 inlet byte; #X obj 216 450 outlet byte; #N canvas 327 61 739 602 shifter 0; #X obj 166 290 +; #X obj 166 343 t f f; #X msg 215 309 0; #X obj 166 314 << 6; #X obj 166 365 >> 6; #X obj 134 403 f; #X obj 134 208 t b l; #X obj 134 169 inlet multibytelist; #X obj 134 431 outlet bytestream; #X text 74 60 converts a correctly-sized multi-byte list into a single code-point \, by shifting and adding the elements appropriately.; #X text 77 108 header-bits (e.g. bits not carrying any pay-load) MUST be stripped off beforehand.; #N canvas 6 61 450 300 serialize 0; #X obj 110 85 until; #X obj 123 168 list store; #X obj 144 52 t b b l; #X obj 110 110 f; #X obj 148 111 + 1; #X msg 167 85 0, f 2; #X msg 110 141 get \$1 1; #X obj 123 193 outlet; #X obj 144 28 inlet; #X connect 0 0 3 0; #X connect 1 0 7 0; #X connect 1 1 0 1; #X connect 2 0 0 0; #X connect 2 1 5 0; #X connect 2 2 1 1; #X connect 3 0 4 0; #X connect 3 0 6 0; #X connect 4 0 3 1; #X connect 5 0 3 1; #X connect 6 0 1 0; #X connect 8 0 2 0; #X restore 166 260 pd serialize; #X obj 166 234 t l b; #X connect 0 0 3 0; #X connect 1 0 4 0; #X connect 1 1 0 1; #X connect 2 0 0 1; #X connect 3 0 1 0; #X connect 4 0 5 1; #X connect 5 0 8 0; #X connect 6 0 5 0; #X connect 6 1 12 0; #X connect 7 0 6 0; #X connect 11 0 0 0; #X connect 12 0 11 0; #X connect 12 1 2 0; #X restore 186 263 pd shifter; #X text 175 140 UTF-8 multibyte; #N canvas 272 61 977 874 stream2multibytelist 0; #X text 259 228 aux; #X text 393 231 2byte; #X text 456 233 3byte; #X text 526 233 4byte; #X text 180 232 1byte; #X obj 181 249 & 127; #X obj 391 249 & 31; #X obj 251 249 & 63; #X obj 460 249 & 15; #X obj 530 249 & 7; #X obj 251 270 t f b; #X msg 213 292 1; #X obj 248 581 t l l; #X obj 181 613 list prepend; #X msg 423 294 2; #X obj 181 271 t f b; #X obj 391 270 t f b; #X obj 460 273 t f b; #X msg 492 297 3; #X obj 530 271 t f b; #X msg 562 295 4; #X obj 248 555 list prepend; #X obj 181 207 moses 128; #X obj 251 207 moses 192; #X obj 391 207 moses 224; #X obj 460 207 moses 240; #X obj 329 534 t b b; #X obj 181 689 outlet multibytelist; #X obj 181 154 inlet bytestream; #X obj 456 683 outlet error; #X text 58 35 converts a bytestream into atomic multibyte representations (aka "list"s) of characters.; #X text 63 69 header-bits (used for describing the multibyte-nature in the incoming stream) are stripped of the lists); #X text 521 479 errors:; #X text 550 502 a continuation-byte at the beginning; #X text 550 518 a continuation-byte after the last byte; #X text 550 542 a start-byte within a sequence; #X text 555 587 192-193: overlong encoding; #X text 555 618 245-253: restricted by RFC-3629; #X text 556 637 254-255: not defined; #X obj 530 207 moses 245; #X obj 590 238 t b; #X text 653 243 5byte \, 6byte; #X text 653 229 codepoint > 0x10FFFF; #X text 653 259 undefined; #X obj 520 634 t b; #X obj 181 181 t f f; #X obj 181 643 t l b; #N canvas 234 245 992 588 multibyte 0; #X obj 70 66 inlet byte; #X obj 313 61 inlet newlength; #X obj 115 543 outlet byte|bang; #X text 246 539 byte: append byte to list; #X text 247 556 bang: list has finished; #X obj 527 464 outlet error; #X obj 527 175 select 0; #X text 577 206 unexpected byte (continuation-byte at beginning); #X obj 70 100 pack 0 0; #X msg 132 100 0; #X obj 70 258 select 0; #X text 148 263 state: 0=expect new sequence; #X text 199 280 1=expect continuation; #X obj 70 196 == 0; #X text 76 214 0=newbyte; #X text 76 227 1==contbyte; #X text 605 312 overlong; #X obj 115 483 f; #X obj 70 145 swap; #X obj 70 168 t f f; #X obj 70 279 f; #X obj 70 308 select 0; #X obj 70 347 i; #X obj 99 347 - 1; #X obj 70 390 select 1; #X obj 70 413 t b b; #X msg 185 350 0; #X obj 121 328 t f b; #X msg 153 349 1; #X obj 185 372 t f; #X obj 330 383 < 1; #X obj 330 408 select 1; #X obj 70 121 t l b l; #X obj 549 317 t b b; #X obj 527 213 t b b; #X obj 70 369 t f b f; #X obj 116 509 t a a; #X obj 527 422 t b b; #X text 79 30 now this is a bit overcomplicated....; #X connect 0 0 8 0; #X connect 1 0 8 1; #X connect 6 0 34 0; #X connect 8 0 32 0; #X connect 9 0 8 1; #X connect 10 0 20 0; #X connect 10 1 34 0; #X connect 13 0 10 0; #X connect 17 0 36 0; #X connect 18 0 19 0; #X connect 18 1 17 1; #X connect 19 0 13 0; #X connect 19 1 20 1; #X connect 20 0 21 0; #X connect 21 0 22 0; #X connect 21 1 27 0; #X connect 22 0 23 0; #X connect 22 0 35 0; #X connect 23 0 22 1; #X connect 24 0 25 0; #X connect 24 1 30 0; #X connect 25 0 36 0; #X connect 25 1 26 0; #X connect 26 0 29 0; #X connect 27 0 22 0; #X connect 27 1 28 0; #X connect 28 0 29 0; #X connect 29 0 10 1; #X connect 30 0 31 0; #X connect 31 0 33 0; #X connect 32 0 18 0; #X connect 32 1 9 0; #X connect 33 0 37 0; #X connect 34 0 37 0; #X connect 35 0 24 0; #X connect 35 1 17 0; #X connect 36 0 2 0; #X connect 37 0 5 0; #X connect 37 1 26 0; #X restore 181 424 pd multibyte; #X obj 181 450 route bang; #X obj 262 450 t b b; #X obj 213 335 t f; #X text 266 407 #expectedbytes; #X text 233 371 byte; #X obj 181 368 t f f; #X obj 321 207 moses 194; #X obj 521 582 t b; #X obj 712 141 inlet reset; #X connect 5 0 15 0; #X connect 6 0 16 0; #X connect 7 0 10 0; #X connect 8 0 17 0; #X connect 9 0 19 0; #X connect 10 0 53 0; #X connect 11 0 50 0; #X connect 12 0 13 1; #X connect 12 1 21 1; #X connect 13 0 46 0; #X connect 14 0 50 0; #X connect 15 0 53 0; #X connect 15 1 11 0; #X connect 16 0 53 0; #X connect 16 1 14 0; #X connect 17 0 53 0; #X connect 17 1 18 0; #X connect 18 0 50 0; #X connect 19 0 53 0; #X connect 19 1 20 0; #X connect 20 0 50 0; #X connect 21 0 12 0; #X connect 22 0 5 0; #X connect 22 1 23 0; #X connect 23 0 7 0; #X connect 23 1 54 0; #X connect 24 0 6 0; #X connect 24 1 25 0; #X connect 25 0 8 0; #X connect 25 1 39 0; #X connect 26 0 21 1; #X connect 26 1 13 1; #X connect 28 0 45 0; #X connect 39 0 9 0; #X connect 39 1 40 0; #X connect 40 0 44 0; #X connect 44 0 29 0; #X connect 45 0 22 0; #X connect 46 0 27 0; #X connect 46 1 26 0; #X connect 47 0 48 0; #X connect 47 1 49 0; #X connect 48 0 13 0; #X connect 48 1 21 0; #X connect 49 0 29 0; #X connect 49 1 26 0; #X connect 50 0 47 1; #X connect 53 0 47 0; #X connect 54 0 55 0; #X connect 54 1 24 0; #X connect 55 0 29 0; #X connect 56 0 26 0; #X restore 186 241 pd stream2multibytelist; #X text 47 43 converts a stream of UTF-8 bytes into a stream of Unicode code numbers; #X text 53 95 multibyte characters are not output before the last byte has been received; #X obj 500 306 outlet error; #X text 161 478 if the bytestream is invalid \, a message is sent to the output; #X text 134 519 (c) 2009 IOhannes m zm�lnig & Maira Sala; #N canvas 6 61 450 467 args 0; #X obj 104 51 loadbang; #X obj 104 101 pdcontrol; #X msg 104 76 args 0; #N canvas 6 61 450 300 serialize 0; #X obj 110 85 until; #X obj 123 168 list store; #X obj 144 52 t b b l; #X obj 110 110 f; #X obj 148 111 + 1; #X msg 167 85 0, f 2; #X msg 110 141 get \$1 1; #X obj 123 193 outlet; #X obj 144 28 inlet; #X connect 0 0 3 0; #X connect 1 0 7 0; #X connect 1 1 0 1; #X connect 2 0 0 0; #X connect 2 1 5 0; #X connect 2 2 1 1; #X connect 3 0 4 0; #X connect 3 0 6 0; #X connect 4 0 3 1; #X connect 5 0 3 1; #X connect 6 0 1 0; #X connect 8 0 2 0; #X restore 136 162 pd serialize; #X obj 136 190 select -l; #X msg 136 215 1; #X obj 118 245 i; #X obj 104 132 t b a; #X obj 118 270 s \$0-mode:list; #X connect 0 0 2 0; #X connect 1 0 7 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 6 1; #X connect 6 0 8 0; #X connect 7 0 6 0; #X connect 7 1 3 0; #X restore 488 105 pd args; #X obj 102 165 route bang; #N canvas 6 61 450 300 serialize 0; #X obj 110 85 until; #X obj 123 168 list store; #X obj 144 52 t b b l; #X obj 110 110 f; #X obj 148 111 + 1; #X msg 167 85 0, f 2; #X msg 110 141 get \$1 1; #X obj 123 193 outlet; #X obj 144 28 inlet; #X connect 0 0 3 0; #X connect 1 0 7 0; #X connect 1 1 0 1; #X connect 2 0 0 0; #X connect 2 1 5 0; #X connect 2 2 1 1; #X connect 3 0 4 0; #X connect 3 0 6 0; #X connect 4 0 3 1; #X connect 5 0 3 1; #X connect 6 0 1 0; #X connect 8 0 2 0; #X restore 186 217 pd serialize; #X obj 159 317 list store; #X msg 186 286 append \$1; #X obj 159 191 t b a b; #X obj 216 430 t l; #X obj 159 351 route bang; #X text 304 452 unicode code number(s); #X obj 102 188 t b b; #X connect 0 0 11 0; #X connect 2 0 14 0; #X connect 4 0 2 0; #X connect 4 1 7 0; #X connect 11 0 19 0; #X connect 11 1 15 0; #X connect 12 0 4 0; #X connect 13 0 17 0; #X connect 14 0 13 0; #X connect 15 0 13 0; #X connect 15 1 12 0; #X connect 15 2 13 1; #X connect 16 0 1 0; #X connect 17 1 16 0; #X connect 19 0 13 1; #X connect 19 1 4 1;
--- [email protected] - the Pure Data mailinglist https://lists.iem.at/hyperkitty/list/[email protected]/message/67RHGQ4336GUNTFFZ5NPU453FKRTCVOZ/ To unsubscribe send an email to [email protected] mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/
