ISF Logo   IS Forum
Forum Index Register Members List Events Mark Forums Read Help

Go Back   International Skeptics Forum » General Topics » Computers and the Internet
 


Welcome to the International Skeptics Forum, where we discuss skepticism, critical thinking, the paranormal and science in a friendly but lively way. You are currently viewing the forum as a guest, which means you are missing out on discussing matters that are of interest to you. Please consider registering so you can gain full use of the forum features and interact with other Members. Registration is simple, fast and free! Click here to register today.
Reply
Old 4th July 2018, 06:30 AM   #1
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Coding a little custom app?

I'm not at all sure if this is a paying gig. I can pay some small reasonable amount for this, but not enough, obviously, to employ teams of coders.

It should only be a reasonably fun project for someone. It can be a Dr. Racket app, and we could print it here, open source.

This is a computer app of some kind that will print chains of tone-series labels based on user-specified go-to rules. Just all the possible chains.

It's not that I'm lazy*, it's just that there's a huge number of possibilities and computers are much, much better at finding all of them.


===============================
Simple Row-Chainer
===============================
> Could be stand-alone, could be tab in Microtonal Scales

>The user lists the series

>The user lists to which row-forms the series can go to

> The user lists the maximum chain length and the number of
chain-solutions to print

>The "go-to row-forms list" is a list of series-labels that are
the possible rows you can go to from P/0, I/0, R/0, and RI/0. The computer gives four lines beginning "from P/0:, from I/0:, from r/0:, from: RI/0:" and the user fills in the forms.

Example:
from P/0: P/8 r/4 r/5 i/6 ri/10 ri/9

from I/0: i/4 ri/8 ri/9 p/6 r/4 r/2 r/3

from r/0: r/8 p/4 p/5 i/3 i/10 i/9

from: RI/0: ri/4 i/8 i/9 r/6 p/4 p/2 p/3


P = Primary or original
I = Inversion
R = Retrograde
RI= Retrograde Inversion

/n means the transposition level. P/0 is whatever you typed as the original row.


