Ask any question about EPFL courses, lectures, exercises, research, news, etc. or try the example questions below.
DISCLAIMER: The Graph Chatbot is not programmed to provide explicit or categorical answers to your questions. Rather, it transforms your questions into API requests that are distributed across the various IT services officially administered by EPFL. Its purpose is solely to collect and recommend relevant references to content that you can explore to help you answer your questions.
In computer science, self-modifying code (SMC or SMoC) is code that alters its own instructions while it is executing – usually to reduce the instruction path length and improve performance or simply to reduce otherwise repetitively similar code, thus simplifying maintenance. The term is usually only applied to code where the self-modification is intentional, not in situations where code accidentally modifies itself due to an error such as a buffer overflow. Self-modifying code can involve overwriting existing instructions or generating new code at run time and transferring control to that code. Self-modification can be used as an alternative to the method of "flag setting" and conditional program branching, used primarily to reduce the number of times a condition needs to be tested. The method is frequently used for conditionally invoking test/debugging code without requiring additional computational overhead for every input/output cycle. The modifications may be performed: only during initialization – based on input parameters (when the process is more commonly described as software 'configuration' and is somewhat analogous, in hardware terms, to setting jumpers for printed circuit boards). Alteration of program entry pointers is an equivalent indirect method of self-modification, but requiring the co-existence of one or more alternative instruction paths, increasing the . throughout execution ("on the fly") – based on particular program states that have been reached during the execution In either case, the modifications may be performed directly to the machine code instructions themselves, by overlaying new instructions over the existing ones (for example: altering a compare and branch to an unconditional branch or alternatively a 'NOP'). In the IBM System/360 architecture, and its successors up to z/Architecture, an EXECUTE (EX) instruction logically overlays the second byte of its target instruction with the low-order 8 bits of register 1. This provides the effect of self-modification although the actual instruction in storage is not altered.
"I defy anybody to find a record... unless it is some old blues
record from 1922... that uses feedback that way. So I claim it for
the Beatles. Before H
[2]Paolo Prandoni, [3]LCAV, EPFL
The Karplus-Strong algorithm is a simple method to generate synthetic
sounds with arbitrary pitch. In this notebook we will explore a few
variations of the method to illustrate some basic notions of
discrete-time signal processing.
In [1]:
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import IPython
In [2]:
plt.rcParams["figure.figsize"] [2]Paolo Prandoni, [3]LCAV, EPFL
In this notebook we will explore various ways to implement a system
that changes the voice of a speaker. Typical applications for these
techniques, strictly sorted by plausibility, include international spy
missions and prank telephone calls, and devices such as the one
displayed here can be easily bought on the web... or in a novelty shop.
No description has been provided for t