--- title: "Simply Music" type: "article" slug: "simply-music" url: "http://localhost/article/simply-music/" markdown_url: "http://localhost/article/simply-music.md" published_at: "2020-10-27T17:10:18+00:00" modified_at: "2024-05-26T13:20:37+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Basic program that uses the three sound channels of the TS 2068 to create music." category: - name: "Time Designs Magazine" slug: "time-designs" taxonomy: "category" url: "http://localhost/category/periodicals/time-designs/" post_tag: - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" - name: "Type-in program" slug: "type-in-program" taxonomy: "post_tag" url: "http://localhost/tag/type-in-program/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Stan Lemke" slug: "stan-lemke" taxonomy: "indiv" url: "http://localhost/indiv/stan-lemke/" publication: "Time Designs Magazine" publication_r: id: 10277 title: "Time Designs Magazine" type: "periodical" url: "http://localhost/periodical/time-designs-magazine/" authors: "Stan Lemke" volume: "3" issue: "1" issues_articles: - id: 26781 title: "Time Designs Magazine v3 n1" type: "issue" url: "http://localhost/issue/time-designs-magazine-v3-n1/" pages: "28" pubdate: "November/December 1986" archive_link: false volumeissue: "v3n1" article_media: - id: 69503 title: "Simply Music" type: "computer_media" url: "http://localhost/computer_media/simply-music/" --- # Simply Music Basic program that uses the three sound channels of the TS 2068 to create music. ## Source Code: Simply Music ``` 10 REM Simply Music \* S. D. Lemke Lemke Software 2144 White Oak Wichita, KS USA 67207 TIME DESIGNS MAG, NOV/DEC 1986 20 PAPER 1: BORDER 1: INK 7: CLS : PRINT AT 10,7;"PREPARING SCORE": LET n0=0: LET n2=2: LET n8=8: GO SUB 350 30 LET p=0: LET vb=13: LET vs=vb: LET va=vb: LET q=p: GO SUB 290 40 LET b1=n0: LET d1=b1: LET f1=b1 50 LET b=0: LET d=b: LET f=b 60 LET b=b-1: LET d=d-1: LET f=f-1 70 IF INKEY$<>"" THEN GO SUB 190 80 IF q THEN PRINT AT 10,15;"\a" 90 IF NOT q THEN PRINT AT 10,15;"\b" 100 LET q=NOT q 110 IF b<=0 AND p THEN SOUND 8,0 120 IF b<=0 THEN LET b1=b1+1: LET b=s(1,3,b1): LET sv=vs: IF s(1,1,b1)=0 THEN LET sv=0 130 IF d<=0 AND p THEN SOUND 9,0 140 IF d<=0 THEN LET d1=d1+1: LET d=s(2,3,d1): LET av=va: IF s(2,1,d1)=0 THEN LET av=0 150 IF f<=0 AND p THEN SOUND 10,0 160 IF f<=0 THEN LET f1=f1+1: LET f=s(PI,PI,f1): LET bv=vb: IF s(PI,1,f1)=0 THEN LET bv=0 170 IF b1>n1 OR d1>n2 OR f1>n3 THEN GO TO 280 180 SOUND 0,s(1,1,b1);1,s(1,2,b1);2,s(2,1,d1);3,s(2,2,d1);4,s(3,1,f1);5,s(3,2,f1);8,sv;9,av;10,bv: GO TO 60 190 LET i$=INKEY$: IF i$="" THEN RETURN 200 IF i$="B" OR i$="b" THEN LET vb=vb+1: IF vb>15 THEN LET vb=0 210 IF i$="A" OR i$="a" THEN LET va=va+1: IF va>15 THEN LET va=0 220 IF i$="S" OR i$="s" THEN LET vs=vs+1: IF vs>15 THEN LET vs=0 230 IF i$="S" OR i$="s" THEN PRINT AT 12,0;"SOPRANO ";AT 12,8;vs;AT 12,13;: FOR i=1 TO vs: PRINT PAPER 5;" ";: NEXT i: FOR i=vs TO 15: PRINT PAPER 1;" ";: NEXT i 240 IF i$="A" OR i$="a" THEN PRINT AT 14,0;"ALTO ";AT 14,8;va;AT 14,13;: FOR i=1 TO va: PRINT PAPER 6;" ";: NEXT i: FOR i=va TO 15: PRINT PAPER 1;" ";: NEXT i 250 IF i$="B" OR i$="b" THEN PRINT AT 16,0;"BASE ";AT 16,8;vb;AT 16,13;: FOR i=1 TO vb: PRINT PAPER 2;" ";: NEXT i: FOR i=vb TO 15: PRINT PAPER 1;" ";: NEXT i 260 IF i$="P" OR i$="p" THEN LET p=NOT p: PRINT AT 18,0;"Phrasing is ";("not " AND p);"Legato. " 270 RETURN 280 SOUND 8,0;9,0;10,0: PRINT #0;AT 1,2;"Press any key to continue.": PAUSE 0: GO SUB 290: GO TO 40 290 CLS : PRINT AT PI,8;"Simply Music": PRINT AT 6,0;t$: LET i$="S": GO SUB 230: LET i$="A": GO SUB 240: LET i$="B": GO SUB 250 300 PRINT AT 20,0;"Press S for SOPRANO, A for ALTO B for BASE, P for PHRASING" 310 PRINT AT 18,0;"Phrasing is ";("not " AND p);"Legato. " 320 PRINT #0; INVERSE 1;" Press ""ENTER"" to Start Song. " 330 GO SUB 190: IF i$<>CHR$ 13 THEN GO TO 330 340 PRINT #0;AT 0,0;TAB 31;" ";TAB 31;" ": RETURN 350 DIM s(PI,PI,400): SOUND 0,0;1,0;2,0;3,0;7,56;8,0;9,0;10,0;11,50;12,120;13,10 360 RESTORE 420: READ t$: READ n1: FOR i=1 TO n1: FOR j=1 TO 3: READ s(1,j,i): NEXT j: NEXT i 370 RESTORE 450: READ n2: FOR i=1 TO n2: FOR j=1 TO 3: READ s(2,j,i): NEXT j: NEXT i 380 RESTORE 490: READ n3: FOR i=1 TO n3: FOR j=1 TO 3: READ s(3,j,i): NEXT j: NEXT i 390 DATA 0,192,32,16,60,60,60,255,n0,3,4,n8,60,60,60,255 400 RESTORE 390: FOR i=0 TO 15: READ b: POKE USR "a"+i,b: NEXT i 410 RETURN 420 DATA " Canon in D by Pachebel",56,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,74,n0,n8,84,n0,n8,94,n0,n8,99,n0,n8,112,n0,n8,125,n0,n8,112,n0,n8,99,n0,n8,74,n0,n8,84,n0,n8,94,n0,n8,99,n0,n8,112,n0,n8,125,n0,n8,112,n0,n8,99,n0,8 430 DATA 74,n0,n8,84,n0,n8,94,n0,n8,99,n0,n8,112,n0,n8,125,n0,n8,112,n0,n8,99,n0,n8,74,n0,n8,84,n0,n8,94,n0,n8,99,n0,n8,112,n0,n8,125,n0,n8,112,n0,n8,99,n0,8 440 DATA 74,n0,n8,84,n0,n8,94,n0,n8,99,n0,n8,112,n0,n8,125,n0,n8,112,n0,n8,99,n0,n8,74,n0,n8,84,n0,n8,94,n0,n8,99,n0,n8,112,n0,n8,125,n0,n8,112,n0,n8,99,n0,20 450 DATA 128,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,94,n0,n8,99,n0,n8,112,n0,n8,125,n0,n8,141,n0,n8,149,n0,n8,141,n0,n8,167,n0,8 460 DATA 94,n0,4,125,n0,4,99,n0,4,125,n0,4,112,n0,4,149,n0,4,125,n0,4,149,n0,4,141,n0,4,188,n0,4,149,n0,4,188,n0,4,141,n0,4,188,n0,4,167,n0,4,141,n0,4,74,n0,n2,125,n0,n2,94,n0,n2,125,n0,n2,99,n0,4,125,n0,4,94,n0,n2,149,n0,n2,112,n0,n2,149,n0,n2,125,n0,4,149,n0,4,112,n0,n2,188,n0,n2,141,n0,n2,188,n0,n2,149,n0,4,188,n0,4,112,n0,n2,188,n0,n2,141,n0,n2,188,n0,n2,167,n0,4,141,n0,4 470 DATA 74,n0,n2,125,n0,n2,94,n0,n2,125,n0,n2,84,n0,n2,125,n0,n2,99,n0,n2,125,n0,n2,94,n0,n2,149,n0,n2,112,n0,n2,149,n0,n2,99,n0,n2,149,n0,n2,125,n0,n2,149,n0,n2,112,n0,n2,188,n0,n2,141,n0,n2,188,n0,n2,125,n0,n2,188,n0,n2,149,n0,n2,188,n0,n2,112,n0,n2,188,n0,n2,141,n0,n2,188,n0,n2,99,n0,n2,167,n0,n2,125,n0,n2,141,n0,2 480 DATA 94,n0,n2,125,n0,n2,94,n0,n2,125,n0,n2,99,n0,n2,125,n0,n2,99,n0,n2,125,n0,n2,112,n0,n2,149,n0,n2,112,n0,n2,149,n0,n2,125,n0,n2,149,n0,n2,125,n0,n2,149,n0,n2,141,n0,n2,188,n0,n2,141,n0,n2,188,n0,n2,149,n0,n2,188,n0,n2,149,n0,n2,188,n0,n2,141,n0,n2,188,n0,n2,141,n0,n2,188,n0,n2,125,n0,n2,167,n0,n2,125,n0,n2,141,n0,14 490 DATA 56,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,8 500 DATA 119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,8 510 DATA 119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,n8,119,1,n8,245,1,n8,190,1,n8,84,n2,n8,51,n2,n8,239,n2,n8,51,n2,n8,245,1,20 520 SAVE "Simply M" LINE 10 ```