> The go-to list is anything the user types; it doesn't have to actually
be good (in the sense I've been discussing in the 12-tone rows thread.)

> The program calculates the successions based on the logic of your list: If you specify p/0 to p/1 as a legal move, then of course the computer has to have the math to understand that it can also go from p/2 to p/3 wherever they might occur in some list. It does the simple additions and subtractions necessary to keep track of transposition levels ( the number after the /.)


> The program prints every possible solution up to chain-length n and number of solutions m,
every solution being a loop that begins and ends on p/0. A solution cannot contain the same
series twice, other than the p/0 at beginning and end.



example of a line of output, with or without the silly arrows:

p/0 ->r/5 ->p/8 ->ri/4 ->r/10 ->r/6 ->i/4 -> p/10 ->p/6 ->ri/3 -> p/0


Deluxe version:

> There is one more user field: Require Forms
If checked, the program only prints solutions which include at least 1
of the user's listed forms -- that is P, I, R, or RI.

Super-Duper Deluxe version:

>It understands 5m row-forms.




That's it -- not particularly exciting, but it's what I need right now.

I think that this would be used rarely enough that it could be slow and ugly,
as long as it spits out all the right answers.

caleb


* more stupid than lazy

Last edited by calebprime; 4th July 2018 at 07:02 AM.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 4th July 2018, 06:58 AM   #2
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Oh, p.s., I can already see that the user doesn't in fact need to enter the series at all for this to work. Everything is based on the list of possible moves.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 4th July 2018, 07:57 AM   #3
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Simply put -- I'd spend up to $500 on this, but $0 is also ok.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 4th July 2018, 01:55 PM   #4
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
The forms are much less mysterious than they seem, they're just like naming something 4 different versions and having simple rules for toggling back and forth between them. Transposition is just cumulative adding and subtracting mod12. Forty-eight versions or states to move between, total.

Last edited by calebprime; 4th July 2018 at 01:57 PM.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 4th July 2018, 02:00 PM   #5
Molinaro
Illuminator
 
Molinaro's Avatar
 
Join Date: Dec 2005
Posts: 4,201
Dumb question... is this about music? I can't seem to make heads or tails out of what you are talking about and music is a topic that I know absolutely nothing about.
__________________
100% Cannuck!
Molinaro is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 4th July 2018, 02:02 PM   #6
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Oh yes, about music. But it's really about successions of symbols, so it's pretty abstract.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 4th July 2018, 02:07 PM   #7
The Greater Fool
Illuminator
 
The Greater Fool's Avatar
 
Join Date: Feb 2007
Location: Scottsdale, AZ, USA, North America, Earth, Sol, Milky Way
Posts: 3,586
Sorry, most coders became coders because art was so out of reach.

If being a "moody musician" was possible, would we go with computers?
__________________
- "Who is the Greater Fool? The fool? Or the one arguing with the Fool?" [Various; Uknown]
- "The only way to win is not to play." [Tsig quoting 'War Games']
The Greater Fool is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 4th July 2018, 02:53 PM   #8
Hevneren
Thinker
 
Join Date: Jul 2007
Posts: 166
Originally Posted by calebprime View Post
I'm not at all sure if this is a paying gig. I can pay some small reasonable amount for this, but not enough, obviously, to employ teams of coders.

It should only be a reasonably fun project for someone. It can be a Dr. Racket app, and we could print it here, open source.

This is a computer app of some kind that will print chains of tone-series labels based on user-specified go-to rules. Just all the possible chains.

It's not that I'm lazy*, it's just that there's a huge number of possibilities and computers are much, much better at finding all of them.


===============================
Simple Row-Chainer
===============================
> Could be stand-alone, could be tab in Microtonal Scales

>The user lists the series

>The user lists to which row-forms the series can go to

> The user lists the maximum chain length and the number of
chain-solutions to print

>The "go-to row-forms list" is a list of series-labels that are
the possible rows you can go to from P/0, I/0, R/0, and RI/0. The computer gives four lines beginning "from P/0:, from I/0:, from r/0:, from: RI/0:" and the user fills in the forms.

Example:
from P/0: P/8 r/4 r/5 i/6 ri/10 ri/9

from I/0: i/4 ri/8 ri/9 p/6 r/4 r/2 r/3

from r/0: r/8 p/4 p/5 i/3 i/10 i/9

from: RI/0: ri/4 i/8 i/9 r/6 p/4 p/2 p/3


P = Primary or original
I = Inversion
R = Retrograde
RI= Retrograde Inversion

/n means the transposition level. P/0 is whatever you typed as the original row.


> The go-to list is anything the user types; it doesn't have to actually
be good (in the sense I've been discussing in the 12-tone rows thread.)

> The program calculates the successions based on the logic of your list: If you specify p/0 to p/1 as a legal move, then of course the computer has to have the math to understand that it can also go from p/2 to p/3 wherever they might occur in some list. It does the simple additions and subtractions necessary to keep track of transposition levels ( the number after the /.)


> The program prints every possible solution up to chain-length n and number of solutions m,
every solution being a loop that begins and ends on p/0. A solution cannot contain the same
series twice, other than the p/0 at beginning and end.



example of a line of output, with or without the silly arrows:

p/0 ->r/5 ->p/8 ->ri/4 ->r/10 ->r/6 ->i/4 -> p/10 ->p/6 ->ri/3 -> p/0


Deluxe version:

> There is one more user field: Require Forms
If checked, the program only prints solutions which include at least 1
of the user's listed forms -- that is P, I, R, or RI.

Super-Duper Deluxe version:

>It understands 5m row-forms.




That's it -- not particularly exciting, but it's what I need right now.

I think that this would be used rarely enough that it could be slow and ugly,
as long as it spits out all the right answers.

caleb


* more stupid than lazy
I guess I could give it a try. I used to be a musician, now Im a programmer. I have sone knowledge about dodecaphony.
Hevneren is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 4th July 2018, 03:59 PM   #9
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Great, I think you'll find the basic logic is pretty simple even if I didn't make it clear.

I'll check in again tomorrow.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 03:28 AM   #10
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Great Hevneren, I've PM'd you some details. Let me know soon -- this is the kind of thing I want to do now, when it's bugging me.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 04:57 AM   #11
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Originally Posted by calebprime View Post
...
>The user lists to which row-forms the series can go to

...
But if this ever changin' world
In which we live in
Makes you give in and cry
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 05:13 AM   #12
Wolrab
Illuminator
 
Join Date: Dec 2002
Posts: 4,372
I guess I could give it a try. I used to be a magician, now I’m a pro-gamer. I have some knowledge about Dodecanese.
Glad to be of no help whatsoever. Make me learn new words, will you!
__________________
"Such reports are usually based on the sighting of something the sighters cannot explain and that they (or someone else on their behalf) explain as representing an interstellar spaceship-often by saying "But what else can it be?" as though thier own ignorance is a decisive factor." Isaac Asimov
Wolrab is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 05:20 AM   #13
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Thanks Wolrab. I have to wait to see what Hevneren says first. He hasn't gotten back to me yet.

It may help to understand that the program is only dealing with abstract row-label relationships, so for all it knows, the "row" might be 1 note long, or 17 notes long. This means that the logic is simple.

There are 12 transpositions by 4 forms, (backwards/forwards, upside-down/right-side up), so 48 possible squares on the checkerboard.

The user defines what is a legal move.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 05:36 AM   #14
Octavo
Illuminator
 
Octavo's Avatar
 
Join Date: Jun 2007
Location: South Africa
Posts: 3,485
I'm a fairly handy C# dev, willing to spend some time putting together a simple app, but I'm afraid the OP makes very little sense to me, so I would need a lot more explanation.

What I got from it was that the user specifies some starting value and how far to generate variations from that starting value and then uses some mathamatical logic to derive a set of outputs.

If you can help me understand exactly what the user types in as the starting input and how the app should then generate valid outputs based off that (what are the rules for the generation of chains), I might be able to whip something up.

You can see some of my previous work here:
http://github.com/Octavo8/
__________________
This signature is intended to imitate people.
Octavo is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 05:45 AM   #15
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Great, no lack of people with coding chops of different kinds.

Yes, Octavo, your description is more or less right. Music theory is the language I speak, when I speak it I'm thinking in notation or a keyboard or guitar-neck. It has to be translated into the simple math that it is.

Also, I have to use examples, as I've done here. I'm not capable of generalizing enough to explain it properly, often.

69Dodge would just ask me questions until he got it, then he was off to work.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 06:47 AM   #16
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Maybe this can be grasped in a flash if you have the visual image of a typical 12-tone matrix, also sometimes known more fussily as an inversion matrix.

https://unitus.org/FULL/12tone.pdf


Sorry to make someone scroll down through all that verbiage! A completed matrix is finally shown towards the end.

What we're doing is jumping around among the 48 forms of a 12-tone matrix, and because the user supplies the legal moves, the program doesn't need to understand anything about the actual series you're using, presumably.

It may be confusing that when I'm working, I'm thinking of an actual series, but the program doesn't need to know that.

Those are two key concepts that may be causing confusion.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 07:46 AM   #17
Octavo
Illuminator
 
Octavo's Avatar
 
Join Date: Jun 2007
Location: South Africa
Posts: 3,485
Originally Posted by calebprime View Post
Maybe this can be grasped in a flash if you have the visual image of a typical 12-tone matrix, also sometimes known more fussily as an inversion matrix.

https://unitus.org/FULL/12tone.pdf


Sorry to make someone scroll down through all that verbiage! A completed matrix is finally shown towards the end.

What we're doing is jumping around among the 48 forms of a 12-tone matrix, and because the user supplies the legal moves, the program doesn't need to understand anything about the actual series you're using, presumably.

It may be confusing that when I'm working, I'm thinking of an actual series, but the program doesn't need to know that.

Those are two key concepts that may be causing confusion.
Ok, that PDF helped a lot. So would the user input then be the original row pitch classes? The app calculates the 12x12 matrix and then the user defines a ruleset for moving through the matrix?

How do you specify the rules? I'll reread the thread in a minute and see if I understand better.
__________________
This signature is intended to imitate people.
Octavo is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 08:15 AM   #18
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
As user, you choose the rules with a standard form that looks something like this:


From P/0:
From I/0:
From R/0:
From RI/0:


You fill in each line with as many specific row forms from the possible 48.

If I say that from P/0: p/4 (moving from p/0 up 4 steps to p/4) is legal, then
all moves with a p/n adding 4 are also legal.

But note: Not I/4 to I/8, unless I explicitly say so, by saying: I/0 to I/4.

That is, I have to specify each of the 4 basic directions separately, but within each of the 4, the transposition rules are generalizable.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 08:17 AM   #19
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
If you mean, why does the user choose that particular kind of move? -- that depends on the purposes of the user and the particular properties of the exact series she's working with.

Blissfully, we don't have to tell the computer anything about that.

Heh. This is for already-hardened recidivist 12-toners, not fer amateurs.

Last edited by calebprime; 5th July 2018 at 08:19 AM.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 08:24 AM   #20
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Originally Posted by calebprime View Post
As user, you choose the rules with a standard form that looks something like this:


From P/0:
From I/0:
From R/0:
From RI/0:


You fill in each line with as many specific row forms from the possible 48.

If I say that from P/0: p/4 (moving from p/0 up 4 steps to p/4) is legal, then
all moves with a p/n adding 4 are also legal.

But note: Not I/4 to I/8, unless I explicitly say so, by saying: I/0 to I/4.

That is, I have to specify each of the 4 basic directions separately, but within each of the 4, the transposition rules are generalizable.


Not the most elegant way of representing the rules, but it's at the right level of intuition for me, and it's my dime. It's easier-but-dumber to have 4 separate lists like this. 69Dodge might have realized that there was some redundancy, and fought it. Some redundancy is human.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 5th July 2018, 09:50 PM   #21
Octavo
Illuminator
 
Octavo's Avatar
 
Join Date: Jun 2007
Location: South Africa
Posts: 3,485
Originally Posted by calebprime View Post
Not the most elegant way of representing the rules, but it's at the right level of intuition for me, and it's my dime. It's easier-but-dumber to have 4 separate lists like this. 69Dodge might have realized that there was some redundancy, and fought it. Some redundancy is human.
Ok, I think I understand enough to get a start. I'll put something together this afternoon and update the thread then.
__________________
This signature is intended to imitate people.
Octavo is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 6th July 2018, 01:58 AM   #22
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
I haven't heard back from Hevneren, so I take it that he/she doesn't want to do it.

Octavo, you seem interested. Let's go ahead.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 6th July 2018, 05:16 AM   #23
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Here is the way the user screen can look. I've added a few features and some details, which I'll discuss.

The user types in row forms, such as RI/11, I/0. Spaces, no commas.

Code:

from P/0:   

from I/0:    

from R/0:     

from RI/0:   


Minimum and Maximum number of series in chain:

Only print solutions that contain these forms: (or Required Forms, or something)


Max number of solutions to print:

Do It    
Interrupt 
Save Parameters
Eliminate Duplicate Solutions
Because I allow for a redundant set of legal moves, the program might print the same solution multiple times. If not, fine. I'd like to stipulate no duplicate solutions. But if it can't be easily helped, then we may need a command to get rid of them.

It would be useful to be able to set a range of possible chain-length solutions. That way you don't have to look at either chains that are too short or too long, if you don't want to.

It would be nice if you could interrupt the search without losing your input parameters. If this is hard, it's not essential.

It would be nice if you could save your user input in a file you can name.

I almost forgot. It would be fantastic and it would greatly improve the power and usefulness of the program, if the user can type in some "required targets" -- series-forms that the chain has to contain to be printed.

And just a reminder, can't be too clear. The chains are always loops that start and end on P/0 but contain no other repeated series-forms.

Last edited by calebprime; 6th July 2018 at 05:27 AM.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 6th July 2018, 08:35 AM   #24
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Just to be clear, the two "nice" items on the above list would be the first two features I'd lose to save programming time.

eta: next, or 3rd to not happen would be the "no duplicate solution" rule or filter. I could live with duplicates.

Last edited by calebprime; 6th July 2018 at 08:48 AM.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 6th July 2018, 01:27 PM   #25
Hevneren
Thinker
 
Join Date: Jul 2007
Posts: 166
The way you describe the problem, it seems like the series only would move upwards so it would in practice be near impossible to come back to P0. Unless:

- we don't care about what octave a note is in, so we use the number of steps modulo 12
OR
- we allow downward (negative) steps, denoted by I/-2, P/-4 etc.

Or did I miss something?
Hevneren is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 6th July 2018, 01:29 PM   #26
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
you're right, we use the steps always mod 12, a cycle.

So, if I define p/0 to p/4 (up 4 semitones) as a legal move, it means that there will be a cycle going p/0 to p/4 to p/8 to p/0 that would automatically be available.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 6th July 2018, 06:16 PM   #27
pipelineaudio
Illuminator
 
pipelineaudio's Avatar
 
Join Date: Feb 2006
Posts: 4,240
I'm learning Juce right now, to do something slightly related
__________________
Don't fear the REAPER, embrace it
pipelineaudio is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 6th July 2018, 06:52 PM   #28
psionl0
Skeptical about skeptics
 
psionl0's Avatar
 
Join Date: Sep 2010
Location: 3157'S 11557'E
Posts: 13,164
Originally Posted by calebprime View Post
Oh, p.s., I can already see that the user doesn't in fact need to enter the series at all for this to work. Everything is based on the list of possible moves.
If you write the user manual for this app I might see how difficult it is to write the app.
__________________
"The process by which banks create money is so simple that the mind is repelled. Where something so important is involved, a deeper mystery seems only decent." - Galbraith, 1975
psionl0 is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 7th July 2018, 03:19 AM   #29
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Octavo had expressed an interest, and I had posted that he should proceed. Hevneren and I pm'd each other about this.

I hadn't anticipated confusion about who might be interested, so maybe I should be more clear.

I think anyone who can work on this now and who is willing to do a little back-and-forth with me to clear any questions up would be fine. Once you understand the problem you will see that it has not that much to do with music -- it's almost more like a travelling salesman problem or something.

Let's say: Octavo -- the ball's in your court, the gig's yours to do or pass to the next interested person.

I do take work seriously, and I'm sorry I can't pay an adequate amount.

@Psion -- Well, I can do the next best thing, which is to compile all the info and to answer any questions you might have point-by-point.

Sorry folks if I haven't been much of a manager.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 7th July 2018, 05:52 AM   #30
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
This is the essence of it, though I have to print the rest of the rules, or have you the reader refer back to previous posts.

The output is always a loop, a list of "addresses" or row-labels beginning and ending on p/0, without repeating any labels inbetween.

Code:
the 48 row-labels:

p/0    p/1    p/2    p/3    p/4    p/5    p/6    p/7    p/8    p/9    p/10   p/11
r/0    r/1    r/2    r/3    r/4    r/5    r/6    r/7    r/8    r/9    r/10   r/11
i/0    i/1    i/2    i/3    i/4    i/5    i/6    i/7    i/8    i/9    i/10   i/11
ri/0   ri/1   ri/2   ri/3   ri/4   ri/5   ri/6   ri/7   ri/8   ri/9   ri/10  ri/11



Template for user input:

From P/0  to: [row-label] [row-label] [row-label]
From R/0  to:
From I/0  to:
From RI/0 to:



The user specifies as many legal moves from each of P/0, R/0, I/0, and RI/0 starting-points as she wants.  Typically from 1 to ca. 15 other addresses.


The part of the address /n is called the transposition, or transposition level.  The transpositions that the user specifies are written as absolute addresses, but are treated as relative moves.  

example:  
From P/0 to:  p/3
From R/0  to:
From I/0  to:
From RI/0 to:

comment on example: The user has specified p/3 as a legal move from p/0.  This means that all/any moves from a p/n to p/n+3 are legal.

example:  
From P/0 to:  p/3 RI/2
From R/0  to:
From I/0  to:
From RI/0 to:

comment on example: In addition to movement 3 to the right, or adding 3, the chain can now go from a p/n to an ri/n+2


example:  
From P/0 to:  p/3 RI/2
From R/0  to:
From I/0  to:
From RI/0 to:  I/6 P/4
comment on example: Now the chain can go from an RI/n to an I/n+6 or a P/n+4, in addition to the other places.  The program is forgiving and liberal about upper-case, lower-case, there's no difference.
paste from previous post:

The user types in row forms, such as RI/11, I/0. Spaces, no commas.


from P/0:

from I/0:

from R/0:

from RI/0:


Minimum and Maximum number of series in chain:

Only print solutions that contain these forms: (or Required Forms, or something)


Max number of solutions to print:

Do It
Interrupt
Save Parameters
Eliminate Duplicate Solutions

Because I allow for a redundant set of legal moves, the program might print the same solution multiple times. If not, fine. I'd like to stipulate no duplicate solutions. But if it can't be easily helped, then we may need a command to get rid of them.

The user can set a range of possible chain-length solutions. That way you don't have to look at either chains that are too short or too long, if you don't want to.

It would be nice if you could interrupt the search without losing your input parameters. If this is hard, it's not essential.

It would be nice if you could save your user input in a file you can name.

The user can type in some "required targets" -- series-forms that the chain has to contain to be printed. (This is essential for a more interesting, powerful program.)

And just a reminder, can't be too clear. The chains are always loops that start and end on P/0 but contain no other repeated series-forms.

Last edited by calebprime; 7th July 2018 at 06:09 AM. Reason: fixed +4
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 7th July 2018, 06:13 AM   #31
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Oh, I'm assuming we might need an interrupt because I'm thinking there may be a combinatorial explosion and the program might need hours. That could easily be wrong, I haven't thought it through. If the search/output time is in low seconds, we don't need to interrupt.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 7th July 2018, 08:52 AM   #32
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
And finally, the last very minor (heh) variation or addition.

We could have a switch back and forth between two kinds of chains:

a) no repeated addresses at all

b) no repeated address-combinations: having gone from RI/2 to p/3 before in the same chain, you can reuse RI/2, but only if you go somewhere else this time.

