Differences between revisions 35 and 48 (spanning 13 versions)
Revision 35 as of 2015-09-08 18:22:07
Size: 12944
Editor: kcrisman
Comment:
Revision 48 as of 2020-06-05 20:32:41
Size: 12926
Editor: mathzeta2
Comment: negative number in Venn diagram
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
       self.sr = 44100        self.sr = int(4100)
Line 31: Line 31:
    html('$\cos(\omega t) - \cos(\omega_0 t) = 2 \sin(\\frac{\omega + \omega_0}{2}t) \sin(\\frac{\omega - \omega_0}{2}t)$')     html(r'$\cos(\omega t) - \cos(\omega_0 t) = 2 \sin(\\frac{\omega + \omega_0}{2}t) \sin(\frac{\omega - \omega_0}{2}t)$')
Line 35: Line 35:
    s2str = ''.join(wave.struct.pack('h',x) for x in s2f)     s2str = b''.join(wave.struct.pack('f',x) for x in s2f)
Line 41: Line 41:
    html('<embed src="cell://test'+ lab +'.wav" width="200" height="100"></embed>')
    html('Frequencies: '+ '$\omega_0 = ' + str(hz1) + ' $, $\omega = '+latex(hz2) + '$')
    pretty_print(html(r'<embed src="cell://test'+ lab +'.wav" width="200" height="100"></embed>'))
    pretty_print(html(r'Frequencies: $\omega_0 = {} $, $\omega = {}$'.format(str(hz1),latex(hz2))))
Line 56: Line 56:
       self.sr = 44100        self.sr = int(44100)
Line 90: Line 90:
    html("Karplus-Strong algorithm with blending and delay stretching")
    html("<br>K. Karplus and A. Strong, <em>Digital synthesis of plucked string and drum timbres</em>, \nComputer Music Journal 7 (2) (1983), 43–55.<br>")
    html("Initial waveform:")
    pretty_print(html("Karplus-Strong algorithm with blending and delay stretching"))
    pretty_print(html("<br>K. Karplus and A. Strong, <em>Digital synthesis of plucked string and drum timbres</em>, \nComputer Music Journal 7 (2) (1983), 43–55.<br>"))
    pretty_print(html("Initial waveform:"))
Line 94: Line 94:
    html("Waveform after stabilization:")     pretty_print(html("Waveform after stabilization:"))
Line 96: Line 96:
    s2str = ''.join(wave.struct.pack('h',x) for x in s2f)     s2str = b''.join(wave.struct.pack('f',x) for x in s2f)
Line 100: Line 100:
    html('<embed src="cell://test'+ lab +'.wav" width="200" height="100"></embed>')     pretty_print(html('<embed src="cell://test'+ lab +'.wav" width="200" height="100"></embed>'))
Line 122: Line 122:
    html('<center>')
    html("$X \cap Y$ = %s"%f(XY))
    html("$X \cap Z$ = %s"%f(XZ))
    html("$Y \cap Z$ = %s"%f(YZ))
    html("$X \cap Y \cap Z$ = %s"%f(XYZ))
    html('</center>')
    pretty_print(html("<center><p>$X \\cap Y$ = {}</p><p> $X \\cap Z$ = {}</p><p> $Y \\cap Z$ = {}</p><p> $X \\cap Y \\cap Z$ = {}<center>".format(f(XY),f(XZ),f(YZ),f(XYZ))))
Line 166: Line 161:
    print (lambda f:f(0,f))(     print((lambda f:f(0,f))(
Line 171: Line 166:
    )     ))
Line 178: Line 173:
html('<h2>Profile the given input</h2>') pretty_print(html('<h2>Profile the given input</h2>'))
Line 198: Line 193:
    print globals()[system].eval(code)     print(globals()[system].eval(code))
Line 207: Line 202:
def minkdemo(list1,list2): def minkdemo(list1, list2):
Line 209: Line 204:
    Returns the Minkowski sum of two lists.     Return the Minkowski sum of two lists.
Line 214: Line 209:
            temp = [stuff1[i] + stuff2[i] for i in range(len(stuff1))]
            output.append(temp)
            output.append([a + b for a, b in zip(stuff1, stuff2)])
Line 217: Line 211:
@interact
def minksumvis(x1tri = slider(-1,1,1/10,0, label = 'Triangle point x coord.'), yb = slider(1,4,1/10,2, label = 'Blue point y coord.')):
    t_list = [[1,0],[x1tri,1],[0,0]]

@interact
def minksumvis(x1tri=slider(-1,1,1/10,0, label='Triangle point x coord.'), yb=slider(1,4,1/10,2, label='Blue point y coord.')):
    t_list = [[1,0], [x1tri,1], [0,0]]
Line 230: Line 225:
    for an_edge in p12poly.vertex_adjacencies():
        edge_lines += line([verts[an_edge[0]], verts[an_edge[1][0]]])
        edge_lines += line([verts[an_edge[0]], verts[an_edge[1][1]]])
    for v0, v1 in p12poly.graph().edges(False):
       edge_lines += line([v0, v1])
Line 269: Line 263:
        M[0]=[randint(0,1) for a in range(0,2*N+2)]         M[0]=[randint(0,1) for a in range(2*N+2)]
Line 272: Line 266:
        for k in range(0,2*N):         for k in range(2*N):
Line 338: Line 332:
    C=T-XX-YY-ZZ-ZX-ZY-YX-XYZ     C = T-XX-YY-ZZ-ZX-ZY-YX-XYZ
Line 342: Line 336:
    if XYZ>XY or XYZ>XZ or XYZ>YZ or XY>X or XY>Y or XZ>X or XZ>Z or YZ>Y or YZ>Z or C<0 or XYZ<0 or XZ<0 or YZ<0 or XY<0 or X<0 or Y<0 or Z<0:
        print 'This situation is impossible! (Why?)'
    if XYZ>XY or XYZ>XZ or XYZ>YZ or XY>X or XY>Y or XZ>X or XZ>Z or YZ>Y or YZ>Z or C<0 or XYZ<0 or XZ<0 or YZ<0 or XY<0 or X<0 or Y<0 or Z<0 or XX<0 or YY<0 or ZZ<0:
        print('This situation is impossible! (Why?)')

Sage Interactions - Miscellaneous

goto interact main page

Hearing a trigonometric identity

by Marshall Hampton. When the two frequencies are well separated, we hear the right hand side of the identity. When they start getting close, we hear the higher-pitched factor in the left-hand side modulated by the lower-pitched envelope.

sinsound.png

Karplus-Strong algorithm for plucked and percussive sound generation

by Marshall Hampton

KarplusStrong.png

An Interactive Venn Diagram

veng.png

Unreadable code

by Igor Tolkov

unreadable.png

Profile a snippet of code

profile.png

Evaluate a bit of code in a given system

by William Stein (there is no way yet to make the text box big):

evalsys.png

Minkowski Sum

by Marshall Hampton

minksum.png

Cellular Automata

by Pablo Angulo, Eviatar Bach

cellular2.png

Another Interactive Venn Diagram

by Jane Long (adapted from http://wiki.sagemath.org/interact/misc)

This interact models a problem in which a certain number of people are surveyed to see if they participate in three different activities (running, biking, and swimming). Users can indicate the numbers of people in each category, from 0 to 100. Returns a graphic of a labeled Venn diagram with the number of people in each region. Returns an explanatory error message if user input is inconsistent.

vennjhl.png

interact/misc (last edited 2020-06-05 20:32:41 by mathzeta2)