Magazine Archive

Home -> Magazines -> Issues -> Articles in this issue -> View

Lynx Grid Programmer

A rhythmic program


Chris Everard presents the first step towards making your Lynx a musical Mastermind

This is just the first part of the software we've designed that enables you to use your Lynx computer to send out series of variable trigger pulses using a grid system. The method used is similar to the programming system found on quite a few commercially available drum computers, such as the TR606 from Roland.

When you run the program, a grid will be drawn which will consist of a large box and a smaller one beneath. The largest will contain the Entering grid which is made up of small squares assembled in rows. Each row is made up of 16 squares in four groups of four. The small box beneath the grid box contains the commands for the entering system.

The aim is to make this program as variable as possible and so new software is constantly being developed. The way you WRITE trig pulses into the memory is via a moving, controllable dot which moves from square to square. When you wish to enter, a pulse, or beat, into the memory, the square concerned gets shaded in and this gives you an immediate visual display of the information stored. Some of the other functions we've already worked out will enable the user to START/STOP (obvious), JUMP the control dot left and right by one group, EDIT trigger sequences, STEP backwards and forwards by one beat, SEQUENCE STEP and play and also to call up selected segments and play them in chains. Another time-saving function is the ability to move vertically over the grid, utilising the up and down keys. This means that if you're on the last square of the second group and there are no other pulses to be entered before that same position on the line below, you can just hop down using the down key and carry on programming.

If you should accidentally depress a wrong key while the program is running a phrase will appear on screen which says — "NO SUCH FUNCTION, PLEASE RETRY". A "?" will appear if you try to enter a trig pulse between any of the boxes.

This is only the first part of the software which is really just the grid itself and some of the essential, basic commands. Because this is only the first part, some of the lines may look a bit out of place and you may think that some of it isn't logical; as the next parts are published things should become clearer.

On lines 330, 1110 and 1160, do not enter the words between the speech marks. These are commands used to just blank out previous on-screen information. Only enter the spaces indicated between the speech marks using the space bar.

The aim is to make this as flexible as possible, so you may find that in future issues amendments to previous parts of software published may be made to update the system and/or to make it faster etc.

There's no reason why extras can't be added to this program to give it the capability of controlling more than one or two things at a time. In fact — like all computer programs — the world is your oyster (until the memory runs out), and eventually this software could be adapted to turn your Lynx into the 'brain' of your instrument setup. Pulses could be used to control drum machines' Start/Stop functions and the same could be applied to sequencers not receiving direct clocking from the Lynx. Using a computer as a central control unit for even just one piece of equipment makes things a lot easier on stage and also in the studio.