If as a result of my refinements, the project now looks more gnarly to write, then I'll add some token insufficient totally inadequate amount to the price tag.

That's it. No more changes or wishes from my end.

Last edited by calebprime; 7th July 2018 at 08:53 AM.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 8th July 2018, 02:36 AM   #33
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Afaik, I'm waiting for Octavo to accept or refuse, then Hevneren, then whoever else was next in line on the thread.

The price has gone up slightly now that I know exactly what I want and what priority each thing has.

But given that the job is noblesse oblige for you the programmer, I don't know of a fair way to set the price.

That it could be open source may or may not make a difference.

As far as my involvement, I can compile anything written here and discuss it, but I've reached the limits of my poor ability to describe the program. At this stage 69Dodge would ask me a couple of questions and then he'd get to work. I'm fairly certain that the program now works in principle and does something interesting to me.

Let's get started! Working with 69dodge (if you can call him doing all the work "working with") has been one of the most fun, satisfying experiences ever.

The reason I haven't approached him this time is that I think he's tired of working on stuff for me, and more immediately, I lost most of my email contacts a while back and don't have his email address. Somewhat comical.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 8th July 2018, 04:35 AM   #34
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
I'm going to compile a summary which will serve as the specs for the project.

I'd also defend the format of the user input this way. It's as if I'm saying: "C7 to Eb7 stands for all moves up a minor third, or 3 semitones." It's often the custom for musicians to think in terms of absolute locations (Eb7) but understanding relative relationships.

