Domifare – still a rough draft

Today’s diff. Everything compiles, but most things aren’t tested!

Today, I wrote the functions for most of the language structures, except the scheduling ones. And the shaking one, which I’ve just realised I’ve forgotten to include! For the variable classes, I am borrowing a lot of code from DubInstrument in AlgoRLib. Probably, this project and that should be folded into one repo or one should directly depend on the other.

For DubInstruments, asking for a random pattern can trigger the creation of a new one, but not here, as all patterns are entered by the performer.

I need some GUI, including sliders for thresholds and a text print out of entered stuff. Ideally, there should also be a record light for when the performer is entering loops.

As far as shaking goes, that’s sort of straight forward for the rhythm lines. For the melody lines, I might be looking at BufferTool. It’s designed to split up spoken text rather than played notes and relies on pauses. Another possibility is to keep onset data for melodic loops and use it to decide where cuts should be. I’ll need another trigger that gets sent by the recording synthdef when it’s gate opens, so I can relate the onset timings to the position in the buffer.

Tomorrow my wife is having a party and I’m doing marking on Monday and Tuesday, so it might be a few days before I can test properly.

Domifare Classes

Key still had some problems with transposition that related to frequency quanitsation, so those are (hopefully?) now sorted. I got rid of the gravity argument for freqToDegree because it doesn’t make sense, imo and calculating it is a tiny bit of a faff.

For Domifare, as with a spoken language, breaks between commands are articulated as pauses, so I’ve added a DetectSilence ugen. The threshold will need to be connected to a fader to actually be useful, as the margin of background noise will vary massively based on environment.

The next step is parsing. It’s been a loooong time since I’ve worried about how to do this… IxiLang uses a switch statement with string matching.

I need to draw out how this is going to work, since the repeat and the chance commands both take commands as arguments.

This might work as a statement data array:

[key, min_args, max_args, [types], function]

Types can be: \var, \number, \operator, \data. If it’s \operator, then the operator received will be the key for another statement, and the parser will listen for that too…. If it’s \data, that means start the fucntion asap….

Also, since variables are actually loop holders, I’m going to need to make a class for them.

My original plan to was to use pitch recognition to enter in midi notes, but that’s not going to work, so some commands are now defunct.


