Forwarded from dnaugsuz
fun setupColorFilter(scale: Float = 246.0 / 0xFF) {
val matrix = floatArrayOf(
scale, 0,0,0,0,
0, scale, 0,0,0,
0,0, scale, 0,0,
0,0,0,1,0
)
val rgbaMatrix = ColorMatrix().apply { set(matrix) }
val filter = ColorMatrixFilter(rgbaMatrix)
val paint = Paint().apply { colorFilter = filter }
window.decorView.setLayerType(View.LAYER_TYPE_HARDWARE, paint)
}说实话,看到 #Ruby 关系式求解器 里作者实现了个
作者的实现方式也很奇怪, interleaveWith 就是
Iterable.interleave_with 我觉得挺奇怪的,真的是要 interleave? 总觉得可以 zipWith 什么的,但作者的水平又不可能不知道 zipWith作者的实现方式也很奇怪, interleaveWith 就是
(xs=[a, b], ys=[c, d]) res=[a, c, b, d] 而已,但他用的方式是一个 Array 不断 push pop 这么 cycle 下去的Forwarded from 开发者日报
GitHub is now free for teams
GitHub 刚才宣布,团队的私库也免费了。这就是说,GitHub 基本上是一个免费网站了,核心功能几乎都不要钱,只剩下企业版收费了。「分享自ruanyf」
GitHub 刚才宣布,团队的私库也免费了。这就是说,GitHub 基本上是一个免费网站了,核心功能几乎都不要钱,只剩下企业版收费了。「分享自ruanyf」
The GitHub Blog
GitHub is now free for teams
Every developer and team can now get private repositories with unlimited collaborators at no cost with GitHub Free, and we reduced prices for some of our paid plans.
Forwarded from Solidot
Stephen Wolfram 称找到了物理学基础理论的途径
Wolfram Research 创始人、Mathematica 软件的创作者、数学家/物理学家 Stephen Wolfram 发表博文,宣称找到了通往物理学基础理论的途径。Wolfram 称,1980 年代初他开始研究简单程序产生的计算宇宙时得到了一个惊人而重要的发现:即使一个系统的底层规则十分简单,总体上的系统行为能任意的丰富而复杂。这促使他思考:宇宙是不是也是以此方式工作的?我们在物理中所看到的丰富性和复杂性其底层是否是简单的规则。他因此写下了 100 页的《一种新科学》。现在,在年轻物理学家的督促下,他再次发表了 448 页的技术论文,描述了我们宇宙的物理属性从简单通用可计算的规则产生出来。Wolfram 表示这些属性与相对论和量子理论一致。其他人认为他的理论和弦论一样难以验证。Media
https://www.solidot.org/story?sid=64129
Wolfram Research 创始人、Mathematica 软件的创作者、数学家/物理学家 Stephen Wolfram 发表博文,宣称找到了通往物理学基础理论的途径。Wolfram 称,1980 年代初他开始研究简单程序产生的计算宇宙时得到了一个惊人而重要的发现:即使一个系统的底层规则十分简单,总体上的系统行为能任意的丰富而复杂。这促使他思考:宇宙是不是也是以此方式工作的?我们在物理中所看到的丰富性和复杂性其底层是否是简单的规则。他因此写下了 100 页的《一种新科学》。现在,在年轻物理学家的督促下,他再次发表了 448 页的技术论文,描述了我们宇宙的物理属性从简单通用可计算的规则产生出来。Wolfram 表示这些属性与相对论和量子理论一致。其他人认为他的理论和弦论一样难以验证。Media
https://www.solidot.org/story?sid=64129
为实现扒谱程序做了一点搜集
https://github.com/nwhitehead/pyfluidsynth 可以作为音阶合成库
https://github.com/vishnubob/python-midi 可以作为 MIDI 库
https://pypi.org/project/pyreadline/ 可以作为 CLI 监听库
MIDI 这个比较灵性,它不像 subtitle 那么简单,一个 MID 文件是由 events 构成的,如 NoteOn(tick,veloc,pitch), NoteOff(tick,pitch), EndOfTrack
程序的设计大概有两个过程
第一个过程利用数字键盘输入(
可以用 Delete 删除上个音阶、 C-R 重放一遍、 C-I 粘贴、 Enter 确认
第二个过程可配合进度条和时间
用 A 来创建音符事件(但不会改变音高流)、S 来迭代下一个音高(从保持按下的A键切分)
用 Delete 回溯 5s 的音符,用 Enter 确认
-note-base 是指简谱基础音高
-play music 是在 cliReadTimeline 时配合放的音乐文件
-hot 是个 flag,可以禁用 S 键并且让 A 键带有迭代音高的效果
https://github.com/nwhitehead/pyfluidsynth 可以作为音阶合成库
https://github.com/vishnubob/python-midi 可以作为 MIDI 库
https://pypi.org/project/pyreadline/ 可以作为 CLI 监听库
MIDI 这个比较灵性,它不像 subtitle 那么简单,一个 MID 文件是由 events 构成的,如 NoteOn(tick,veloc,pitch), NoteOff(tick,pitch), EndOfTrack
程序的设计大概有两个过程
def cliReadPitches(note_base=note.C) -> List[int]
def cliReadTimeline(mode="normal", seekback_ms = 5000) -> List[Subtitle] 第一个过程利用数字键盘输入(
[12] 这个语法可以输入高音阶 )可以用 Delete 删除上个音阶、 C-R 重放一遍、 C-I 粘贴、 Enter 确认
第二个过程可配合进度条和时间
用 A 来创建音符事件(但不会改变音高流)、S 来迭代下一个音高(从保持按下的A键切分)
用 Delete 回溯 5s 的音符,用 Enter 确认
-note-base 是指简谱基础音高
-play music 是在 cliReadTimeline 时配合放的音乐文件
-hot 是个 flag,可以禁用 S 键并且让 A 键带有迭代音高的效果
GitHub
GitHub - nwhitehead/pyfluidsynth: Python bindings for FluidSynth
Python bindings for FluidSynth. Contribute to nwhitehead/pyfluidsynth development by creating an account on GitHub.
import pyaudio, fluidsynth
RATE = 44100
pa = pyaudio.PyAudio()
stream = pa.open(RATE, 2, pyaudio.paInt16, output=True)
class NoteSynth:
def __init__(self):
self.synth = fluidsynth.Synth()
def setFont(self, path_sfont):
self.synth.program_select(0, self.synth.sfload(path_sfont), 0, 0)
def sampleNotePitch(self, pitch, n):
self.synth.noteoff(0, pitch)
self.synth.noteon(0, pitch, 100)
return self.synth.get_samples(RATE*n)
synth = NoteSynth()
synth.setFont("example.sf2")
stream.write(synth.sampleNotePitch(20, 5))#include <stdbool.h>🤔 这样就可以 bind key,然后用来处理事件了…… 可是我想要 keydown/keyup 两种事件啊
#include <stdio.h>
#include <readline/readline.h>
int handle_key(int count, int key) {
printf("pressed: %d\n", key);
rl_on_new_line();
return 0;
}
int main(int argc, char *argv[]) {
rl_command_func_t handle_key;
rl_bind_key('\t', handle_key);
rl_bind_keyseq("\\C-a", handle_key);
while (true) {
char *line = readline(">");
}
}
https://stackoverflow.com/questions/26811132/pygame-keyup-keydown 🤔看来只有 Pygame 可以这么弄了……
Stack Overflow
Pygame Keyup/Keydown
I'm making a little Mario for my school's Computer Club. (well, as part of a team.)
Anyway, I'm having some trouble with the "keyup/keydown" commands. Here's my code:
# 1 - Import library
import ...
Anyway, I'm having some trouble with the "keyup/keydown" commands. Here's my code:
# 1 - Import library
import ...
def reprint(s): print("\33[2K", s, sep="", end="") 这样应该就没问题了吧
duangsuse::Echo
为实现扒谱程序做了一点搜集 https://github.com/nwhitehead/pyfluidsynth 可以作为音阶合成库 https://github.com/vishnubob/python-midi 可以作为 MIDI 库 https://pypi.org/project/pyreadline/ 可以作为 CLI 监听库 MIDI 这个比较灵性,它不像 subtitle 那么简单,一个 MID 文件是由 events 构成的,如 NoteOn(tick,veloc,pitch), NoteOff(tick…
😐如果用 OpenCV,不合适;如果用 PyGame,那 keyseq 会很麻烦;如果用 readline,不仅 Windows 不支持而且没有 keyup 事件
a=synth.sampleNotePitch(30, 5)
s=pygame.mixer.Sound(array=array([a,a]).transpose().copy()) 失败了… 看来 pygame.mixer 只能用来做最后一步的 audio……
from pygame import mixer_music as music
music.load(filepath)
music.set_pos(music.get_pos())
music.set_volume() music.set_endeventhachi.py
2.6 KB
15:11 - error: Argument of type 'Union[str, NoReturn]' cannot be assigned to parameter 'name' of type 'str'🌚我居然无言以对。 #Python
Type 'NoReturn' cannot be assigned to type 'str'
'NoReturn' is incompatible with 'str'
synthesize.py
6 KB
好了,终于可以摆脱这个不过 700 行 ctypes 代码还不 pull 别人的修复 PR 的 repo 了