Because of the way I work, I prefer this to saying something like +3 or -3 in that field.

So if in the middle of some chain of row-labels, you're on RI/9 and the user input is: from RI/0: ri/4

that means the chain could go to RI/9+4, or RI/1 mod12 from RI/9 at that point.

The transposition numbers work from 0 to 11. The program is forgiving about upper/lower case: doesn't care.

Last edited by calebprime; 8th July 2018 at 04:39 AM.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 8th July 2018, 05:32 AM   #35
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
In the spoiler is an edited dump of everything that I've posted that is currently the case. Max budget has gone up to a grand, but that's as far as it could go.

The spoiler has some repetition but I don't think it has any contradictions at this point -- I should have edited those all out. Everything should be consistent, if poorly organized.

I want to do this in the next week or 2 if possible. If not, ok.



Budget: 0 to $1000 for delivered, debugged working program. $1000 for all features requested and you hold my hand a very little bit. $500 for bare bones minimum.


This is a computer app of some kind that will print chains of tone-series labels based on user-specified go-to rules. Just all the possible chains.

It should only be a reasonably fun project for someone.

It can be a Dr. Racket app, and we could print it here, open source.
Could be stand-alone, could be tab in Microtonal Scales


Title of App: Simple Row-Chainer

>The user lists to which row-forms the series can go