(
var lang, vars, numbers;
vars = (solfasire:nil, solfasisol:nil, soldosifa:nil);
numbers = (redodo: 1, remimi:2, refafa: 3, resolsol: 4, relala: 5, resisi: 6, mimido: 7, mimire:8);
lang = (
larelasi: [\larelasi, 2, 2, [\var, \data], nil], // func adds the name to the var array, runs the recorder
dolamido: [\dolamido, 0, 1, [\var], nil], // func stops names loop or all loops
domilado: [\domilado, 0, 1, [\var], nil], // func resumes named loop or all loops
mifasol: [\mifasol, 0, 1, [\var], nil], // func raises an octave, which is probably impossible
solfami: [\solfami, 0, 1, [\var], nil], // func lowers an octave- also impossible
lamidore: [\lamidore, 2, 2, [\var, \data], nil], // add notes to existing loop
dosolresi: [\dosolresi, 1, 1, [\var], nil], // shake the loop, which is possible with recordings also...
misisifa: [\misisifa, 0, 1, [\var], nil], // next rhythm
fasisimi: [\fasisimi, 0, 1, [\var], nil], //previous rhythm
misoldola: [\misoldola, 0, 1, [\var], nil], //random rhytm
refamido: [\refamido, 0, 0, [], nil], // die
sifala: [\sifala, 2, 2, [\number, \operator], nil], // repeat N times (1x/bar)
larefami: [\larefami, 2, 2, [\number, \operator], nil] // X in 8 chance of doing the command
);

After pondering this for a bit, I decided to write some classes, because that’s how I solve all my problems. I created a github project. This is the state of the sole file today.

Tested with human voice

Testing showed that for human voice, the frequency domain onsets and pitch tracking were more accurate and faster than the time domain, which is good to know.

Once the frequency is detected, it needs to be mapped to a scale degree. I’ve added this functionality to the Tuning Lib quark. While doing this, I could the help file was confusing and badly laid out and some of the names of flags on the quantisations were not helpful, so I fixed the helpfile, documented the new method, renamed some of the flags (the old ones still work). And then I found it wasn’t handling octaves correctly – it assumed the octave ratio is always 2, which is not true for Bohlen Pierce scales, or some scales derived by Dissonance Curve. So this was good because that bug is not fixed after a mere 8 years of lurking there. HOWEVER, the more I think about it, the less I think this belongs in Key….

Pitch detecting is flaky as hell, but onsets are solid, which is going to make the creation of melodic loops difficult, unless they actually just record the tuba and do stuff with it.

This is the code that’s working with my voice:


(

s.waitForBoot({

s.meter;

SynthDef(\domifare_input, { arg gate=0, in=0;

var input, env, fft_pitch, onset, chain, hasfreq;

input = SoundIn.ar(in, 1);
env = EnvGen.kr(Env.asr, gate, doneAction:2);

chain = FFT(LocalBuf(2048), input);
onset = Onsets.kr(chain, odftype:\phase);//odftype:\wphase);
#fft_pitch, hasfreq = Pitch.kr(input);

//send pitch
SendTrig.kr(hasfreq, 2, fft_pitch);

// send onsets
SendTrig.kr(onset, 4, 1);

//sin = SinOsc.ar(xings/2);

//Out.ar(out, sin);

// audio routing
//Out.ar(out, input);

}).add;

k = Key(Scale.major); // A maj
//k.change(6); // C maj - changing to c maj puts degree[0] to 6!

b = [\Do, \Re, \Mi, \Fa, \So, \La, \Si];
(scale:k.scale, note:k.scale.degrees[0]).play;

OSCdef(\domifare_in, {|msg, time, addr, recvPort|
var tag, node, id, value;

#tag, node, id, value = msg;
case
{ id == 2 } {
//value.postln;
//c = k.freqToDegree(value.asFloat).postln;
//b[c.asInt].postln;
b[k.freqToDegree(value.asFloat)].postln;
}
{ id == 4 } { "4 freq dom onset".postln; }

}, '/tr', s.addr);

s.sync;

a = Synth(\domifare_input, [\in, 0 , \out, 3, \rmswindow, 50, \gate, 1, \thresh, 0.01]);

})
)

Domifare input

Entering code requires the ability to determine pitch and entering data requires both pitch and onset. Ergo, we need a synthdef to listen for both things. There is also two ways to determine pitch, one in the time domain and the other in the frequency domain.

The frequency domain, of course, refers to FFT and is probably the best method for instruments like flute. It has a pure tone, where the loudest one is the fundamental. However, brass instruments and the human voice both have formants (loud overtones). In the case of tuba, in low notes, the overtones can be louder than the main pitch. I’ve described time-domain frequency tracking for brass and voice in an old post.

The following is completely untested sample code…. It’s my wife’s birthday and I had to go out before I could try it. It does both time and frequency domain tracking, using the fft code to trigger sending the pitch in both cases. For time domain tracking, it could -and possibly should- use the amplitude follower as a gate/trigger in combination with a frequency change of greater than some threshold. The onset cannot be used as the trigger, as the pitch doesn’t stabilise for some time after the note begins. A good player will get it within two periods, which is still rather a long time in such a low instrument. A less good player will take longer to stabilise on a pitch.

Everything in the code is default values, aside from the RMS window, so some tweaking is probably required. Presumably, every performer of this language would need to make some changes to reflect their instrument and playing technique.


(

s.waitForBoot({

SynthDef(\domifare_input, { arg in=0, out=3, rmswindow = 200;

var rms, xings, input, amp, peaks, sin, time_pitch, fft_pitch, onset, chain, hasfreq;

input = SoundIn.ar(in, 1);
amp = Amplitude.kr(input);
rms = RunningSum.rms(input, window);
peaks = input - rms;
xings = ZeroCrossing.ar(peaks);
time_pitch = xings * 2;

chain = FFT(LocalBuf(2048), input);
onset = Onsets.kr(chain, odftype:\wphase);
#fft_pitch, hasfreq = Pitch.kr(input);

//send pitch
SendTrig.kr(hasfreq, 0, time_pitch);
SendTrig.kr(hasfreq, 1, fft_pitch);

// send onsets
SendTrig.kr(onset, 2, 1);

//sin = SinOsc.ar(xings/2);

//Out.ar(out, sin);

// audio routing
//Out.ar(out, input);

}).add;

OSCdef(\domifare_in, {|msg, time, addr, recvPort|
var tag, node, id, value;

#tag, node, id, value = msg;
case
{ id == 0 } { "time dom pitch is %".format(value).postln; }
{ id == 1 } { "freq dom pitch is %".format(value).postln; }
{ id == 2 } { "onset".postln; }

}, '/tr', s.addr);

s.sync;

a = Synth(\domifare_input, [\in, 0 , \out, 3, \rmswindow, 200]);

})
)

Domifare fonts

Solresol can be notated in many ways: solfedge, numbers, notes and via two competing sets of special glyphs. These glyphs are a proposed edition to the unicode standard and part of a set of glyphs known as the CSUR. They’re included in some fonts, like the amazingly ugly Unifoundry includes the more abstract glyphs

      

and Constructium which just has single characters of solfedge

       

(and this is boring, but well-rendered and easy to understand – aside from the duplication of the final syllable as both ‘si’ and ‘ti’.).

Both sets of glyphs above should render in modern web browsers, but allow some time.

Many of my compuer music projects seem to quickly get bogged down in font issues and learning a new script is probably too much to ask of performers (myself included), even if it’s only 8 glyphs. However Constructum is, essentially, a monospace font in the sence that all 4-note words will render the same length, so it’s my likely choice for a display. It is a lot more easy to do than to draw actual music notation.

Like ixilang users type into a dedicated Document window Domifare users will be provided with an auto-transcription of their input. This is enough problem to solve by itself in early versions, but ixi-lang’s page re-writing properties seem like a good plan for later ones.

Domifare sisidomi

‘Domifare sisidomi’ means ‘live code’ in solresol, which is the first ever ‘constructed language’. That is, it was the first ever language to be intentionally designed. And, as this was a new idea, the creator, François Sudre, apparently felt like new syllables were needed. He used musical tones.

This last weekend, I played at an algorave in Newcastle with tuba and algorithms. The idea was to use a foot pedal to control things, but (despite working perfectly at home), it was non-responsive when the gig started, so my set included some live coding. Live coding with one hand while holding a tuba is not terribly efficient and it’s impossible to live code and play tuba at the same time . . . unless, playing the tuba is the live coding.

And thus, I’ve now specified an ixi lang-like language, domifare sisidomi. It’s a bit sparse, but there’s only so much a player can be expected to remember.

All variables are loops. There are three built in: solfasire, solfasisol and soldosifa (low percussion, high percussion and bassline). These are entered by playing the name of the variable followed by a rhythm or melody. As there is more than one kind low or high percussion instruments, different ones can be specified by playing different pitches.

The full (rough, unimplemented) specification follows:

// Enter a loop

solfasire [rhythm] //kick & toms
solfasisol [rhythm] // higher drums
soldosifa [melody] // bassline

larelasi [4 notes = the name] [melody] // declare a new loop

// start stop and modify a loop

dolamido [name] -- silence loop
domilado [name] -- resume loop
mifasol [name] -- raise an octave
solfami [name] -- lower an octave

lamidore [name] [rhythm] -- add notes to the loop
dosolresi [name] -- randomise loop // shake in ixilang

// every time a loop is changed by playing in new notes, shaking or adding, it gets added to a list of rhythms

// moving between loops in the list

misisifa / fasisimi [optional name] - move to next or previous rhythms
misoldola [optional name] - move to a random rhythm

// if no name is given, applies to all playing loops

// control structures

refamido - die

sifala dofadore [number] [next/prev/rand/randomise/chance/octave shift] [optional name] -- repeat the command x times

larefami [number] [next/prev/rand/randomise/repeat/octave shift/die] [optional name] - x in 8 chance of doing the command

//numbers

redodo - 1
remimi - 2
refafa - 3
resolsol - 4
relala - 5
resisi - 6
mimido - 7
mimire - 8

Writing a letter

Dear Hon. [Representative],

Today, I read an article about Guatemalans who were injured in unethical medical experiments carried out under the auspices of the US government.

I would like it if you could sponsor legislation to provide treatment for those injured and their families. I would also like the US to establish firm ethical rules regarding conducting overseas medical research, such that researchers are bound by rules at least as strict as they are bound by here.

Many Guatemalans were deliberately infected with syphilis and gonorrhea without their knowledge or consent and never received any treatment. They have since unwittingly passed the infection on to their partners and children, who were infected at birth and who have since passed it on to their own children. Few of those effected could afford medical treatment, even if it was available in their region. I would like to see the US provide treatment and compensation, as well as help establish health clinics in remote parts of that country. Failing that, I would like to see the US waive sovereign immunity in this case so that those effected can proceed with a class action lawsuit.

As American pharmaceutical companies are performing more and more research abroad, it’s important that subjects give meaningful informed consent, adequate compensation, and appropriate treatment for injuries during the study. Going overseas cannot be a way to dodge ethical guidelines.

Thank you for your time.

Charles Hutchins

Speaking up

Friends, I need you to say something if somebody around you is saying or doing something transphobic. Even if it’s awkward.

Why This is Important

I watched the BBC’s coverage of the election night and they interviewed many Trump supporters. I know these people are not representative of voters as a whole, but just about every single one of them said, without embarrassment, on camera, that they were against transgender people. These folks are largely misinformed and afraid of a false picture of trans people.

It’s dark times in the world. If somebody starts talking badly about minority groups, it may not be just talk. They may be working themselves up to action. Maybe they’re going to say something mean or do something mean or cast a ballot. They may be trying to gauge what people around them think – to determine if there’s consensus before they act. It’s up to you to speak up. Firstly, to let them know there’s not consensus. Secondly, depending on your relationship with them, to bring them around. Unfriending bigots has not worked out. We need, instead, to talk with them.

The SPLC has a great resource on talking to bigots. You should read it, but I’m going to give you some trans-specific devices here as well. (Trigger warnings for trans people.)

If you think this is less important than climate change and nuclear proliferation, remember this is why people said they voted.

Getting Started

There are two easy sentences I want you to have ready, that help with many a situation. Memorise them, Practice them:

‘Trans women are women.’
‘Trans men are men.’

A lot of transphobia involves assertions that we are not really our current gender. We are. Be ready to say it directly.

Modelling

This is a gentle way to challenge transphobia, but alas, is still very awkward. This makes it a good place to start.

In modelling you re-state what somebody just said but with correct language.

Them: I think Bradley Manning is a [hero/traitor].
You: Why do you think Chelsea Manning is a [hero/traitor]?

Them: He was Bradley when he leaked the documents.
You: Yes, she leaked the documents before she transitioned.

When talking about somebody trans, use their current name and pronouns. Don’t say, ‘When Bradley was a man.’ Say, ‘Before Chelsea transitioned.’ This respects her current identity and helps keep people from tripping over pronouns. It’s very hard to get the right pronouns for somebody if you keep switching them up depending on when you’re talking about.

Perhaps your friend gets frustrated:

Them: This isn’t important!
You: It’s important to trans people. I know my trans friend said…

You Have a Trans Friend

We’re friends. I’m your trans friend. I’m giving you permission to use me as rhetorical device in conversations. First we need to talk about when you can use this:

Scenario #1:

Them: Trans people are [ugly|crazy].
You: My trans friend is [fairly unremarkably average looking | in ok mental health].

Yes! This is a good usage of having a trans friend – as a counter-example to a blanket assertion.

Scenario #2:

Them: I think what you just said may actually be kind of transphobic.
You: I have a trans friend!

No! Do not use me as a shield.

Scenario #3:

Them: Oh my god, the weather is too hot!
You: My trans friend likes the heat.

No! Only bring this up where it’s relevant.

Tl;dr: Bring up having a trans friend to challenge blanket assertions and stereotypes.

This is also a way to make things personal. If bigotry could be challenged by facts and statistics, it would already be over. Human connections are key to ending it. This is why Harvey Milk encouraged gay people to come out. Unfortunately, this strategy doesn’t work as well for trans people, partly because there are so few of us. I need you, my friend, to help humanise us.

Bathrooms

One place people have been campaigning against us is our access to toilets, bathrooms and changing rooms. This is specific to trans women, so having a trans man friend (me) won’t be as useful, but I can give you some pointers.

If somebody you know starts talking about feeling uncomfortable about sharing facilities with trans people, remember your very first two sentences: Trans women are women. Trans men are men.

What we now call ‘rape culture’ used to be referred to as ‘male violence.’ Sometimes people will start talking about ‘male bodied’ people. But: trans women are women. Violence does not stem from bodies. If certain classes of bodies were the sources of violence, then there’s no hope of ever combating it. It would be a biological fact.

Violence comes from culture. Rape culture is what Donald Trump has done and bragged about. It’s not embedded in his physical form.

Trans women inhabit the cultural space of womanhood. Terms like ‘female bodied’ don’t reflect cultural roles. They reflect only what a birth certificate said.

So how do you talk about this?

Them: I’m worried about male bodied people in the changing room.
You: Trans women are also effected by rape culture.

You’ve responded to their fears, you’ve modelled a correct way to talk about trans people and you’ve shown that trans women have fears in common with them. If you want to make a personal humanising connection as the conversation continues, that’s where your trans friend comes in.

Again, I’m not a trans woman. But I (and nearly every trans person I know) have had to physically run away from a scary transphobic incident in a toilet. When I use a public toilet, I get out as fast as possible, which is something I’ve heard most of my trans friends say. Those of you who have been bullied in school bathrooms can relate to this, I’m sure.

I’ve also been barred entry to toilets. Being denied entry to one toilet did not give me access to the other toilet. I just wasn’t allowed to pee at all. But when you’ve got to go, you’ve got to go! I used to make a habit of trying to hold it. Part of this involved drinking less water. I got some weird infection from chronic dehydration. Again, this is common among trans people.

If I’m not allowed to pee when out about about, this limits how long I can stay outside my home. If I can’t use a toilet at work or in the train station, I can’t keep my job. Keeping trans people out of public or school toilets keeps us out of public and out of school. Special ‘family’ toilets are great for people who want them and we should build more of them, but they’re not always available and mark us out. I’m a man. I use the men’s room.

I’m sharing this so you can use it – because emotion and human connections matter more than facts and figures. This is not statistics, this is the life of someone you know. Make it personal.

Keep Trying

Conversations are going to be awkward. The first one often won’t change minds. If somebody says something and you’re unsure how to respond, think about it later to come up with a better reply.

Even if it feels like you’ve failed and made things uncomfortable, do remember that you have communicated a lack of consensus. This is important.

Also, if you spoke up in public – say, to challenge a sex change joke, you don’t know who overheard you. Hearing jokes like that sucks. Hearing a subsequent challenge restores hope.

Finally

Feel free to share this. I will try to answer questions in the comments.

Calexit

I’m seeing people online talking about CalExit, a proposal by which California leaves the USA and strikes out on it’s own. This has come up because Californians feel frustrated by the Electoral College, but it’s also got the weight of tech companies behind it.

The Electoral College does reduce the importance of people’s votes when electing the president. This is especially true for Californians. However, there are other solutions aside from declaring independence. One doesn’t even need to amend the constitution. There is a proposal in place to switch to the popular vote which is enactable on the state level. The National Popular Vote Interstate Compact would not do away with the college, but they would switch to merely formalising the popular vote. This seems easier to arrange than independence and would solve many of the grievances people have this week.

Californians can also see several other reasons for independence, largely based on the idea that we are weighted down by the rest of the US. This might be true economically, but we should take a look at where California is politically. It’s at the vanguard of the US. We, collectively, are just as stupid as the rest of country. But we’re stupid first. Californians have already had a go at electing a right wing media personality with poor politics and inadequate experience. Twice. Ronald Reagan was a disaster who took our schools from best in the country to, well, …lower property taxes for people who don’t move often, yay? And then the governator, who was better than people feared, but actually still terrible.

California had it’s demographic shift to being majority non-white several years ago and had it’s hateful freakout at the time. Pete Wilson was elected, proposition 187 passed, and the state set out to make migrants as miserable as possible. One of Wilson’s first orders was to deny prenatal care to migrant women, thus increasing birth defects in new born american citizens. That administration, voted in by Californians, vindictively spread misery wherever possible. And then white people were in the minority anyway and the sky didn’t fall. Many white people just got used to it. To the extent that California is now less racist than other parts of the US, it’s only because we’ve been through the other side of demographic shifts that cause racist whites to suddenly become extra-terrible.

Indeed, California may be done with it’s demographic shift, but it’s still got far rightists. The largest KKK membership in the entire US was in San Bernadito county. The state has the same urban/rural divide as everywhere else. That incident a few months ago with fascist stabbings was in Sacramento. Leaving the union will not make us safe from the fascists in our own borders.

But let’s talk about what succession would actually look like. California is the most populous state, with a large economy, tons of industry, including tech and Hollywood, it has seven of the US’s ten largest cities, at least one major shipping port and a whole lot of military bases, R&D and federal stuff, including Edwards Airforce Base (where the Space Shuttle used to land), and the NASA Ames Research Center. California is dismissed by east coasters as quaint or whatever, but they would sure miss us if we were gone, and not just because we grow all their almonds and avocados. Which is exactly why they’re not going to invite us to leave.

California: I’d like to secede now please.

Red states: That’s unpatriotic. And besides, we didn’t get to. Keep sending us porn and taxes.

Blue states: We empathise with you, but no. We need you.

There’s a reason there’s an even number of states in the two party system and why Hawaii and Alaska joined around the same time. If we leave, that’s one less blue state, with a massive number of representatives. Our fellow blues will not want to lose us. And the reds want the stuff we make and grow and would resent us for seceding where they failed.

So what next? Another civil war? Nobody wants to leave that badly.

There is, however, another way. Tech companies want to leave because they have visions of some sort of libertarian utopia. Where they are freed from regulation, but somebody competent is planning things so that the lights stay on. These ideas are mutually exclusive, unless we just give control of everything to google. The tech bro vision for the future of California is self-driving google buses taking rich people around, while poor people conveniently vanish. There’s other differences and issues this is papering over, but the tech companies could actually bring about Californian independence.

However much facebook wishes to deny it, it was them that elected Trump (and it’s them who have a convenient list of everybody’s race, religion and political views, should the government ever ask to see it). Their filtering algorithm separated people into red and blue milieus, so people on both sides never saw each other’s posts and a whole lot of untrue news stories got passed around. Pro-Trump stories got more clicks, so actual cottage industries sprung up writing fake pro-Trump news. This was monetised, thanks to Google’s advertising program, which also doesn’t care if it’s sat next to complete shit, as long as it’s getting eyeballs. Both platforms, desperate for viewers, let utter trash proliferate.

So how would facebook give us independence? The same way it gave us Trump. Only via constitutional amendment.

Blue facebook: The amendment is actually a Russian plot. We need California.

Red facebook: California gives us nothing but homosexuals, tofu, and pron. They’re evil. We would be better off if those Satan-worshippers were all barred from the US entirely.

And, because there are a lot of red states, even if they aren’t very populous, they would pass the required referendums for an amendment letting us go. But at the expense of LGBT people, sex workers, religious minorities, vegetarians and everyone else who gets othered, not just in California. It would make the country an uglier place than it already is.

And now, hugely demonised, we have our independence and have lots of almonds and no currency or trade agreements. Since this is a Silicon Valley plot, we can get bitcoin and learn to love instability. But what about freedom of movement? Since we’re evil incarnate, we’re not going to be allowed just to hop across borders. Want to go to New York? Better get a visa.

Indeed, let’s talk trade deals. Like Britain, we won’t even be members of the WTO. It can take years to join. NAFTA is probably out, due to not only us being evil, but Canada wanting to discourage Quebec from following our lead. I could imagine getting a good deal with the country that ruled us until 1848. Mexico might demand freedom of movement. I would be 100% ok with this, but it’s a very different future than the one tech bros are envisioning.

Also, remember all that US military stuff? The US government might want to be compensated for it’s property loss. So it would still be several years of sending them our taxes. We could try to do without any military stuff, but as we’re in range of North Korea’s nuclear missiles, we probably won’t. Indeed, since we’ve got google, who loves automated solutions, we’d be in grave danger of building killer robots. These would be drones, with weapons, that act without direct operator control. There’s a push to ban them by treaty in the UN, but we wouldn’t be signed on to it. This is one part of the tech bro future that I’d rather avoid, completely.

California is also not water independent, so we’d need to either buy water from Nevada or let Los Angeles go. Indeed, climate change may force that anyway. Every place on earth is dependant on water and climate, but this is especially clear in California.

The Trump future is terrifying, but getting out via amendment will take years and it would probably be too late by then. Getting out by revolutionary action is also a scary thought. Neither is showing any solidarity with people in other states who also need to be safe from fascism. And all of it ignores that facebook and google, the most emblematic software companies of silicon valley, are not victims of fascism as much as they are the platforms which allow it to flourish. And the data repositories which will allow it to achieve it’s ugliest aims.

Who should progressives support?

Live blogging the discussion by Our Revolution London (formerly London for Bernie)

The panelists are active in US and Uk politics on the left.

Travis: a Bernie supporter pitting forth Bernie’s position, which was to endorse Clinton. She has a adopted a left platform, largely put forth by Bernie supporters.

Trump is a fascist and a lot of voters don’t like Hillary. There are a lot of dodgy websites that look like legit media.

Writing in Bernie is a waste of time. The Libertarian is not a left choice. A vote for Trump is a vote for fascism. The Green Party is in disarray.

Trump could win. It is imperative to defeat him.

The Democratic Party has a history of left political victories. It is progressive to fight on the left wing of the democratic party.

Panelist #2:
The era of Clintonian politics lead directly to the rise of Trump. Neo liberalism created a vacuum that enables fascism.

Wiki leaks has given us insight into the inner workings of the DNC and the Clinton campaign. Many of these emails aer very concerning.

She asked herself if she should vote, should compromise, or should vote her conscience and vote for Stein despite her having no chance of winning.

Because she is from California, she feels her vote does not matter, so she is voting Green.  Third parties are b not currently viable in winning elections, but are important when it comes to ideas, movements and change.

She has decided that voting Stein is a way to stay engaged in politics. Stein has 99% agreement with Bernie.

She finds Clinton to be  untrustworthy given the emails leaked by wiki leaks. Support of Stein keeps the far left vital. She sees it as a way to move beyond horse race politics. In a swing state, she says people should vote for Clinton.

She claims there is a lot of disinformation about Stein. For example, Stein’s defence of anti vaxxers has been overstated or misinterpreted.

Stein is a scientist and is to the left of Bernie.

Neo liberalism must be challenged to fight the fascist vacuum.

Panelist #3:
This election went from inspiring to painful. It was Bernie who expanded the possible. The Bernie excitement is like Corbyn’s Momentum.

We cannot quietly accept neo liberalism and must solve the world’s problems. Change comes from below, from workers. From poc and women. The sanders campaign reflected the hopes and inspirations of the  disenfranchised.

The surging movements for equality in the us are where change congress from. Change vines from movements. What happens between campaigns? We must build movements to hold politics and corporations accountable.

People must believe that change is possible. Bernie made people believe that change is possible. People were excited because of his content, not because of party politics. He allowed people to believe they could vote for  meaningful change.

What have democrats done for her? Neo liberalism has been the policy of every us government she has lived under. Things have gotten more precarious and more unequal. No democratic president had done much for working class people.

The idea of humanitarian intervention was actually an advertisement for greater military adventurism. The Bosnia intervention paved the way for the Iraq war. Both parties are parties of the ruling class and the military industrial complex.

Chicago is a democrat town, but still had had massive privatisation and union busting. Democrats there have hurt workers. Organised workers are the only thing that fights the ruling class.

Voters must fight back independent of party politics, therefore the only real alternative is Jill Stein.

Remarks from the floor:

A labour party member says that brexitism will only get worse if someone like Clinton is elected.

Judith takes issue with that- she feels like trumpism is a flash in the pan. People have short memories. People will rise up to prevent this from happening again. This will lead to the Republican party splitting. The democrats may also split. The left wing may become a new, viable party.

Another commenter remembers FDR. In the late 40s, people learned ethics at school. But that doesn’t happen anymore. Young people don’t know the real purpose of trade unions. Despite being a socialist, he whole heatedly sorts Clinton because the path to power involves compromise. One must make decisions in life. He hopes that people will use knowledge and self examination to make good choices. He loves the UK, but held its important to vote on the US elections. It is vital to make a vote that will count. Clinton must win a massive popular vote to add legitimacy to her election. We must stay on top of issues and influence politics through unions and parties and other activism. This will slowly lead the US back to the left. This is more useful than voting for someone who cannot win.

A question from the back- Clinton had accused trump of being Russian stooge and is fond of Kissinger. Will she start ww3?

Kendra says: it’s ridiculous to vote for anyone but Clinton. There will be supreme court  appointment. A trump victory would be a disaster.

A woman in back: it’s good that Clinton’s platform has been pushed left, but there needs to be more criticism of Clinton. Her lack of response to critique leads to trumpism.

A guy in the back: Trump is an idiot, but it’s worryng that the whole media has turned on him. The whole media attacking half of the us is propaganda. They are being insufficiently deferential to a us candidate. The RNC is less corrupt than the DNC.

Kyra: comparisons of media coverage of trump and Clinton are refiduculous.  Party change can’t be something you dip your toe in every 4 years with presidential politics. Representatives have more ability to effect change.

A green party member: one wiki leaks email days she has a private position and a public position. She is on favour of fracking and wants a no fly zone in Syria, which would involve firing on Russians. Stein, however has been active in left wing politics for many years.

Another comment: the DNC cannot be transformed to be more left. Stein can’t work in a new left coalition because she is against that kind of party politics. The commenter wrote to hrc against the Iraq war, but she voted anyway. The democratic victories were actually victories of workers, co-opted by the DNC.

A woman at the back really dislikes Clinton. But voting for stein is silly, selfish and ignorant. Nader campaigners are full of regret. Clinton is not great, but could be worse. Climate change is never brought up at debates. It is so existential, in a way that other issues are not. Gore would have been better than Bush.

A guy says we need to vir for stein so she gets 5% of the vote to be in the debates.

Another guy in the back brings up campaign finance reform to get rid of the trump threat.

Judith, again: this discussion is very different than it would be in America. Trek Americans that the NHS is awesome and the trains ran better before they were privatised. We need to tell Americans that socialism works.

Kendra, again: you can’t tell people what to believe. Hour do we teach people in America that socialism is possible?

Now back to the panelists:
Speaker 3: Trump is vile. Sexism against Clinton is vile. Trump’s sexual assault is vile. Trump is a sociopath. So what is the best way to defeat the right wing and move people to the left? We must build on anti austerity policies. We cannot be wishy washy. We must support wealth redistribution. We must advocate for socialism. If there is no push back on the left, right wing populism takes off.
We must have pro immigrant policies on the us and Europe. Democracy must be increased. We must have worthwhile people to vote for. We cannot be asked to vote against our interests. Voting for the lesser evil moved the world to the right. Left wing candidates in the DNC are marginalised.

Panelist #2: People’s memories are sometimes short, but Trumpism will remain a risk. Indeed, his popularity is a consequence of forgetting. War is also a serious risk. Voting for Clinton is too personally shattering, as she would feel responsible for war deaths. There is wiki leaks evidence that suggests the DNC actually schemed to get trump the nomination. The party meant to save us from trump had created him. The v trump tapes were released on the same day as the wiki leaks document dump. At least trump has people talking about asexual assault. We are not having the right conversations, however. 5%of the vote for stein would be great.

Travis: Political purity is easy and attractive. It would be great if we could vote stein into office, but we can’t. The party is a coalition. There is, had been and will be a left wing in the  democratic party. Our only hope to access power is to work inside the power structure.

The  democratic party has changed over time. The left programmes of the party have come from lefty activism.

Jill already qualifies for matching funds whether or not she gets 5%.

The green party is great, but must be built from the v ground up, not the top down.

We must ask think about what reality we live in when we decide how to vote. We know that either Clinton or trump will win.

The next event is the democrats abroad election night watch. But a ticket.

It is possible to vote still.