Lynx Grid Listing
1. TEXT
4. VDU24
8. PRINT @ 10, 10; "(c) KNUTHOUSE SOFTWARE 1984"
10. VDU25
12. PAUSE 20000
14. OUT &0086, 12
16. REPEAT
18. FOR A = 1 TO 13
20. PAUSE 1900
22. OUT (&0087), A
24. NEXT A
26. OUT (&0086), 13
28. FOR A = 1 TO 33
30. OUT (&0087), A
32. PAUSE 777
34. NEXT A
36. PAUSE 5000
38. OUT (&0086), 12
40. OUT (&0087), 0
42. OUT (&0086), 13
44. OUT (&0087), 0
100. DIM T (400)
110. FOR V = 1 TO 400
120. LET T (V) = 0
130. NEXT V
140. LET 1 = 0
150. PROC SCREEN
160. PROC TRIGS
170. REM
180. PROTECT MAGENTA
190. INK GREEN
200. REM —- MAIN SECTION
210. VDU20
220. LET A$ = GETS
230. IF A$ = "S" THEN PROC EXECUTIVE
240. IF A$ = "W" THEN PROC WRITE
250. IF A$ = "E" THEN PROC ERASE
260. IF A$= "Z" THEN PROC STEP
270. IFA$= "P" THEN PROC PAGE
280. IF A$ = "R" THEN PROC RUN-PAGE
290. IFA$ = "N" THEN PROC NEW
300. IF A$ = "B" THEN GOTO 200
320. BEEP 100, 900. 63
330. PRINT@ 10, 8; "NO SUCH FUNCTION PLEASE RETRY"
340. PAUSE 4500
350. PRINT@ 10, 8; "29 spaces"
360. GOTO 200
370. END
380. DEFPROC SCREEN
390. PROTECT 0
400. CLS
410. INK RED
420. VDU 21
430. REM -BORDER -
440. PLOT 4, 10, 10
450. DRAW 230, 10
460. DRAW 230, 220
470. DRAW 10, 220
480. DRAW 10, 10
490. REM -—BOTTOM BOX --
500. PLOT 4, 10, 225
510. DRAW 230, 250
530. DRAW 10, 250
540. DRAW 10, 225
550. REM - LABELS - -
560. PROC MENU-FUNCTIONS
570. PROTECT YELLOW
580. ENDPROC
590. DEFPROC TRIC.S
600. INK BLUE
610. FOR Y = 20 TO 210 STEP 20
620. AFOR X= 25 TO 210 STEP 10
630. IF X = 65 OR X= I 15 OR X = 165 THEN NEXT X
640. PLOT 4. X, Y
650. DRAW X + 5, Y
660. DRAW X = 5. Y = 5
670. DRAW X. Y + 5
680. DRAW X, Y
690. NEXT X
700. NEXT Y
750. PROTECT
760. ENDPROC
770. DEFPROC W RITE
780. LET X = 27. Y = 23
790. LET L = X, P = Y
800. DOT X, Y
810. VDU20
820. PRINT @ 6.228; CHRS (123); ": IRIGHT" CHRS (124) 1 LEFT >: RIGHT " PRINT@6.239; CHR$ (125)": UP CHRS (126) ': DOWN RETURN: NEXT LINE"
840. PROTECT MAGENTA
850. VDU 21
860. REPEAT
870. LET K = GETN
880. IF K = 58 OR K = 42 THEN PROC STORE
890. IF K = 62 OR K = 46 THEN LET X = X + 50
900. IF K = 60 OR K = 44 THEN LET X = X - 50
920. IF K = 12 THEN LET X = X + 10
920. IF K = 22 THEN LET X = X - 10
930. IF K = I I THEN LET Y = Y - 20
940. IF K = 10 THEN LE I Y = Y + 20
950. IFK= 13 THEN LET Y = Y+20, X = 27
960. IF Y >= 200 THEN LET Y = 203
970. IF Y<20 THEN LET Y = 23
980. IF X< = 20 THEN LET X = 27
990. IF X <= 210 THEN LET X = 207
1000. IF X<> L OR Y<> P THEN INK 0
1010. IF X<> L OR Y< > P THEN DOT L. P
1020. INK GREEN
1030. DOT X, 7
1040. LET L = X. P = Y
1050. UNTIL K = 72
1060. PROC MENU-FUNCTIONS
1070. REM -— AS = B INDICATES RETURN FROM A PROC
1080. LT AS = "B"
1090. DEFPROCSTORE
1110. LET F$ = " one space"
1120. VDU20
1130. IF X = 67 OR X = 1 17 OR X = 167 THEN LET F$ = "X"
1140. IF F$ = "X" THEN PRINT@0,200:
1150. IF F$ = "X" THEN BEEP 1000. 300. 63
1160. IF F$ = "X" THEN PRINT@0,200: "one space"
1170. IF F$ = "X" THEN GOTO 1290
1180. VDU 21
1190. LET I = (((X- 7)/10) - l) + 20* <((Y-3)-20) -1)
1200. PROTECT YELLOW
1210. INK BLUE
1220. FOR 0 = X - 2 TO X = 2
1230. PLOT 4. Q. Y-3
1240. DRAW 0. Y + 2
1250. NEXTO
1260. INK 4
1270. LET T (I) = 1
1280. PROTECT MAGENTA
1290. ENDPROC
1300. DEFPROC MENU-FUNCTIONS
1310. VDU 20
1320. PROTECT MAGENTA
1330. INK GREEN
1340. PRINT @ 6. 228: "S: START II: STOP YV: WRITE E: ERASE"
1350. PRINT. 239: "Z: STEP P: PAGE R: RUN-PAGE N: NEW"
1360. VDU 21
1370. ENDPROC.


Also featuring gear in this article

Connecting Lynx
(ES Mar 84)

Lynx 96
(ES Apr 84)


Browse category: Computer > Camputers



Previous Article in this issue

Keeping Us Posted...

Next article in this issue

Bug-Byte Music Synth


Electronic Soundmaker & Computer Music - Copyright: Cover Publications Ltd, Northern & Shell Ltd.

 

Electronic Soundmaker - Apr 1984

Donated & scanned by: Mike Gorman

Topic:

Computing


Gear in this article:

Computer > Camputers > Lynx

Feature by Chris Everard

Previous article in this issue:

> Keeping Us Posted...

Next article in this issue:

> Bug-Byte Music Synth


Help Support The Things You Love

mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.

If you value this resource, you can support this project - it really helps!

If you're enjoying the site, please consider supporting me to help build this archive...

...with a one time Donation, or a recurring Donation of just £2 a month. It really helps - thank you!
muzines_logo_02

Small Print

Terms of usePrivacy