> The user lists the range of chain lengths and the number of
chain-solutions to print

>The "go-to row-forms list" is a list of series-labels that are
the possible rows you can go to from P/0, I/0, R/0, and RI/0.
The computer gives four lines beginning "from P/0:, from I/0:, from r/0:, from: RI/0:"
and the user fills in the forms.

Example:
from P/0: P/8 r/4 r/5 i/6 ri/10 ri/9

from I/0: i/4 ri/8 ri/9 p/6 r/4 r/2 r/3

from r/0: r/8 p/4 p/5 i/3 i/10 i/9

from: RI/0: ri/4 i/8 i/9 r/6 p/4 p/2 p/3


P = Primary or original
I = Inversion
R = Retrograde
RI= Retrograde Inversion

/n means the transposition level. P/0 is the nominal starting and ending-point.

> While for this user, the labels refer to real series with real pitches and specific properties, for
the computer -- and perhaps for the programmer -- the application doesn't need to understand this.
Why? Because the user fills in the entire set of (transpositionally relative) legal moves, and the
computer finds every possible solution within constraints.

> The go-to list is anything the user types; it doesn't have to actually
be good (in the sense I've been discussing in the 12-tone rows thread.)

> The program calculates the successions based on the logic of your list: If you specify p/0 to p/1 as a legal move, then of course the computer has to have the math to understand that it can also go from p/2 to p/3 wherever they might occur in some list. It does the simple additions and subtractions necessary to keep track of transposition levels ( the number after the /.)


> The program prints every possible solution up to chain-length n and number of solutions m,
every solution being a loop that begins and ends on p/0.

>The program has a switch between two kinds of chains the user can choose:

A) No repeats at all: A solution cannot contain the same
series twice, other than the p/0 at beginning and end.
or
B) No repeated combinations-in-sequence: If you've gone from I/2 to I/5, you can go back to I/2 now only
if it is immediately followed by some series-label other than I/5.


example of a line of output, with or without the silly arrows:

p/0 ->r/5 ->p/8 ->ri/4 ->r/10 ->r/6 ->i/4 -> p/10 ->p/6 ->ri/3 -> p/0


>There is a user field called Required Forms (or something) which
is just an unlimited list of labels (no commas) the user can fill in.
The printed solution is required to contain these forms.

Comment: not only does this feature make the program more "musical",
but it also makes it more do-able, because each requirement will cut down
the search-time. (if that's an issue. I don't know.)


A comment from Captain Obvious:
>Oh, p.s., I can already see that the user doesn't in fact need to enter the series at all for this to work. Everything is based on the list of possible moves.


>The forms are much less mysterious than they seem, they're just like naming something 4 different versions and having simple rules for toggling back and forth between them. Transposition is just cumulative adding and subtracting mod12. Forty-eight versions or states to move between, total.



It may help to understand that the program is only dealing with abstract row-label relationships, so for all it knows, the "row" might be 1 note long, or 17 notes long. This means that the logic is simple.

There are 12 transpositions by 4 forms, (backwards/forwards, upside-down/right-side up), so 48 possible squares on the checkerboard.

The user defines what is a legal move.



Maybe this can be grasped in a flash if you have the visual image of a typical 12-tone matrix, also sometimes known more fussily as an inversion matrix.

https://unitus.org/FULL/12tone.pdf


Sorry to make someone scroll down through all that verbiage! A completed matrix is finally shown towards the end.

What we're doing is jumping around among the 48 forms of a 12-tone matrix, and because the user supplies the legal moves, the program doesn't need to understand anything about the actual series you're using, presumably.

It may be confusing that when I'm working, I'm thinking of an actual series, but the program doesn't need to know that.

Those are two key concepts that may be causing confusion.


As user, you choose the rules with a standard form that looks something like this:


From P/0:
From I/0:
From R/0:
From RI/0:


You fill in each line with as many specific row forms from the possible 48.

If I say that from P/0: p/4 (moving from p/0 up 4 steps to p/4) is legal, then
all moves with a p/n adding 4 are also legal.

But note: Not I/4 to I/8, unless I explicitly say so, by saying: I/0 to I/4.

That is, I have to specify each of the 4 basic directions separately, but within each of the 4, the transposition rules are generalizable.


Not the most elegant way of representing the rules, but it's at the right level of intuition for me, and it's my dime. It's easier-but-dumber to have 4 separate lists like this.


Here is the way the user screen can look. I've added a few features and some details, which I'll discuss.

The user types in row forms, such as RI/11, I/0. Spaces, no commas. upper or lower case.

Code:
from P/0:   

from I/0:    

from R/0:     

from RI/0:   


Required Forms:



Minimum and Maximum number of series in chain:



Max number of solutions to print:

Do It    
Interrupt 
Save Parameters
Eliminate Duplicate Solutions
Because I allow for a redundant set of legal moves, the program might print the same solution multiple times. If not, fine. I'd like to stipulate no duplicate solutions. But if it can't be easily helped, then we may need a command to get rid of them.

It would be useful to be able to set a range of possible chain-length solutions. That way you don't have to look at either chains that are too short or too long, if you don't want to.

It would be nice if you could interrupt the search without losing your input parameters. If this is hard, it's not essential.

It would be nice if you could save your user input in a file you can name.

I almost forgot. It would be fantastic and it would greatly improve the power and usefulness of the program, if the user can type in some "required targets" -- series-forms that the chain has to contain to be printed.

And just a reminder, can't be too clear:

A switch, choosing between 2 kinds of possible chains:

A) start and end on P/0 but contain no other repeated series-forms.
B) start and end on p/0 and contain no repeated sequences of any 2 exact same symbols in order.


ust to be clear, the two "nice" items on the above list would be the first two features I'd lose to save programming time.

eta: next, or 3rd to not happen would be the "no duplicate solution" rule or filter. I could live with duplicates.

we use the steps always mod 12, a cycle.

So, if I define p/0 to p/4 (up 4 semitones) as a legal move, it means that there will be a cycle going p/0 to p/4 to p/8 to p/0 that would automatically be available.
This is the essence of it, though I have to print the rest of the rules, or have you the reader refer back to previous posts.

The output is always a loop, a list of "addresses" or row-labels beginning and ending on p/0, with two kinds of chains, A, and B, defined above. One is no repeated symbols, the other is no repeated sequences.

Code:


The user specifies as many legal moves from each of P/0, R/0, I/0, and RI/0 starting-points as she wants.  Typically from 1 to ca. 15 other addresses.


The part of the address /n is called the transposition, or transposition level.  The transpositions that the user specifies are written as absolute addresses, but are treated as relative moves.  

example:  
From P/0 to:  p/3
From R/0  to:
From I/0  to:
From RI/0 to:

comment on example: The user has specified p/3 as a legal move from p/0.  This means that all/any moves from a p/n to p/n+3 are legal.

example:  
From P/0 to:  p/3 RI/2
From R/0  to:
From I/0  to:
From RI/0 to:

comment on example: In addition to movement 3 to the right, or adding 3, the chain can now go from a p/n to an ri/n+2


example:  
From P/0 to:  p/3 RI/2
From R/0  to:
From I/0  to:
From RI/0 to:  I/6 P/4
comment on example: Now the chain can go from an RI/n to an I/n+6 or a P/n+4, in addition to the other places.  The program is forgiving and liberal about upper-case, lower-case, there's no difference.
The user types in row forms, such as RI/11, I/0. Spaces, no commas.


from P/0:

from I/0:

from R/0:

from RI/0:


Minimum and Maximum number of series in chain:

Only print solutions that contain these forms: (or Required Forms, or something)


Max number of solutions to print:

Do It
Interrupt
Save Parameters
Eliminate Duplicate Solutions

Because I allow for a redundant set of legal moves, the program might print the same solution multiple times. If not, fine. I'd like to stipulate no duplicate solutions. But if it can't be easily helped, then we may need a command to get rid of them.

The user can set a range of possible chain-length solutions. That way you don't have to look at either chains that are too short or too long, if you don't want to.

It would be nice if you could interrupt the search without losing your input parameters. If this is hard, it's not essential.

It would be nice if you could save your user input in a file you can name.

The user can type in some "required targets" -- series-forms that the chain has to contain to be printed. (This is essential for a more interesting, powerful program.)


Oh, I'm assuming we might need an interrupt because I'm thinking there may be a combinatorial explosion and the program might need hours. That could easily be wrong, I haven't thought it through. If the search/output time is in low seconds, we don't need to interrupt.



nd finally, the last very minor (heh) variation or addition.

We could have a switch back and forth between two kinds of chains:

a) no repeated addresses at all

b) no repeated address-combinations: having gone from RI/2 to p/3 before in the same chain, you can reuse RI/2, but only if you go somewhere else this time.

If as a result of my refinements, the project now looks more gnarly to write, then I'll add some token insufficient totally inadequate amount to the price tag.

That's it. No more changes or wishes from my end.


If it matters, I could edit the above into something coherent, but maybe I'll hold off and see if there is any pressing reason to do that.

Last edited by calebprime; 8th July 2018 at 06:52 AM. Reason: an edited dump
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 8th July 2018, 07:53 AM   #36
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Chances are Octavo is just away (as was Hevneren) and I should just be patient.

I would like to do this nowish as opposed to weeks from now. The offer will still stand, but it's much more fun while it's fresh.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 9th July 2018, 02:27 AM   #37
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
I've heard from Hevneren but not Octavo: Hevneren has the gig.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 9th July 2018, 05:13 AM   #38
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Hevneren is my new hero.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 9th July 2018, 05:16 AM   #39
Hevneren
Thinker
 
Join Date: Jul 2007
Posts: 166
Originally Posted by calebprime View Post
Hevneren is my new hero.
Hevneren is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 9th July 2018, 08:17 AM   #40
calebprime
moleman
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 12,233
Computers are much, much better at this kind of thing than humans.

It appears that the Herculean toils of Hevneren are nearly over, may he or she prepare to rest his or her head wreathed in garlands of glory and succumbing to sweet repose on a pillow of well-earned glory and cash, and anointed in oils, if so wished.

Ain't civilization great when it works.


Enter go-to row-forms
from P/0: P/8 r/4 r/5 i/6 ri/10
from I/0: i/4 ri/8 p/6 r/4
from R/0: r/8 p/4 p/5 i/10 i/9
from RI/0: i/4 i/8 i/9 r/6 p/4 p/2 p/3
Required form classes: I RI P R
Required forms: I/6 p/6 r/6 ri/6 r/3
Minimum number of series in chain: 13
Maximum number of series in chain: 13
Maximum number of solutions to print: 6000000
Enter a filename to save arguments, or [ENTER] to skip saving: test14
P/0 ->R/5 ->R/1 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/2 ->I/6 ->P/0
P/0 ->R/5 ->R/1 ->P/6 ->P/2 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->I/2 ->I/6 ->P/0
P/0 ->R/5 ->R/1 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/2 ->I/6 ->P/0
P/0 ->R/5 ->R/1 ->P/6 ->R/10 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->I/2 ->I/6 ->P/0
P/0 ->R/5 ->P/10 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/2 ->I/6 ->P/0
P/0 ->R/5 ->P/10 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/2 ->I/6 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->P/2 ->R/6 ->P/11 ->RI/9 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->P/2 ->R/6 ->I/4 ->R/8 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->P/2 ->R/6 ->I/3 ->R/7 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->R/10 ->R/6 ->P/11 ->RI/9 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->R/10 ->R/6 ->I/4 ->R/8 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->R/10 ->R/6 ->I/3 ->R/7 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->R/11 ->R/7 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->R/11 ->P/4 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->P/4 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->I/1 ->RI/9 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->I/0 ->RI/8 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->R/11 ->R/7 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->R/11 ->P/4 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->P/4 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->I/1 ->RI/9 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->P/10 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->I/0 ->RI/8 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->I/2 ->R/6 ->P/11 ->R/3 ->I/0 ->P/6 ->R/11 ->R/7 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->I/2 ->R/6 ->P/11 ->R/3 ->I/0 ->P/6 ->R/11 ->P/4 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->I/2 ->R/6 ->P/11 ->R/3 ->I/0 ->P/6 ->P/2 ->R/7 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->I/2 ->R/6 ->P/10 ->R/3 ->I/0 ->P/6 ->R/11 ->R/7 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->I/2 ->R/6 ->P/10 ->R/3 ->I/0 ->P/6 ->R/11 ->P/4 ->P/0
P/0 ->I/6 ->I/10 ->RI/6 ->I/2 ->R/6 ->P/10 ->R/3 ->I/0 ->P/6 ->P/2 ->R/7 ->P/0
P/0 ->I/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->P/10 ->P/6 ->R/11 ->R/7 ->P/0
P/0 ->I/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->P/10 ->P/6 ->R/11 ->P/4 ->P/0
P/0 ->I/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->P/10 ->P/6 ->I/0 ->RI/8 ->P/0
P/0 ->I/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->P/10 ->P/6 ->P/2 ->R/7 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->R/0 ->R/8 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->R/0 ->P/4 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->P/10 ->RI/8 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/10 ->P/4 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/2 ->RI/10 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/3 ->R/7 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->R/0 ->R/8 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->R/0 ->P/4 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->I/10 ->P/4 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->I/2 ->RI/10 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->P/2 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->I/3 ->R/7 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->R/0 ->R/8 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->R/0 ->P/4 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->P/10 ->RI/8 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/10 ->P/4 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/2 ->RI/10 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->P/8 ->RI/6 ->I/3 ->R/7 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->R/0 ->R/8 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->R/0 ->P/4 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->I/10 ->P/4 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->I/2 ->RI/10 ->P/0
P/0 ->I/6 ->RI/2 ->P/6 ->R/10 ->R/6 ->P/10 ->R/3 ->P/8 ->RI/6 ->I/3 ->R/7 ->P/0
P/0 ->P/8 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->P/2 ->R/6 ->P/11 ->RI/9 ->I/6 ->P/0
P/0 ->P/8 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->P/2 ->R/6 ->I/4 ->R/8 ->I/6 ->P/0
P/0 ->P/8 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->R/10 ->R/6 ->P/11 ->RI/9 ->I/6 ->P/0
P/0 ->P/8 ->RI/6 ->P/10 ->R/3 ->I/0 ->P/6 ->R/10 ->R/6 ->I/4 ->R/8 ->I/6 ->P/0
P/0 ->P/8 ->RI/6 ->P/10 ->P/6 ->P/2 ->R/6 ->P/11 ->R/3 ->I/1 ->RI/9 ->I/6 ->P/0
P/0 ->P/8 ->RI/6 ->P/10 ->P/6 ->R/10 ->R/6 ->P/11 ->R/3 ->I/1 ->RI/9 ->I/6 ->P/0
calebs-iMac:desktop

Last edited by calebprime; 9th July 2018 at 08:18 AM.
calebprime is offline   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Reply

International Skeptics Forum » General Topics » Computers and the Internet

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -7. The time now is 04:11 AM.
Powered by vBulletin. Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

This forum began as part of the James Randi Education Foundation (JREF). However, the forum now exists as
an independent entity with no affiliation with or endorsement by the JREF, including the section in reference to "JREF" topics.

Disclaimer: Messages posted in the Forum are solely the opinion of their authors.