├── .eslintignore ├── .firebaserc ├── .github └── workflows │ ├── develop_build.yml │ └── main.yml ├── .gitignore ├── LICENSE ├── README.md ├── book ├── 00-a-preface.md ├── 00-b-on-this-release.md ├── 01-GS-01.md ├── 01-GS-02.md ├── 01-GS-03.md ├── 01-GS-04.md ├── 01-GS-05.md ├── 01-GS-06.md ├── 01-GS-07.md ├── 01-GS-08.md ├── 01-GS-09.md ├── 01-GS-10.md ├── 02-a-installation.md ├── 02-b-help.md ├── 02-c-hardware.md ├── 02-d-opcodes.md ├── 02-e-print.md ├── 03-a-initialization-and-performance-pass.md ├── 03-b-local-and-global-variables.md ├── 03-c-control-structures.md ├── 03-d-function-tables.md ├── 03-e-arrays.md ├── 03-f-live-events.md ├── 03-g-user-defined-opcodes.md ├── 03-h-macros.md ├── 03-i-functional-syntax.md ├── 04-a-additive-synthesis.md ├── 04-b-subtractive-synthesis.md ├── 04-c-amplitude-and-ring-modulation.md ├── 04-d-frequency-modulation.md ├── 04-e-waveshaping.md ├── 04-f-granular-synthesis.md ├── 04-g-physical-modelling.md ├── 04-h-scanned-synthesis.md ├── 05-a-envelopes.md ├── 05-b-panning-and-spatialization.md ├── 05-c-filters.md ├── 05-d-delay-and-feedback.md ├── 05-e-reverberation.md ├── 05-f-am-rm-waveshaping.md ├── 05-g-granular-synthesis.md ├── 05-h-convolution.md ├── 05-i-fourier-analysis-spectral-processing.md ├── 05-k-ats-resynthesis.md ├── 06-a-record-and-play-soundfiles.md ├── 06-b-record-and-play-buffers.md ├── 07-a-receiving-events-by-midiin.md ├── 07-b-triggering-instrument-instances.md ├── 07-c-working-with-controllers.md ├── 07-d-reading-midi-files.md ├── 07-e-midi-output.md ├── 08-a-open-sound-control.md ├── 08-b-csound-and-arduino.md ├── 08-c-csound-via-udp.md ├── 09-a-csound-in-pd.md ├── 09-b-csound-in-maxmsp.md ├── 09-c-csound-as-a-vst-plugin.md ├── 10-a-csoundqt.md ├── 10-b-cabbage.md ├── 10-c-blue.md ├── 10-d-winxound.md ├── 10-e-csound-via-terminal.md ├── 10-f-web-based-csound.md ├── 11-a-analysis.md ├── 11-b-file-info-and-conversion.md ├── 11-c-miscellaneous.md ├── 12-a-the-csound-api.md ├── 12-b-python-and-csound.md ├── 12-c-lua-and-csound.md ├── 12-d-csound-in-ios.md ├── 12-e-csound-on-android.md ├── 12-f-csound-and-haskell.md ├── 12-g-csound-in-html-and-javascript.md ├── 13-a-developing-plugin-opcodes.md ├── 14-a-opcode-guide.md ├── 14-b-methods-of-writing-csound-scores.md ├── 14-c-amplitude-and-pitch-tracking.md ├── 14-d-python-in-csoundqt.md ├── 14-e-glossary.md ├── 14-f-links.md ├── 14-g-credits.md ├── 15-a-digital-audio.md ├── 15-b-pitch-and-frequency.md ├── 15-c-intensities.md ├── 15-d-random.md └── metadata.yaml ├── contribute ├── conventions.md ├── source_materials_and_samples.md ├── todo.md └── writing-in-markdown.md ├── firebase.json ├── jest.config.json ├── other ├── 01-GS-11.md ├── 01-GS-12.md ├── 01-GS-13.md └── interactive-demo.md ├── package.json ├── pandoc ├── build.js ├── build_all_html.js ├── build_epub.js ├── build_html.js ├── build_html_overview_pages.js ├── build_odt.js ├── build_pdf.js ├── constants.js ├── csound-theme.xml ├── development.js ├── extract_csd_examples.js ├── filters │ ├── epub_images.js │ ├── example_extractor.js │ ├── html_post_process.js │ ├── pdf_codeblocks.js │ └── pdf_interlinks.js ├── latex │ ├── chapter_break.tex │ ├── codesize.tex │ ├── disable_float.tex │ ├── roboto.sty │ └── template.tex ├── pdf.theme ├── templates │ ├── append.txt │ └── prepend.txt └── utils.js ├── public ├── favicon.ico ├── index.html ├── logo192.png ├── manifest.json ├── resources └── robots.txt ├── resources ├── SourceMaterials │ ├── AEP_udos.txt │ ├── AllArduinoInputsToOSC.pde │ ├── Arduino_Processing_OSC_Csound.csd │ ├── BratscheMono.het │ ├── BratscheMono.wav │ ├── ClassGuit.wav │ ├── Stairwell.wav │ ├── ambisonics2D_udos.txt │ ├── ambisonics_udos.txt │ ├── ambisonics_utilities.txt │ ├── basoon-C4.ats │ ├── beats.wav │ ├── circularstring-128 │ ├── cs_sco_rand.pl │ ├── dish.wav │ ├── drawing_data.txt │ ├── female-speech.ats │ ├── flute-A5.ats │ ├── fox.wav │ ├── gbuzz3.wav │ ├── hrtf-44100-left.dat │ ├── hrtf-44100-right.dat │ ├── loop.wav │ ├── oboe-A5.ats │ ├── print.py │ ├── spiral-8,16,128,2,1over2 │ ├── string-128 │ ├── test.ats │ └── wave.wav ├── epub-metadata.xml ├── epub-metadata.yml ├── examples │ └── 201129_example_extract.py ├── image_src │ ├── 00A │ │ ├── 00-a-Preface.tex │ │ ├── 00-preface-image-2.ipynb │ │ └── 00-preface-image.ipynb │ ├── 01 │ │ ├── 01-GS-01-a.ipynb │ │ ├── 01-GS-01-sine.ipynb │ │ ├── 01-GS-02-a.ipynb │ │ ├── 01-GS-02-b.ipynb │ │ ├── 01-GS-02-c.ipynb │ │ ├── 01-GS-02-d.ipynb │ │ ├── 01-GS-03-a.ipynb │ │ ├── 01-GS-03-b.ipynb │ │ ├── 01-GS-04-a.ipynb │ │ ├── 01-GS-04-b.ipynb │ │ ├── 01-GS-04-c.ipynb │ │ ├── 01-GS-04-d.ipynb │ │ ├── 01-GS-04-e.ipynb │ │ ├── 01-GS-05-a.ipynb │ │ ├── 01-GS-05-b.ipynb │ │ ├── 01-GS-05-c.ipynb │ │ ├── 01-GS-05-d.ipynb │ │ ├── 01-GS-06-a.ipynb │ │ ├── 01-GS-06-b.ipynb │ │ ├── 01-GS-06-c.ipynb │ │ ├── 01-GS-06-c1.ipynb │ │ ├── 01-GS-06-d.ipynb │ │ ├── 01-GS-06-e.ipynb │ │ ├── 01-GS-07-a.ipynb │ │ ├── 01-GS-07-b.ipynb │ │ ├── 01-GS-07-c.ipynb │ │ ├── 01-GS-09-a.ipynb │ │ ├── 01-GS-10-a.ipynb │ │ ├── 01-GS-10-b.ipynb │ │ ├── 01-GS-10-c.ipynb │ │ ├── 01-GS-10-d.ipynb │ │ ├── 01-GS-10-e.ipynb │ │ ├── draw2Svg_funs.py │ │ └── draw2Svg_musicnotation.py │ ├── 03A │ │ ├── 03-a-k-rate-env.ipynb │ │ ├── 03-a-k-smps.ipynb │ │ ├── 03-a-ksmps-1.wav │ │ ├── 03-a-ksmps-2.wav │ │ ├── 03-a-ksmps-3.wav │ │ ├── 03-a-ksmps-4.wav │ │ ├── 03-a-peak.ipynb │ │ └── 03-a-wrong-times.ipynb │ ├── 03D │ │ └── 03-d-waveforms.ipynb │ ├── 04C │ │ ├── 04-c-am.tex │ │ ├── 04-c-am2.tex │ │ ├── 04-c-rm-spectra.ipynb │ │ └── 04-c-rm.tex │ ├── 04D │ │ ├── 04-d-fm.tex │ │ └── 04-d-fm2.ipynb │ ├── 04E │ │ ├── 04-e-gen7table.ipynb │ │ └── 04-e-simple-waveshaping.ipynb │ ├── 04F │ │ ├── 04-f-roads.pdf │ │ └── 04-f-roads.tex │ ├── 04H │ │ ├── 04-h-scantable-1.ipynb │ │ ├── 04-h-scantable-2.ipynb │ │ ├── 04-h-scantable-3.ipynb │ │ └── 04-h-scanu.ipynb │ ├── 05A │ │ ├── 05-a-expseg.ipynb │ │ ├── 05-a-line-expon.ipynb │ │ └── 05-a-line-linseg.ipynb │ ├── 05F │ │ ├── 05-f-example-4.ipynb │ │ └── 191128_RM.tex │ ├── 05G │ │ ├── 05-g-grain_envs.ipynb │ │ └── 05-g-scheme.ipynb │ ├── 05I │ │ ├── 05-i-fft-plots.ipynb │ │ └── 05-i-trembling.ipynb │ ├── 08A │ │ ├── 08-a-table.ipynb │ │ └── 08-a-table.svg │ ├── 12B │ │ └── Untitled.ipynb │ ├── 16A │ │ ├── 01-a-aliasing.ipynb │ │ ├── 01-a-bitdepth.ipynb │ │ ├── 01-a-sampling.ipynb │ │ └── 01-a-sinewave.ipynb │ ├── 16B │ │ └── sine_noise_sine.ipynb │ ├── 16D │ │ ├── 15-d-randomh.ipynb │ │ ├── 15-d-randomi.ipynb │ │ └── 15-d-rspline.ipynb │ └── templates │ │ ├── multiple_ftables_to_plot.ipynb │ │ ├── one_ftable_to_plot.ipynb │ │ └── pdf2png.txt ├── images │ ├── 00-a-montage-3.png │ ├── 00-a-signal-flow.png │ ├── 00-c-photo-berlin.jpg │ ├── 00-preface-image.png │ ├── 01-GS-01-a.png │ ├── 01-GS-01-sine.png │ ├── 01-GS-02-a.png │ ├── 01-GS-02-b.png │ ├── 01-GS-02-c.png │ ├── 01-GS-02-d.png │ ├── 01-GS-03-a.png │ ├── 01-GS-03-a.svg │ ├── 01-GS-03-b.png │ ├── 01-GS-03-pd-audio.png │ ├── 01-GS-04-a.png │ ├── 01-GS-04-b.png │ ├── 01-GS-04-c.png │ ├── 01-GS-04-d.png │ ├── 01-GS-04-e.png │ ├── 01-GS-05-a.png │ ├── 01-GS-05-b.png │ ├── 01-GS-05-c.png │ ├── 01-GS-05-d.png │ ├── 01-GS-06-a.png │ ├── 01-GS-06-b.png │ ├── 01-GS-06-c.png │ ├── 01-GS-06-c1.png │ ├── 01-GS-06-d.png │ ├── 01-GS-06-d.svg │ ├── 01-GS-06-e.png │ ├── 01-GS-07-a.png │ ├── 01-GS-07-b.png │ ├── 01-GS-07-c.png │ ├── 01-GS-07-d.png │ ├── 01-GS-07-e.png │ ├── 01-GS-09-a.png │ ├── 01-GS-10-a.png │ ├── 01-GS-10-b.png │ ├── 01-GS-10-c.png │ ├── 01-GS-10-d.png │ ├── 01-GS-10-e.png │ ├── 02-c-console.png │ ├── 02-c-error-msg.png │ ├── 03-a-initandperfpass3.png │ ├── 03-a-k-rate-env.png │ ├── 03-a-ksmps.png │ ├── 03-a-peak.png │ ├── 03-a-sr-kr-time3.png │ ├── 03-a-wrong-times.png │ ├── 03-b-add-freq10hz-1.png │ ├── 03-b-add-freq15hz-1.png │ ├── 03-d-gen08-1.png │ ├── 03-d-gen08-2.png │ ├── 03-d-gen08-3.png │ ├── 03-d-gen08-4.png │ ├── 03-d-gen16-1.png │ ├── 03-d-gen16-2.png │ ├── 03-d-gen16-3.png │ ├── 03-d-gen16-4.png │ ├── 03-d-gen16-5.png │ ├── 03-d-gen19-1.png │ ├── 03-d-gen19-2.png │ ├── 03-d-gen30-1.png │ ├── 03-d-gen30-2.png │ ├── 03-d-gen30-3.png │ ├── 03-d-pd-drawing.png │ ├── 03-d-waveforms.png │ ├── 03-f-cmdline.png │ ├── 03-f-l1.png │ ├── 03-f-l2.png │ ├── 03-f-qcbutton1.png │ ├── 03-f-qcbutton3.png │ ├── 03-f-qcbutton4.png │ ├── 04-a-gbuzz1.png │ ├── 04-a-gbuzz2.png │ ├── 04-a-gbuzz3.png │ ├── 04-a-teiltoene_bild3.png │ ├── 04-a-wf_v2.png │ ├── 04-b-22reson.png │ ├── 04-b-2oscsynthflow.png │ ├── 04-b-vowelfilters.png │ ├── 04-c-am.png │ ├── 04-c-am2.png │ ├── 04-c-rm-spectra.png │ ├── 04-c-rm.png │ ├── 04-d-fm-2c.jpg │ ├── 04-d-fm.png │ ├── 04-d-fm2.png │ ├── 04-d-parallel-mm-fm.jpg │ ├── 04-d-serial-mm-fm.jpg │ ├── 04-e-01audacity.png │ ├── 04-e-bild1a.png │ ├── 04-e-distortexample1.png │ ├── 04-e-distortexample2.png │ ├── 04-e-gen7table.png │ ├── 04-e-powershape0-1.png │ ├── 04-e-powershape0-5.png │ ├── 04-e-powershape1.png │ ├── 04-e-powershape2-5.png │ ├── 04-e-powershape50.png │ ├── 04-e-simple-waveshaping.png │ ├── 04-e-sonograms2.png │ ├── 04-e-tanh-1to1.png │ ├── 04-e-tanh-5to5.png │ ├── 04-f-roads.png │ ├── 04-g-01bild1a.png │ ├── 04-g-01bild2a.png │ ├── 04-g-01bild4a.png │ ├── 04-g-05auda.png │ ├── 04-g-physical-model-1.gif │ ├── 04-g-physical-model-11.gif │ ├── 04-g-physical-model-12.gif │ ├── 04-g-physical-model-13.gif │ ├── 04-g-physical-model-2.gif │ ├── 04-g-physical-model-21.gif │ ├── 04-g-physical-model-22.gif │ ├── 04-g-physical-model-23.gif │ ├── 04-g-physical-model-24.gif │ ├── 04-g-physical-model-3.gif │ ├── 04-g-physical-model-4.gif │ ├── 04-g-physical-model-5.gif │ ├── 04-g-physical-model-6.gif │ ├── 04-g-physical-model-7.gif │ ├── 04-g-physical-model-8.gif │ ├── 04-g-physical-model-9.gif │ ├── 04-h-scantable-1.png │ ├── 04-h-scantable-2.png │ ├── 04-h-scantable-3.png │ ├── 04-h-scanu.png │ ├── 05-a-cosseg.png │ ├── 05-a-expseg-port.png │ ├── 05-a-expseg-versions.png │ ├── 05-a-expseg.png │ ├── 05-a-line-expon.png │ ├── 05-a-line-linseg.png │ ├── 05-a-linseg.png │ ├── 05-a-transeg.png │ ├── 05-b-ambi-fig1-intro.png │ ├── 05-b-ambi-fig10-tab3.png │ ├── 05-b-ambi-fig11-tab4.png │ ├── 05-b-ambi-fig12-formulas.png │ ├── 05-b-ambi-fig2-2d.png │ ├── 05-b-ambi-fig3-in-phase.png │ ├── 05-b-ambi-fig4-in-phase2.png │ ├── 05-b-ambi-fig5-dist.png │ ├── 05-b-ambi-fig6-dist2.png │ ├── 05-b-ambi-fig7-3d.png │ ├── 05-b-ambi-fig8-tab1.png │ ├── 05-b-ambi-fig9-tab2.png │ ├── 05-b-vbap-ls-konfig.jpg │ ├── 05-e-soundmod-schroeder-min.jpg │ ├── 05-e-soundmod-schroeder.jpg │ ├── 05-f-RM.png │ ├── 05-f-bit-depth-2.png │ ├── 05-f-bit-depth-high.png │ ├── 05-f-example-4.png │ ├── 05-g-grain-envs.png │ ├── 05-g-scheme.png │ ├── 05-i-bins.png │ ├── 05-i-fft-wins.png │ ├── 05-i-overlap.png │ ├── 05-i-schema-1.png │ ├── 05-i-trembling.png │ ├── 08-a-table.svg │ ├── 08-b-arduinoide.png │ ├── 08-b-arduinopd.png │ ├── 08-b-arduinopdcsound.png │ ├── 08-b-arduinoprocessing.png │ ├── 08-b-midi-bb.png │ ├── 08-b-poton0.png │ ├── 09-a-06a.png │ ├── 09-a-pd3.png │ ├── 09-a-pd4.png │ ├── 09-a-pd5.png │ ├── 09-a-pd6.png │ ├── 09-a-pd7.png │ ├── 09-a-pd8.png │ ├── 09-b-audio-io.png │ ├── 09-b-control.png │ ├── 09-b-create.png │ ├── 09-b-events.png │ ├── 09-b-midi.png │ ├── 10-a-snapshot1.png │ ├── 10-a-snapshot2.png │ ├── 10-a-snapshot3.png │ ├── 10-b-cabbageadsr.png │ ├── 10-b-cabbageaudiographadd.gif │ ├── 10-b-cabbageaudiographmodify.gif │ ├── 10-b-cabbagecoderepo.gif │ ├── 10-b-cabbageeditmode.gif │ ├── 10-b-cabbagefirsteffect.png │ ├── 10-b-cabbagefirstsynth.gif │ ├── 10-b-cabbagefirstsynth1.gif │ ├── 10-b-cabbagefirstsynth2.png │ ├── 10-b-cabbagegentable.png │ ├── 10-b-cabbagenavigatecode.gif │ ├── 10-b-cabbagenewfile.gif │ ├── 10-b-cabbagerangeslider.png │ ├── 10-b-cabbagesettings.gif │ ├── 10-b-cabbagesoundfiler.png │ ├── 10-b-cabbagesynthgraph.gif │ ├── 10-b-cabbagewidgetarray.png │ ├── 10-b-hlogo.png │ ├── 10-b-simplereverb.png │ ├── 10-b-simplesynth_1.png │ ├── 10-b-slide-2.jpg │ ├── 10-c-blue-bsb-interface.png │ ├── 10-c-blue-generic-orc.png │ ├── 10-c-blue-mixer.png │ ├── 10-c-blue-timelinesoundobject.png │ ├── 10-d-winxound.jpg │ ├── 11-a-atsa.png │ ├── 11-a-hetro.png │ ├── 11-a-lpanal.png │ ├── 11-a-pvanal.png │ ├── 12-b-icsound-1.png │ ├── 12-b-icsound-2.png │ ├── 12-b-icsound-3.png │ ├── 12-d-draw.png │ ├── 12-d-plist.png │ ├── 12-d-xcode.png │ ├── 12-e-csound6.png │ ├── 12-e-editor.png │ ├── 12-e-html.png │ ├── 12-e-messages.png │ ├── 12-e-widgets.png │ ├── 12-g-gameoflife3d.png │ ├── 12-g-lindenmayercanvas.png │ ├── 14-a-athenaclscreen.png │ ├── 14-a-cm3.png │ ├── 14-b-01.png │ ├── 14-b-02.png │ ├── 14-b-03.png │ ├── 14-b-04.png │ ├── 14-b-05.png │ ├── 14-b-06.png │ ├── 14-b-07.png │ ├── 14-b-08.png │ ├── 14-b-09.png │ ├── 14-b-10.png │ ├── 14-b-11.png │ ├── 14-b-pythonconsole.png │ ├── 14-c-dynamictrigger.png │ ├── 14-c-follow.png │ ├── 14-c-follow2.png │ ├── 14-c-fox.png │ ├── 14-c-gate.png │ ├── 14-c-homebrew.png │ ├── 14-c-rms.png │ ├── 14-c-thresholdtriggering.png │ ├── 15-a-aliasing-1.png │ ├── 15-a-aliasing-2.png │ ├── 15-a-bitdepth.png │ ├── 15-a-sampling.png │ ├── 15-a-sinewave.png │ ├── 15-b-noisetosine.png │ ├── 15-b-sinetonoise.png │ ├── 15-c-fletcher-munson.png │ ├── 15-c-overall-amps.png │ ├── 15-c-sine-16points-rms-v2.png │ ├── 15-c-sine-16points-v2.png │ ├── 15-d-betarand.png │ ├── 15-d-bexprand.png │ ├── 15-d-exprand.png │ ├── 15-d-gauss.png │ ├── 15-d-linear-distributiona2.png │ ├── 15-d-linear-distributionb2.png │ ├── 15-d-linrand.png │ ├── 15-d-markov-table.png │ ├── 15-d-random-overview.png │ ├── 15-d-random1.gif │ ├── 15-d-random10a1.gif │ ├── 15-d-random11a.gif │ ├── 15-d-random2.gif │ ├── 15-d-random3.gif │ ├── 15-d-random4a.gif │ ├── 15-d-random5a.gif │ ├── 15-d-random6a.gif │ ├── 15-d-random7a.gif │ ├── 15-d-random8a.gif │ ├── 15-d-random9a.gif │ ├── 15-d-randomh.png │ ├── 15-d-randomi.png │ ├── 15-d-rspline.png │ ├── 15-d-triangular-distribution.png │ ├── 15-d-trirand.png │ └── tex_math_examples.png ├── latex-metadata.yaml └── styles │ ├── common.css │ ├── epub.css │ ├── fonts.css │ ├── fonts │ ├── Roboto-Bold.ttf │ ├── Roboto-BoldItalic.ttf │ ├── Roboto-Italic.ttf │ ├── Roboto-Regular.ttf │ ├── RobotoCondensed-Bold.ttf │ ├── RobotoCondensed-Italic.ttf │ ├── RobotoCondensed-Regular.ttf │ ├── TeXGyreCursor-Bold.ttf │ ├── TeXGyreCursor-Italic.ttf │ └── TeXGyreCursor-Regular.ttf │ ├── hlolli.css │ ├── html-pdf.css │ ├── html.css │ └── normalize.css ├── shell.nix ├── src ├── App.js ├── BookContext.js ├── ChapterHOC.js ├── CsoundContext.js ├── Link.js ├── assets │ ├── close.svg │ ├── epub_icon_wikimedia.svg │ ├── logs_icon_wikimedia.svg │ ├── odf_logo_wikimedia.png │ ├── pause.svg │ ├── pdf_icon_wikimedia.svg │ ├── play.svg │ ├── pwa_wikimedia.png │ ├── source_materials.json │ ├── stop.svg │ └── wasm_wikimedia.svg ├── components │ ├── Console │ │ ├── index.js │ │ └── styles.js │ ├── Editor │ │ ├── code-mirror-csound-mode.js │ │ ├── index.js │ │ └── styles.js │ ├── Gui │ │ ├── index.js │ │ └── styles.js │ ├── HomeScreen │ │ ├── index.js │ │ └── styles.js │ ├── LeftNav │ │ ├── DarkMode.js │ │ ├── index.js │ │ └── styles.js │ ├── Main │ │ ├── index.js │ │ └── styles.js │ └── MobileNav │ │ └── index.js ├── history.js ├── hlolli.css ├── index.js ├── serviceWorker.js ├── use-title.js └── vendor │ ├── darkreader.js │ └── react-sticky-el.min.js ├── tests └── layout.spec.js ├── toc.json └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | src/book_fragments 2 | -------------------------------------------------------------------------------- /.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "csound-floss", 4 | "develop": "csound-floss-dev" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: "CI" 2 | env: 3 | REACT_APP_CSOUND_FLOSS_VERSION: 8.0.0 4 | on: 5 | push: 6 | branches: 7 | - master 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v4 13 | - uses: cachix/install-nix-action@v22 14 | with: 15 | nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/866431777b6c766cea0db7aad347824d3816be68.tar.gz 16 | - uses: cachix/cachix-action@v14 17 | with: 18 | name: csound-flossmanual 19 | signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}" 20 | - name: Install build dependencies from cache 21 | run: | 22 | nix-env -i -f shell.nix 23 | mkdir -p $HOME/.local/share/fonts 24 | cp -rf $(nix-build --no-out-link '' -A fira)/share/fonts/* \ 25 | $HOME/.local/share/fonts 26 | fc-cache -f -v 27 | - name: Install npm dependencies via yarn 28 | run: yarn 29 | - name: Test 30 | run: yarn test:ci 31 | - name: Build the book website 32 | run: yarn build 33 | - name: Build pdf 34 | run: | 35 | yarn build:pdf 36 | mkdir -p build/build 37 | mv *.pdf build/build/csound-flossmanual-${REACT_APP_CSOUND_FLOSS_VERSION}.pdf 38 | - name: Build epub 39 | run: | 40 | yarn build:epub 41 | mv *.epub build/build/csound-flossmanual-${REACT_APP_CSOUND_FLOSS_VERSION}.epub 42 | - name: Build odt 43 | run: | 44 | yarn build:odt 45 | mv *.odt build/build/csound-flossmanual-${REACT_APP_CSOUND_FLOSS_VERSION}.odt 46 | - name: Compress dist to zip 47 | run: | 48 | nix-env -f '' -iA zip 49 | zip -r dist.zip build 50 | - name: Archive Production Artifact 51 | uses: actions/upload-artifact@master 52 | with: 53 | name: dist 54 | path: dist.zip 55 | deploy: 56 | name: Deploy 57 | needs: build 58 | runs-on: ubuntu-latest 59 | steps: 60 | - name: Checkout Repo 61 | uses: actions/checkout@master 62 | - name: Download Artifact 63 | uses: actions/download-artifact@master 64 | with: 65 | name: dist 66 | - name: Uncompress dist archive 67 | run: | 68 | sudo apt-get install unzip 69 | unzip ./dist.zip 70 | - name: Deploy to Firebase 71 | uses: w9jds/firebase-action@master 72 | with: 73 | args: deploy -P default --only hosting 74 | env: 75 | FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} 76 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | /.idea 3 | /tmp 4 | csound_flossmanual.pdf 5 | csound_flossmanual.epub 6 | csound_flossmanual.odt 7 | csound-floss-export* 8 | html2pdf*.html 9 | __pycache__ 10 | /.direnv 11 | .envrc 12 | .mypy_cache 13 | *~ 14 | *# 15 | build 16 | .firebase 17 | node_modules 18 | src/book_fragments/* 19 | python-env 20 | .eslintcache 21 | *.log 22 | __tmp* 23 | examples 24 | examples.zip 25 | *.ipynb_checkpoints 26 | .DS_Store 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Building 2 | 3 | ``` 4 | # first install npm dependencies 5 | yarn 6 | # then build with 7 | yarn build 8 | # build pdf with 9 | yarn build:pdf 10 | ``` 11 | 12 | ### Requirements 13 | 14 | - pandoc 2.3+ 15 | - nodejs 17.x or later 16 | - yarn 1.x but no later (make sure it's less than 2.x) 17 | 18 | ## Developing 19 | 20 | ``` 21 | # first install npm dependencies 22 | yarn 23 | # then start writing the book (this will auto-reload any change in the browser) 24 | yarn start 25 | ``` 26 | 27 | ## Tests 28 | 29 | To run tests locally: 30 | 31 | ``` 32 | # Recommended 33 | yarn test 34 | 35 | # Alternatively (either) 36 | npx jest 37 | yarn jest 38 | 39 | # Avoid those two 40 | yarn add jest --global && jest 41 | npm i jest --globall && jest 42 | ``` 43 | 44 | ## Contributing 45 | 46 | - [Conventions for writing](contribute/conventions.md) 47 | - [Writing in Markdown](contribute/writing-in-markdown.md) 48 | - [Todo list](contribute/todo.md) 49 | 50 | ## Writing Tools 51 | 52 | - [Panwriter: a GUI for editing Pandoc files](https://panwriter.com/) 53 | - [Atom Package for Pandoc edit and preview](https://atom.io/packages/pandoc) 54 | - [Emacs Mode for editing Pandoc files](http://joostkremers.github.io/pandoc-mode/) 55 | - [Vim plugin for Pandoc integration and utilities](https://github.com/vim-pandoc/vim-pandoc) 56 | 57 | ## Further Read 58 | 59 | - [Pandoc Official Manual](https://pandoc.org/MANUAL.html) 60 | - [Pandoc alternative manual](https://rmarkdown.rstudio.com/authoring_pandoc_markdown.html%23raw-tex) 61 | 62 | ## Continuous Integration and Firebaseapp Build 63 | 64 | After each merge into develop, a preview of the manual is built and hosted 65 | as from firebase, it's available at: [https://csound-floss-dev.firebaseapp.com/](https://csound-floss-dev.firebaseapp.com/). 66 | -------------------------------------------------------------------------------- /book/00-b-on-this-release.md: -------------------------------------------------------------------------------- 1 | # ON THIS RELEASE 2 | 3 | After two and a half years, it is again time for a new major release. 4 | 5 | Since the first release of this textbook in 2011 many things have changed. 6 | With [csound.com](https://csound.com) we now have a good community website. 7 | Links and informations about different ways to use Csound can go there. 8 | We don't need them any more in the Csound Floss Manual, and it is better 9 | to collect links and community information in only one place. 10 | 11 | It is also no longer necessary to provide information about the frontends here. 12 | All have own websites and introductions. All we do here is to link to them. 13 | 14 | But what is really missing, in my opinion, is an up-to-date [**Getting Started**](/get-started). 15 | So I decided to write it, and let the book begin with it. 16 | 17 | It is followed by another new chapter. In this [**How to ...**](/how-to) I start to collect 18 | brief descriptions which provide instructions and advices for beginners and also 19 | for more experienced Csound users. From _How to install Csound for Windows_ 20 | to _How to use my MIDI keyboard with Csound_ or _How to perform time stretch_. 21 | 22 | This re-ordering is a big work, and will probably never be finished. 23 | This release is somehow a mix between old and new: 24 | 25 | - New GETTING STARTED is now chapter 01, but only 10 of planned 24 tutorials are there. 26 | - New HOW TO ... is now chapter 02, but only few of the desired decriptions are already there. 27 | - The BASICS chapter has been moved from chapter 01 to chapter 16. 28 | - The old GET STARTED (formerly chapter 01) has been removed. 29 | Its content is covered in the new GETTING STARTED for the introduction and the 30 | HOW TO ... for the installation guide. 31 | - The old chapters about the frontends are not yet removed although they are not up to date. 32 | Once the HOW TO ... descriptions are more extended, they will be removed. 33 | - Similar for some old content which might be outdated but still useful for some. 34 | - To end with some new in old: The OSC chapter has been extended by some 35 | [practical examples](/other-communication/open-sound-control#practical-examples-with-processing) 36 | about the communication between Csound and Processing. 37 | 38 | Previous releases can be found at [https://github.com/csound-flossmanual/csound-flossmanual.github.io](https://github.com/csound-flossmanual/csound-flossmanual.github.io), as well as the current csd files and audio samples. 39 | 40 | Big thanks goes to Hlöðver Sigurðsson who made this new interactive FLOSS manual 41 | possible with all his great and important work on JavaScript-based Csound and much more. 42 | 43 | Hannover, March 2023 44 | joachim heintz 45 | -------------------------------------------------------------------------------- /book/08-c-csound-via-udp.md: -------------------------------------------------------------------------------- 1 | # 08 C. CSOUND VIA UDP 2 | 3 | ## Using Csound via UDP with the _--port_ Option 4 | 5 | The _--port=N_ option allows users to send orchestras to be compiled 6 | on-the-fly by Csound via UDP connection. This way, Csound can be started 7 | with no instruments, and will listen to messages sent to it. Many 8 | programs are capable of sending UDP messages, and scripting languages, 9 | such as Python, can also be used for this purpose. The simplest way of 10 | trying out this option is via the netcat program, which can be used in 11 | the terminal via the nc command. 12 | 13 | Let's explore this as an example of the _--port_ option.\ 14 | First, Csound is started with the following command: 15 | 16 | $ csound -odac --port=1234 17 | 18 | Alternatively, if using a frontend such as CsoundQt, it is possible run 19 | an empty CSD, with the _--port_ in its CsOptions field: 20 | 21 | #### **_EXAMPLE 10F01_csound_udp.csd_** 22 | 23 | ```csound 24 | 25 | 26 | --port=1234 27 | 28 | 29 | 30 | 31 | 32 | 33 | ``` 34 | 35 | This will start Csound in a daemon mode, waiting for any UDP messages in 36 | port 1234. Now with netcat, orchestra code can be sent to Csound. A 37 | basic option is to use it interactively in the terminal, with a 38 | heredocument command (\<\<) to indicate the end of the orchestra we are 39 | sending: 40 | 41 | $ nc -u 127.0.0.1 1234 << EOF 42 | > instr 1 43 | > a1 oscili p4*0dbfs,p5 44 | > out a1 45 | > endin 46 | > schedule 1,0,1,0.5,440 47 | > EOF 48 | 49 | Csound will respond with a 440Hz sinewave. The ctl-c key combination can 50 | be used to close nc and go back to the shell prompt. Alternatively, we 51 | could write our orchestra code to a file and then send it to Csound via 52 | the following command (orch is the name of our file): 53 | 54 | $ nc -u 127.0.0.1 1234 < orch 55 | 56 | Csound performance can be stopped in the usual way via ctl-c in the 57 | terminal, or through the dedicated transport controls in a frontend. 58 | We can also close the server it via a special UDP message: 59 | 60 | ERROR WITH MACRO close 61 | 62 | However, this will not close Csound, but just stop the UDP server. 63 | -------------------------------------------------------------------------------- /book/09-c-csound-as-a-vst-plugin.md: -------------------------------------------------------------------------------- 1 | # 09 C. CSOUND AS A VST PLUGIN 2 | 3 | Csound can be built into a VST or AU plugin through the use of the 4 | Csound host API. Refer to the section on using the Csound API for more 5 | details. 6 | 7 | The best choice currently is 8 | to use [Cabbage](https://www.cabbageaudio.com) to create Csound based plugins. 9 | See the [Cabbage chapter](10-b-cabbage.md) in part 10 of this manual. 10 | -------------------------------------------------------------------------------- /book/10-d-winxound.md: -------------------------------------------------------------------------------- 1 | # 10 D. WINXOUND 2 | 3 | It seems that WinXound is not developed any more, but it might still be useful to run 4 | older Csound versions; so we keep this chapter for now. 5 | 6 | WinXound is a free and open-source Front-End GUI Editor for CSound 6, 7 | CSoundAV, CSoundAC, with Python and Lua support, developed by Stefano Bonetti. 8 | It runs on Microsoft Windows, Apple Mac OsX and Linux. 9 | WinXound is optimized to work with the CSound 6 compiler. 10 | 11 | See [WinXound's Website](https://mnt.conts.it/winxound) for more information. 12 | 13 | ![](../resources/images/10-d-winxound.jpg) 14 | -------------------------------------------------------------------------------- /book/10-f-web-based-csound.md: -------------------------------------------------------------------------------- 1 | # 10 F. WEB BASED CSOUND 2 | 3 | Csound to be used in a browser via javascript is currently one of the most exciting developments. This chapter will be rewritten soon. For now, have a look at these introductions and tutorials: 4 | 5 | 1. Victor Lazzarini has written an extensive tutorial as [Vanilla Guide to Webaudio Csound](https://vlazzarini.github.io/vanilla/) 6 | 2. Steven Yi and Hlöðver Sigurðsson showed an extended tutorial on the ICSC 2022: [Csound on the Web](https://kunstmusik.github.io/icsc2022-csound-web) 7 | 3. Rory Walsh has contributed a tutorial about his [p5.csound](https://github.com/rorywalsh/p5.Csound), a wrapper to use Csound inside [p5.js](https://p5js.org/) sketches (the javascript version of [Processing](https://processing.org/): [https://rorywalsh.github.io/p5.Csound/#/](https://rorywalsh.github.io/p5.Csound/#/). 8 | 9 | The WebAudio Csound Documentation can be found [here](https://www.npmjs.com/package/@csound/browser). 10 | -------------------------------------------------------------------------------- /book/11-c-miscellaneous.md: -------------------------------------------------------------------------------- 1 | # 11 C. MISCELLANEOUS 2 | 3 | A final group gathers together various unsorted utilities: 4 | [cs](http://www.csound.com/manual/html/cs.html), 5 | [csb64enc](http://www.csound.com/manual/html/csb64enc.html), 6 | [envext](http://www.csound.com/manual/html/envext.html), 7 | [extractor](http://www.csound.com/manual/html/extractor.html), 8 | [makecsd](http://www.csound.com/manual/html/makecsd.html), 9 | [mixer](http://www.csound.com/manual/html/mixer.html), 10 | [scale](http://www.csound.com/manual/html/scaleutility.html) and 11 | [mkdb](http://www.csound.com/manual/html/mkdb.html). 12 | 13 | Most interesting of these are perhaps 14 | [extractor](http://www.csound.com/manual/html/extractor.html) which 15 | will extract a user defined fragment of a sound file which it will then 16 | write to a new file, 17 | [mixer](http://www.csound.com/manual/html/mixer.html) which mixes 18 | together any number of sound files and with gain control over each file 19 | and [scale](http://www.csound.com/manual/html/scaleutility.html) which 20 | will scale the amplitude of an individual sound file. 21 | -------------------------------------------------------------------------------- /book/metadata.yaml: -------------------------------------------------------------------------------- 1 | copyright: 2 | owner: The contributors 3 | year: 2010 4 | 5 | title: "The Csound FLOSS Manual" 6 | subtitle: "Release 7 (work in progress)" 7 | 8 | publisher: "CC BY" 9 | 10 | use_plantuml: false 11 | use_weasyprint: true 12 | 13 | # Set to the language in which the book is written. This is especially 14 | # useful when generating PDF with weasyprint, because it affects how 15 | # hyphenation is handled. (When using weasyprint, automatic hyphenation is 16 | # supported for any language that Pyphen supports.) 17 | 18 | # Multiple authors are permitted. 19 | author: 20 | - Joachim Heintz, Iain McCurdy & contributors 21 | 22 | # Book identifier is optional. 23 | #identifier: 24 | # scheme: ISBN # or DOI 25 | # text: 123456789X 26 | 27 | # The language and variant in which the book is written. 28 | language: en-US 29 | 30 | # See https://wiki.mobileread.com/wiki/Genre 31 | genre: reference 32 | # Set this option if you need to change the paper size. Default is "letter". 33 | # "A4" is also valid. 34 | 35 | #papersize: letter 36 | -------------------------------------------------------------------------------- /contribute/conventions.md: -------------------------------------------------------------------------------- 1 | # Conventions for contributions 2 | 3 | ## Image names 4 | 5 | Name images starting with section number (00, 01, ...) and chapter (a, b, ...) 6 | before the name. Substitute spaces and slashes by minus. 7 | 8 | For instance: 9 | 10 | 04-d-flowchart-fm.png 11 | 12 | for the figure "flowchart fm.png" in the chapter "D. FREQUENCY MODULATION" in the 13 | section "04 SOUND SYNTHESIS". 14 | 15 | ## Image sources 16 | 17 | If possible, put a source file for the generated figure with the same name in 18 | resources/image_sources 19 | 20 | ## Code examples 21 | 22 | _Full_ .csd examples must be enclosed by three backticks: 23 | 24 |
```
25 | 26 | and _not_ indented. 27 | 28 | If playback of the csd example is desired, you can add the keyword 'csound' 29 | immedietly after the three backticks: 30 | 31 |
```csound
32 | 33 | Remember to close the example with three backticks followed by a newline: 34 | 35 |
```
36 | 37 | If playback is not desired, the following tags will highlight the csound code 38 | without a wasm playback engine. Pick the one depending on the snippet type. 39 | 40 |
```csd
41 |
```orc
42 |
```sco
43 | 44 | Few additional languages are supported 45 | 46 |
```python
47 |
```c
48 | 49 | The full examples (which are collected and distributed separately) must be 50 | preceded by four hashes(\#) a number and a title of the example, 51 | starting with the word EXAMPLE (\#\#\#\# \*\*EXAMPLE\*\*): 52 | 53 |
#### _EXAMPLE 16D01_different_seed.csd_
54 | 55 | _Small_ example snippets must be _indented by four spaces_. 56 | 57 | Make sure that the examples marked as **full** are **executable out of the box**. If not, format them 58 | as _small_ examples. (For instance, the example at the end of chapter 13A is formatted as _small_ because it requires to build the plugin opcode first.) 59 | 60 | See [writing-in-markdown.txt](writing-in-markdown.txt) for more details. 61 | 62 | ## Run `yarn prettify` 63 | 64 | Run `yarn prettify` before you add/commit your changes. If there is a 65 | terrible issue which our master (H.S.) cannot solve, you may prevent 66 | [prettier](https://prettier.io) from crushing things which work by using 67 | ``. See 68 | [prettier markdown explanations](https://prettier.io/docs/en/ignore.html#markdown) 69 | for more. 70 | -------------------------------------------------------------------------------- /contribute/source_materials_and_samples.md: -------------------------------------------------------------------------------- 1 | SourceMaterials 2 | ============================= 3 | 4 | when adding an sample or any binary based resource to a code example, 5 | few things needs to be considered. The size matters, loading an example 6 | trough bad connection, a MB of binary data could mean up to a minute 7 | large samples can also mean bloated git respository. 8 | 9 | The binary data must be places in SourceMaterials directory which 10 | is when this is written under `resources/SourceMaterials`. 11 | Any nesting or new directory inside that directory will not 12 | be seen by the react-app. 13 | 14 | By a simple regular expression operation, the react-app will know 15 | which samples from the included included SourceMaterials directory 16 | is being refered to. That means, when playing a code example with 17 | binary resource, the react-app will only download the resources 18 | needed, ignoring all else. For this mechanism to work properly, 19 | it's important to remember to update the json file 20 | `src/assets/source_materials.json` when adding new files. 21 | This way all assets are known ahead of time, and no guesswork 22 | takes place. 23 | -------------------------------------------------------------------------------- /contribute/todo.md: -------------------------------------------------------------------------------- 1 | TO DO 2 | ===== 3 | 4 | - go through all examples and 5 | - replace some instrument numbers by names 6 | - introduce some functional style 7 | - format 8 | - more consistency in either *myVar* or `myVar` 9 | 10 | 11 | Edits 12 | ----- 13 | 14 | - 01-a (digital audio) 15 | - perhaps introduce bitwise operations 16 | - perhaps introduce frequency-domain representation 17 | - 01-d (random) 18 | - perhaps give more connection to csound 19 | - 03-d (tables) 20 | - reading values could be described better: either index+table (where index can derive from linseg or phasor), or oscillator. 21 | - look at interesting new gen routines for the overview 22 | - new plots for it 23 | - 04-a (envelopes) 24 | - add smoothing envelopes (sc_lag, port, tonek) 25 | - 04-e (wave shaping) 26 | - standard polynomial and Chebyshev polynomial wave shaping – both using 27 | the opcodes and function tables 28 | - Tanh waveshaping, both using the function tanh() and a function table 29 | GEN “tanh” 30 | - 04-g (physical models) 31 | - maybe add prepiano and platerev examples 32 | - modal synthesis to mention here? 33 | - 05-a (envelopes) 34 | - add envelopes stored as function tables 35 | - 05-b (spatial) 36 | - ambi udos: array output wherever possible 37 | - 05-c (filter) 38 | - perhaps add notch, shelf filter and equilizers 39 | - add figures 40 | - go deeper in the implementation of filters, perhaps with steven's udos 41 | - how to create a multiband graphic EQ 42 | - example of the classic channel vocoder could fit here 43 | - 05-i (fft) 44 | - pvsosc? 45 | - 05-k (ats) 46 | - coding of the examples might be up to modernize 47 | - 07-d (reading midi) 48 | - can we include the midi file and the sound fonts for example 07D01? 49 | - add hint for any script or application for midi2score 50 | - 09-b (csound in maxmsp) 51 | - needs to be updated 52 | - 10-a (csoundqt) 53 | - describe some use cases here. perhaps more links to csoundqt's website 54 | - 14-a (score methods) 55 | - perhaps mark Cmask etc as historical tools 56 | - 14-b (python csoundqt) 57 | - should perhaps go to csoundqt website. instead point to it in the 58 | new csoundqt chapter (10-a) describing use cases 59 | 60 | 61 | 62 | In Process 63 | ---------- 64 | 65 | - Hlodver will contribute Live Coding Chapter (14 C) (20191215) 66 | - Asked Luis and Hlodver about Csound in vim and Emacs (20191215) 67 | 68 | 69 | -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "public": "build", 4 | "ignore": [ 5 | "firebase.json", 6 | "**/.*", 7 | "**/node_modules/**", 8 | "tmp", 9 | "lib", 10 | "resources", 11 | "result", 12 | "scripts", 13 | "book", 14 | "src" 15 | ], 16 | "rewrites": [ 17 | { 18 | "source": "**", 19 | "destination": "/index.html" 20 | } 21 | ], 22 | "headers": [ 23 | { 24 | "source": "**", 25 | "headers": [ 26 | { 27 | "key": "Cache-Control", 28 | "value": "max-age=0,public,must-revalidate" 29 | } 30 | ] 31 | }, 32 | { 33 | "source": "**/*.@(js|jpg|svg|jpeg|png|eot|otf|ttf|ttc|woff|css|wasm|ico)", 34 | "headers": [ 35 | { 36 | "key": "Cache-Control", 37 | "value": "max-age=31536000,public,immutable" 38 | } 39 | ] 40 | } 41 | ] 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /jest.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "testRegex": "tests/.*\\.spec\\.js$" 3 | } 4 | -------------------------------------------------------------------------------- /other/01-GS-11.md: -------------------------------------------------------------------------------- 1 | # 11 Hello Keys 2 | 3 | 11 Hello Keys (also turnoff and turnoff2) 4 | 12 Hello Live Input (also Delay) 5 | 13 Hello Record 6 | 7 | ## What you learn in this tutorial 8 | 9 | - schedulek 10 | 11 | ## What is a 12 | 13 | ## Example 14 | 15 | ```csound 16 | 17 | 18 | -o dac 19 | 20 | 21 | 22 | sr = 44100 23 | ksmps = 64 24 | nchnls = 2 25 | 0dbfs = 1 26 | seed 12345 27 | 28 | instr Hello 29 | iMidiStart = random:i(55,80) 30 | iMidiEnd = random:i(55,80) 31 | iDbStart = random:i(-30,-10) 32 | iDbEnd = random:i(-30,-10) 33 | kDb = linseg:k(iDbStart,p3/2,iDbEnd) 34 | kMidi = linseg:k(iMidiStart,p3/3,iMidiEnd) 35 | aSine = poscil:a(ampdb(kDb),mtof(kMidi)) 36 | aOut = linen:a(aSine,0,p3,p3/2) 37 | outall(aOut) 38 | 39 | if (p4 > 0) then 40 | iStart = random:i(1,3) 41 | iDur = p3 + random:i(-p3/2,p3) 42 | schedule("Hello",iStart,iDur,p4-1) 43 | endif 44 | endin 45 | schedule("Hello", 0, 2, 15) 46 | 47 | 48 | 49 | 50 | 51 | ``` 52 | 53 | ## 54 | 55 | ## Try it yourself 56 | 57 | ## Opcodes you have learned in this tutorial 58 | 59 | ### Opcodes 60 | 61 | ## Go on now ... 62 | 63 | with the next tutorial: [12 Hello Live Input](01-GS-12.md). 64 | 65 | ## ... or read some more explanations here 66 | 67 | ### S 68 | -------------------------------------------------------------------------------- /other/01-GS-12.md: -------------------------------------------------------------------------------- 1 | # 12 Hello Live Input 2 | 3 | 11 Hello Keys (also turnoff and turnoff2) 4 | 12 Hello Live Input (also Delay) 5 | 13 Hello Record 6 | 7 | ## What you learn in this tutorial 8 | 9 | ## What is a 10 | 11 | ## Example 12 | 13 | ```csound 14 | 15 | 16 | -odac 17 | 18 | 19 | 20 | sr = 44100 21 | ksmps = 64 22 | nchnls = 2 23 | 0dbfs = 1 24 | 25 | instr 1 26 | kc chnget "freq" 27 | a1 poscil 0.2, kc 28 | out(a1,a1) 29 | endin 30 | 31 | 32 | 33 | i 1 0 360 0.2 200 34 | 35 | 36 | 37 | 38 | 40 | 41 | ``` 42 | 43 | ## 44 | 45 | ## Try it yourself 46 | 47 | ## Opcodes you have learned in this tutorial 48 | 49 | ### Opcodes 50 | 51 | ## Go on now ... 52 | 53 | with the next tutorial: [13 Hello Record](01-GS-13.md). 54 | 55 | ## ... or read some more explanations here 56 | 57 | ### S 58 | -------------------------------------------------------------------------------- /other/01-GS-13.md: -------------------------------------------------------------------------------- 1 | # 13 Hello Record 2 | 3 | 11 Hello Keys (also turnoff and turnoff2) 4 | 12 Hello Live Input (also Delay, also -b and -B) 5 | 13 Hello Record 6 | 7 | - Reverb 8 | - mode = partials (arrays) 9 | - sound files 10 | - panning (auch hrtf?) 11 | - udo (vocoder?) 12 | - processing / javascript 13 | - chnget / chnset (communication) 14 | - andy: fire oder bouncing ball 15 | 16 | ## What you learn in this tutorial 17 | 18 | ## What is a 19 | 20 | ## Example 21 | 22 | ```csound 23 | 24 | 25 | -o dac 26 | 27 | 28 | 29 | sr = 44100 30 | ksmps = 64 31 | nchnls = 2 32 | 0dbfs = 1 33 | seed 12345 34 | 35 | instr Hello 36 | iMidiStart = random:i(55,80) 37 | iMidiEnd = random:i(55,80) 38 | iDbStart = random:i(-30,-10) 39 | iDbEnd = random:i(-30,-10) 40 | kDb = linseg:k(iDbStart,p3/2,iDbEnd) 41 | kMidi = linseg:k(iMidiStart,p3/3,iMidiEnd) 42 | aSine = poscil:a(ampdb(kDb),mtof(kMidi)) 43 | aOut = linen:a(aSine,0,p3,p3/2) 44 | outall(aOut) 45 | 46 | if (p4 > 0) then 47 | iStart = random:i(1,3) 48 | iDur = p3 + random:i(-p3/2,p3) 49 | schedule("Hello",iStart,iDur,p4-1) 50 | endif 51 | endin 52 | schedule("Hello", 0, 2, 15) 53 | 54 | 55 | 56 | 57 | 58 | ``` 59 | 60 | ## 61 | 62 | ## Try it yourself 63 | 64 | ## Opcodes you have learned in this tutorial 65 | 66 | ### Opcodes 67 | 68 | ## Go on now ... 69 | 70 | with the next tutorial: [13 Hello Record](01-GS-13.md). 71 | 72 | ## ... or read some more explanations here 73 | 74 | ### S 75 | -------------------------------------------------------------------------------- /other/interactive-demo.md: -------------------------------------------------------------------------------- 1 | ## Writing interactive GUI for the flossmanual 2 | 3 | - must be delimited with `` tags outside of `` (top or bottom) 4 | - currently no nesting is possible, self-closing elements as long as they are wrapped between Gui tags 5 | 6 | ### \ 7 | 8 | Has the following properties (in xml-slang "attributes") 9 | 10 | - `id` type string: the name of the channel it should send values to 11 | - `name` type string: meaningful name that is displaued in the GUI window 12 | - `min` type number: smallest value possible in the slider 13 | - `max` type number: largest value possible in the slider 14 | - `defaultValue` type number: the starting value of the slider 15 | 16 | ```csound 17 | 18 | 19 | -odac 20 | 21 | 22 | 23 | sr = 44100 24 | ksmps = 64 25 | nchnls = 2 26 | 0dbfs = 1 27 | 28 | instr 1 29 | kc chnget "freq" 30 | a1 poscil 0.2, kc 31 | out(a1,a1) 32 | endin 33 | 34 | 35 | 36 | i 1 0 360 0.2 200 37 | 38 | 39 | 40 | 41 | 42 | 43 | ``` 44 | -------------------------------------------------------------------------------- /pandoc/build.js: -------------------------------------------------------------------------------- 1 | const { buildAllHtml } = require("./build_all_html"); 2 | const { spawn } = require("child_process"); 3 | const R = require("ramda"); 4 | 5 | buildAllHtml(); 6 | 7 | const react_process = spawn( 8 | "npx", 9 | ["react-scripts", "--openssl-legacy-provider", "build"], 10 | { 11 | env: R.assoc("EXTEND_ESLINT", "true", process.env), 12 | } 13 | ); 14 | 15 | react_process.stdout.on("data", (s) => console.log(s.toString())); 16 | 17 | react_process.stderr.on("data", (s) => console.error(s.toString())); 18 | 19 | react_process.on("close", (s) => console.log(s.toString()) || process.exit(0)); 20 | -------------------------------------------------------------------------------- /pandoc/build_all_html.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | const R = require("ramda"); 3 | const fg = require("fast-glob"); 4 | const fs = require("fs"); 5 | const { tmpdir } = require("os"); 6 | const { execMarkdownToHtml } = require("./build_html"); 7 | const { ensureEmptyDir } = require("./utils"); 8 | const { BOOK_DIRECTORY, JSX_OUTPUT } = require("./constants"); 9 | const { buildOverviewPages } = require("./build_html_overview_pages"); 10 | const toc = require("../toc.json"); 11 | 12 | const allChapters = fg.sync([`${BOOK_DIRECTORY}/*.md`], { dot: false }); 13 | 14 | const buildAllHtml = () => { 15 | ensureEmptyDir(JSX_OUTPUT); 16 | buildOverviewPages(); 17 | R.pipe( 18 | R.map((chapter) => execMarkdownToHtml(chapter)), 19 | (routesOrig) => { 20 | const routes = []; 21 | let currentChapterNumber = -1; 22 | 23 | for (const routeData of routesOrig) { 24 | if ( 25 | routeData.chapter !== currentChapterNumber && 26 | routeData.with_overview_page 27 | ) { 28 | const thisChapterNum = currentChapterNumber + 1; 29 | const thisChapterPrefix = 30 | thisChapterNum < 10 ? `0${thisChapterNum}` : `${thisChapterNum}`; 31 | const thisToc = toc.find((t) => t.chapter === thisChapterNum); 32 | if (thisToc) { 33 | routes.push({ 34 | ...thisToc, 35 | chapter: thisChapterNum, 36 | module: `${thisChapterPrefix}-overview`, 37 | url: `${thisToc.url_prefix}`, 38 | sectionName: "Overview", 39 | }); 40 | } else { 41 | console.error("Didn't find matching chapter defined in TOC!"); 42 | } 43 | } 44 | routes.push(routeData); 45 | currentChapterNumber = routeData.chapter; 46 | } 47 | fs.writeFileSync( 48 | path.join(JSX_OUTPUT, `routes.json`), 49 | JSON.stringify(routes) 50 | ); 51 | } 52 | )(allChapters); 53 | 54 | const otherDir = path.resolve(__dirname, "../other"); 55 | const interactiveDemo = path.join(otherDir, "interactive-demo.md"); 56 | R.pipe(execMarkdownToHtml)(interactiveDemo); 57 | }; 58 | 59 | module.exports = { buildAllHtml }; 60 | 61 | if (require.main === module) { 62 | // buildOverviewPages(); 63 | buildAllHtml(); 64 | } 65 | -------------------------------------------------------------------------------- /pandoc/build_epub.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | const fg = require("fast-glob"); 4 | const { execSync } = require("child_process"); 5 | const { tmpdir } = require("os"); 6 | const R = require("ramda"); 7 | const { 8 | EPUB_OUTPUT, 9 | BOOK_DIRECTORY, 10 | MARKDOWN_EXTENSIONS, 11 | RESOURCES_DIRECTORY, 12 | } = require("./constants"); 13 | 14 | execSync( 15 | `pandoc book/*.md -f ${MARKDOWN_EXTENSIONS.join("+")} \ 16 | --filter=pandoc/filters/epub_images.js \ 17 | --epub-metadata=resources/epub-metadata.yml \ 18 | -o ${EPUB_OUTPUT} \ 19 | --mathjax`, 20 | { encoding: "utf-8" } 21 | ); 22 | 23 | console.log(null); 24 | -------------------------------------------------------------------------------- /pandoc/build_html.js: -------------------------------------------------------------------------------- 1 | const pandoc = require("pandoc-filter-promisified"); 2 | const { execSync } = require("child_process"); 3 | const { tmpdir } = require("os"); 4 | const fs = require("fs"); 5 | const path = require("path"); 6 | const postProcessHtml = require("./filters/html_post_process"); 7 | const { 8 | buildLink, 9 | ensureEmptyDir, 10 | makeWrapChapterInTemplate, 11 | readFileWithFallback, 12 | } = require("./utils"); 13 | const { 14 | JSX_OUTPUT, 15 | BOOK_DIRECTORY, 16 | MARKDOWN_EXTENSIONS, 17 | } = require("./constants"); 18 | const html2jsx = require("html-to-jsx"); 19 | const R = require("ramda"); 20 | 21 | const wrapChapterInTemplate = makeWrapChapterInTemplate(); 22 | 23 | function execMarkdownToHtml(fileName) { 24 | const chapterBasename = path.basename(fileName, ".md"); 25 | const tmpDest = path.join(tmpdir(), chapterBasename) + ".html"; 26 | const stdout = execSync( 27 | `pandoc --to=html5 --wrap=auto ${fileName} -f ${MARKDOWN_EXTENSIONS.join( 28 | "+" 29 | )} -o ${tmpDest} --mathjax` 30 | ); 31 | const htmlString = readFileWithFallback(tmpDest); 32 | const escapedHtmlString = htmlString 33 | .replace(/{/g, "&#123;") 34 | .replace(/}/g, "&#125;") 35 | .replace(/\\n/g, "\\n") 36 | .replace(/\\'/g, "\\'") 37 | .replace(/\\"/g, '\\"') 38 | .replace(/\\&/g, "\\&") 39 | .replace(/\\r/g, "\\r") 40 | .replace(/\\t/g, "\\t") 41 | .replace(/\\b/g, "\\b") 42 | .replace(/\\f/g, "\\f"); 43 | 44 | const processedHtmlString = postProcessHtml(escapedHtmlString); 45 | // evil and neccecary hack 46 | // console.log(processedHtmlString); 47 | const jsxElements = html2jsx(processedHtmlString) 48 | .replaceAll("&", "&") 49 | .replaceAll(' data="REPLACEME_BEG', " data={`") 50 | .replaceAll('REPLACEME_END"', "`}") 51 | .replaceAll("undefined", "") 52 | // .replaceAll('">', "`}>") 53 | .replace(/^$/gm, ">{' '}"); 55 | 56 | const linkData = buildLink(path.basename(fileName)); 57 | 58 | fs.writeFileSync( 59 | path.join(JSX_OUTPUT, `${chapterBasename}.jsx`), 60 | wrapChapterInTemplate( 61 | jsxElements, 62 | R.propOr("Untitled Chapter", "sectionName", linkData) 63 | ) 64 | ); 65 | return { 66 | module: `${chapterBasename}`, 67 | ...linkData, 68 | }; 69 | } 70 | 71 | module.exports = { execMarkdownToHtml }; 72 | // execMarkdownToHtml("book/12-a-the-csound-api.md"); 73 | // execMarkdownToHtml("henda.md"); 74 | -------------------------------------------------------------------------------- /pandoc/build_odt.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | const fg = require("fast-glob"); 4 | const { execSync } = require("child_process"); 5 | const { tmpdir } = require("os"); 6 | const R = require("ramda"); 7 | const { 8 | ODT_OUTPUT, 9 | BOOK_DIRECTORY, 10 | MARKDOWN_EXTENSIONS, 11 | RESOURCES_DIRECTORY, 12 | } = require("./constants"); 13 | 14 | execSync( 15 | `pandoc book/*.md \ 16 | --filter=pandoc/filters/epub_images.js \ 17 | -o ${ODT_OUTPUT} \ 18 | --mathjax`, 19 | { encoding: "utf-8" } 20 | ); 21 | 22 | console.log(null); 23 | -------------------------------------------------------------------------------- /pandoc/build_pdf.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | const fg = require("fast-glob"); 4 | const { execSync } = require("child_process"); 5 | const { tmpdir } = require("os"); 6 | const R = require("ramda"); 7 | const { 8 | PDF_OUTPUT, 9 | BOOK_DIRECTORY, 10 | MARKDOWN_EXTENSIONS, 11 | RESOURCES_DIRECTORY, 12 | } = require("./constants"); 13 | 14 | const allChapters = R.reject( 15 | (md) => md.includes("00--aa-toc.md"), 16 | fg.sync([`${BOOK_DIRECTORY}/*.md`], { dot: false }) 17 | ).sort(); 18 | 19 | // const allChapters = R.take(10, allChapters_); 20 | 21 | const tmpDest = path.join(tmpdir(), "csound_flossmanual_single.md"); 22 | 23 | const deleteLinesHack = [ 24 | "![](https://gogins.github.io/csound-extended/scrims.html){width=100% height=600px object-fit=contain}", 25 | /width=50%/g, 26 | ]; 27 | 28 | R.pipe( 29 | R.reduce((acc, chapterLocation) => { 30 | const chapter = fs.readFileSync(chapterLocation).toString(); 31 | return ( 32 | acc + 33 | "\n" + 34 | chapter.replace(/\.\.\/resources\//g, `${RESOURCES_DIRECTORY}/`) 35 | ); 36 | }, ""), 37 | (x) => R.reduce((a, v) => a.replace(v, ""), x, deleteLinesHack), 38 | (singleMd) => fs.writeFileSync(tmpDest, singleMd) 39 | )(allChapters); 40 | 41 | execSync( 42 | `pandoc ${tmpDest} -f ${MARKDOWN_EXTENSIONS.join("+")} \ 43 | -N --template=pandoc/latex/template.tex \ 44 | --syntax-definition=pandoc/csound-theme.xml \ 45 | --highlight-style=tango \ 46 | --top-level-division=chapter \ 47 | --include-in-header pandoc/latex/chapter_break.tex \ 48 | --include-in-header pandoc/latex/codesize.tex \ 49 | --include-in-header pandoc/latex/disable_float.tex \ 50 | --pdf-engine=xelatex \ 51 | --filter=pandoc/filters/pdf_interlinks.js \ 52 | --filter=pandoc/filters/pdf_codeblocks.js \ 53 | -o ${PDF_OUTPUT}`, 54 | { encoding: "utf-8" } 55 | ); 56 | 57 | console.log(null); 58 | -------------------------------------------------------------------------------- /pandoc/constants.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | const PDF_OUTPUT = path.resolve(__dirname, "../csound_flossmanual.pdf"); 4 | const EPUB_OUTPUT = path.resolve(__dirname, "../csound_flossmanual.epub"); 5 | const ODT_OUTPUT = path.resolve(__dirname, "../csound_flossmanual.odt"); 6 | const JSX_OUTPUT = path.resolve(__dirname, "../src/book_fragments"); 7 | const BOOK_DIRECTORY = path.resolve(__dirname, "../book"); 8 | const OTHER_DIRECTORY = path.resolve(__dirname, "../other"); 9 | const RESOURCES_DIRECTORY = path.resolve(__dirname, "../resources"); 10 | const MARKDOWN_EXTENSIONS = [ 11 | "markdown", 12 | "line_blocks", 13 | "escaped_line_breaks", 14 | "smart", 15 | "fenced_code_blocks", 16 | "backtick_code_blocks", 17 | "fenced_code_attributes", 18 | "backtick_code_blocks", 19 | "yaml_metadata_block", 20 | "implicit_figures", 21 | "tex_math_dollars", 22 | "link_attributes", 23 | "inline_notes", 24 | "citations", 25 | "footnotes", 26 | "definition_lists", 27 | "raw_tex", 28 | "raw_attribute", 29 | ]; 30 | 31 | module.exports = { 32 | EPUB_OUTPUT, 33 | JSX_OUTPUT, 34 | PDF_OUTPUT, 35 | ODT_OUTPUT, 36 | BOOK_DIRECTORY, 37 | OTHER_DIRECTORY, 38 | RESOURCES_DIRECTORY, 39 | MARKDOWN_EXTENSIONS, 40 | }; 41 | -------------------------------------------------------------------------------- /pandoc/development.js: -------------------------------------------------------------------------------- 1 | const chokidar = require("chokidar"); 2 | const path = require("path"); 3 | const R = require("ramda"); 4 | const { spawn } = require("child_process"); 5 | const { execMarkdownToHtml } = require("./build_html"); 6 | const { buildAllHtml } = require("./build_all_html"); 7 | const { buildOverviewPages } = require("./build_html_overview_pages"); 8 | const { BOOK_DIRECTORY, OTHER_DIRECTORY } = require("./constants"); 9 | 10 | // Build everything just once 11 | buildAllHtml(); 12 | 13 | const bookDirectory = path.resolve(__dirname, "../book"); 14 | 15 | const react_process = spawn( 16 | "npx", 17 | ["react-scripts", "--openssl-legacy-provider", "start"], 18 | { 19 | env: R.assoc("EXTEND_ESLINT", "true", process.env), 20 | } 21 | ); 22 | 23 | react_process.stdout.on("data", (s) => console.log(s.toString())); 24 | 25 | react_process.stderr.on("data", (s) => console.error(s.toString())); 26 | 27 | react_process.on("close", (s) => console.log(s.toString())); 28 | 29 | const watcher = chokidar.watch( 30 | [`${BOOK_DIRECTORY}/*.md`, `${OTHER_DIRECTORY}/*.md`], 31 | { 32 | persistent: true, 33 | } 34 | ); 35 | 36 | // react-scripts start 37 | 38 | watcher.on("change", (path) => { 39 | console.log(`${path} modified`); 40 | buildOverviewPages(); 41 | execMarkdownToHtml(path); 42 | }); 43 | -------------------------------------------------------------------------------- /pandoc/extract_csd_examples.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | const fg = require("fast-glob"); 4 | const { execSync } = require("child_process"); 5 | const { tmpdir } = require("os"); 6 | const R = require("ramda"); 7 | const { 8 | PDF_OUTPUT, 9 | BOOK_DIRECTORY, 10 | MARKDOWN_EXTENSIONS, 11 | RESOURCES_DIRECTORY, 12 | } = require("./constants"); 13 | 14 | const allChapters = R.reject( 15 | (md) => md.includes("00--aa-toc.md"), 16 | fg.sync([`${BOOK_DIRECTORY}/*.md`], { dot: false }) 17 | ).sort(); 18 | 19 | const tmpDest1 = path.join(tmpdir(), "__tmp_csound_floss.md"); 20 | const tmpDest2 = path.join(tmpdir(), "__tmp_csound_floss.pdf"); 21 | 22 | R.pipe( 23 | R.reduce((acc, chapterLocation) => { 24 | const chapter = fs.readFileSync(chapterLocation).toString(); 25 | return ( 26 | acc + 27 | "\n" + 28 | chapter.replace(/\.\.\/resources\//g, `${RESOURCES_DIRECTORY}/`) 29 | ); 30 | }, ""), 31 | // (x) => R.reduce((a, v) => a.replace(v, ""), x, deleteLinesHack), 32 | (singleMd) => fs.writeFileSync(tmpDest1, singleMd) 33 | )(allChapters); 34 | 35 | execSync( 36 | `pandoc ${tmpDest1} \ 37 | --filter=pandoc/filters/example_extractor.js \ 38 | --pdf-engine=xelatex \ 39 | -o ${tmpDest2}`, 40 | { encoding: "utf-8" } 41 | ); 42 | 43 | console.log(null); 44 | -------------------------------------------------------------------------------- /pandoc/filters/epub_images.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const fs = require("fs"); 4 | const path = require("path"); 5 | const { Str, stdio } = require("pandoc-filter"); 6 | const R = require("ramda"); 7 | 8 | const isAbsoluteUrl = url => /^https?:\/\//i.test(url); 9 | const isInternalUrl = url => /^\/(?!\/)/.test(url); 10 | 11 | function action({ t: type, c: value }, format, meta) { 12 | if (R.equals("Image", type)) { 13 | const imgPath = R.head(R.last(value)); 14 | if (!isAbsoluteUrl(imgPath)) { 15 | // console.error(path.resolve(__dirname, "../" + imgPath)); 16 | value[R.dec(R.length(value))][0] = path.resolve( 17 | __dirname, 18 | "../" + imgPath 19 | ); 20 | } 21 | } 22 | } 23 | 24 | stdio(action); 25 | -------------------------------------------------------------------------------- /pandoc/filters/example_extractor.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const { Str, stdio } = require("pandoc-filter"); 4 | const R = require("ramda"); 5 | const { buildLink } = require("../utils"); 6 | const fs = require("fs"); 7 | 8 | let secondLastBlock; 9 | let lastBlock; 10 | let tmpFileNameName = "./__tmp_last_file_name.txt"; 11 | 12 | function action({ t: type, c: value }, format, meta) { 13 | if (type === "Str" && /\d\d[A-Z]\d\d.*\.csd$/g.test(value)) { 14 | fs.writeFileSync(tmpFileNameName, value); 15 | } 16 | if (type === "CodeBlock") { 17 | if (value[0][1].length === 0) { 18 | value[0][1] = ["default"]; 19 | } 20 | if (R.last(value).match(/\n\s*\n/g)) { 21 | value[R.dec(R.length(value))] = R.last(value).replace(/\n\s*\n/g, "\n\n"); 22 | } 23 | const nextFileName = fs.readFileSync(tmpFileNameName).toString(); 24 | const nextFileLocation = "examples/" + nextFileName; 25 | fs.writeFileSync(nextFileLocation, value[R.dec(R.length(value))]); 26 | } 27 | } 28 | 29 | stdio(action); 30 | -------------------------------------------------------------------------------- /pandoc/filters/pdf_codeblocks.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const { Str, stdio } = require("pandoc-filter"); 4 | const R = require("ramda"); 5 | const { buildLink } = require("../utils"); 6 | 7 | const isAbsoluteUrl = url => /^https?:\/\//i.test(url); 8 | 9 | function action({ t: type, c: value }, format, meta) { 10 | if (type === "CodeBlock") { 11 | if (value[0][1].length === 0) { 12 | value[0][1] = ["default"]; 13 | } 14 | if (R.last(value).match(/\n\s*\n/g)) { 15 | value[R.dec(R.length(value))] = R.last(value).replace(/\n\s*\n/g, "\n\n"); 16 | } 17 | } 18 | } 19 | 20 | stdio(action); 21 | -------------------------------------------------------------------------------- /pandoc/filters/pdf_interlinks.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const { Str, stdio } = require("pandoc-filter"); 4 | const R = require("ramda"); 5 | 6 | const isAbsoluteUrl = url => /^https?:\/\//i.test(url); 7 | 8 | function action({ t: type, c: value }, format, meta) { 9 | if ( 10 | type === "Link" && 11 | R.is(Array, value) && 12 | !isAbsoluteUrl(R.head(R.last(value))) 13 | ) { 14 | const p = [R.dec(R.length(value)), 0]; 15 | // console.error(p); 16 | const relUrl = R.path(p, value); // R.head(R.last(value)); 17 | // console.error(value); 18 | value[p[0]][p[1]] = 19 | "#" + 20 | R.toLower(relUrl) 21 | .replace(".md", "") 22 | .replace(/^[0-9]+\-/i, "") 23 | .replace("-", ".-"); 24 | } 25 | } 26 | 27 | stdio(action); 28 | -------------------------------------------------------------------------------- /pandoc/latex/chapter_break.tex: -------------------------------------------------------------------------------- 1 | %% Adds pagebreak between chapters 2 | % from comments of accepted answer 3 | % https://superuser.com/questions/601469/getting-chapters-to-start-on-a-new-page-in-a-pandoc-generated-pdf 4 | \usepackage{sectsty} 5 | \sectionfont{\clearpage} 6 | 7 | % accepted answer gave error 8 | %\usepackage{titlesec} 9 | %\newcommand{\sectionbreak}{\clearpage} 10 | -------------------------------------------------------------------------------- /pandoc/latex/codesize.tex: -------------------------------------------------------------------------------- 1 | \renewenvironment{Shaded} {\begin{snugshade}\small \setstretch{1.0}}{\end{snugshade}} 2 | -------------------------------------------------------------------------------- /pandoc/latex/disable_float.tex: -------------------------------------------------------------------------------- 1 | \usepackage{float} 2 | \let\origfigure\figure 3 | \let\endorigfigure\endfigure 4 | \renewenvironment{figure}[1][2] { 5 | \expandafter\origfigure\expandafter[H] 6 | } { 7 | \endorigfigure 8 | } 9 | -------------------------------------------------------------------------------- /pandoc/templates/append.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | )}; 4 | 5 | export default Chapter; 6 | -------------------------------------------------------------------------------- /pandoc/templates/prepend.txt: -------------------------------------------------------------------------------- 1 | import React, { useEffect } from "react"; 2 | import { Link } from "react-router-dom"; 3 | import CodeElement from "../components/Editor"; 4 | import MathJax from "react-mathjax"; 5 | import { useTitle } from "../use-title"; 6 | import ChapterHOC from "../ChapterHOC"; 7 | 8 | const Chapter = () => { 9 | useTitle("CHANGEME"); 10 | return ( 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | The Csound FLOSS Manual 13 | 18 | 22 | 26 | 30 | 35 | 40 | 44 | 45 | 46 | 47 | 48 |
49 | 50 | 51 | -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/public/logo192.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Csound FLOSS Manual", 3 | "name": "Create FLOSS Manual", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | } 15 | ], 16 | "start_url": ".", 17 | "display": "standalone", 18 | "theme_color": "#000000", 19 | "background_color": "#ffffff" 20 | } 21 | -------------------------------------------------------------------------------- /public/resources: -------------------------------------------------------------------------------- 1 | ../resources -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /resources/SourceMaterials/BratscheMono.het: -------------------------------------------------------------------------------- 1 | HETRO 10 2 | -1,0,0,815,3409,1631,11614,2447,12857,3263,13438,4079,13701,4895,13202,5711,10934,6527,5341,7343,0,32767 3 | -2,0,220,815,217,1631,218,2447,219,3263,218,4079,219,4895,218,5711,218,6527,217,7343,217,32767 4 | 5 | -1,0,0,815,951,1631,4730,2447,4232,3263,4677,4079,4350,4895,4445,5711,3078,6527,808,7343,0,32767 6 | -2,0,440,815,440,1631,436,2447,437,3263,437,4079,438,4895,437,5711,438,6527,436,7343,436,32767 7 | 8 | -1,0,0,815,2077,1631,3797,2447,2893,3263,2357,4079,4348,4895,3638,5711,2203,6527,1265,7343,0,32767 9 | -2,0,660,815,657,1631,656,2447,654,3263,655,4079,656,4895,655,5711,656,6527,657,7343,657,32767 10 | 11 | -1,0,0,815,1771,1631,2729,2447,2730,3263,3198,4079,2881,4895,3344,5711,2154,6527,555,7343,0,32767 12 | -2,0,880,815,872,1631,876,2447,875,3263,874,4079,873,4895,875,5711,874,6527,875,7343,875,32767 13 | 14 | -1,0,0,815,233,1631,1845,2447,2048,3263,2166,4079,2488,4895,2331,5711,1730,6527,0,32767 15 | -2,0,1100,815,1086,1631,1093,2447,1091,3263,1092,4079,1094,4895,1093,5711,1092,6527,1092,32767 16 | 17 | -1,0,0,815,393,1631,674,2447,149,3263,289,4079,453,4895,447,5711,418,6527,82,7343,0,32767 18 | -2,0,1320,815,1308,1631,1311,2447,1314,3263,1303,4079,1313,4895,1306,5711,1310,6527,1304,7343,1304,32767 19 | 20 | -1,0,0,815,391,1631,249,2447,514,3263,693,4079,561,4895,280,5711,389,6527,0,32767 21 | -2,0,1540,815,1536,1631,1539,2447,1534,3263,1527,4079,1531,4895,1530,5711,1528,6527,1528,32767 22 | 23 | -1,0,0,815,655,1631,1760,2447,1891,3263,1974,4079,1762,4895,1515,5711,1537,6527,72,7343,0,32767 24 | -2,0,1760,815,1750,1631,1749,2447,1748,3263,1747,4079,1747,4895,1748,5711,1750,6527,1742,7343,1742,32767 25 | 26 | -1,0,0,815,456,1631,1227,2447,2146,3263,2063,4079,1334,4895,1401,5711,1350,6527,0,32767 27 | -2,0,1980,815,1969,1631,1969,2447,1965,3263,1966,4079,1966,4895,1968,5711,1967,6527,1967,32767 28 | 29 | -1,0,0,815,242,1631,948,2447,357,3263,813,4079,890,4895,849,5711,333,6527,0,32767 30 | -2,0,2200,815,2191,1631,2190,2447,2171,3263,2185,4079,2186,4895,2181,5711,2187,6527,2187,32767 31 | 32 | -------------------------------------------------------------------------------- /resources/SourceMaterials/BratscheMono.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/BratscheMono.wav -------------------------------------------------------------------------------- /resources/SourceMaterials/ClassGuit.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/ClassGuit.wav -------------------------------------------------------------------------------- /resources/SourceMaterials/Stairwell.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/Stairwell.wav -------------------------------------------------------------------------------- /resources/SourceMaterials/basoon-C4.ats: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/basoon-C4.ats -------------------------------------------------------------------------------- /resources/SourceMaterials/beats.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/beats.wav -------------------------------------------------------------------------------- /resources/SourceMaterials/cs_sco_rand.pl: -------------------------------------------------------------------------------- 1 | my ($in, $out) = @ARGV; 2 | open(EXT, "<", $in); 3 | open(SCO, ">", $out); 4 | 5 | while () { 6 | s/SEED\s+(\d+)/srand($1);$&/e; 7 | s/rand\(\d*\)/eval $&/ge; 8 | print SCO; 9 | } 10 | -------------------------------------------------------------------------------- /resources/SourceMaterials/dish.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/dish.wav -------------------------------------------------------------------------------- /resources/SourceMaterials/drawing_data.txt: -------------------------------------------------------------------------------- 1 | 9.67289 2 | 9.34579 3 | 9.25233 4 | 8.50468 5 | 7.85049 6 | 7.52339 7 | 7.33648 8 | 7.24302 9 | 7.24302 10 | 7.24302 11 | 7.24302 12 | 7.24302 13 | 7.28975 14 | 7.47666 15 | 7.61685 16 | 7.61685 17 | 7.38321 18 | 7.10284 19 | 6.82247 20 | 6.35519 21 | 5.98136 22 | 5.42063 23 | 4.95335 24 | 4.81316 25 | 4.62625 26 | 4.43934 27 | 4.29915 28 | 4.01878 29 | 3.78514 30 | 3.36459 31 | 3.2244 32 | 2.85054 33 | 2.80382 34 | 2.80382 35 | 2.80382 36 | 2.85054 37 | 3.03746 38 | 3.22437 39 | 3.5982 40 | 3.83184 41 | 4.06548 42 | 4.20566 43 | 4.57949 44 | 4.7664 45 | 5.14022 46 | 5.51405 47 | 5.88787 48 | 6.30843 49 | 6.72898 50 | 6.96262 51 | 7.10281 52 | 7.38317 53 | 7.57009 54 | 7.66354 55 | 7.85046 56 | 8.17755 57 | 8.41119 58 | 8.27101 59 | 7.57009 60 | 6.21497 61 | 5.70096 62 | 5.46732 63 | 5.42059 64 | 5.46732 65 | 3.13091 66 | 2.96737 67 | 2.80382 68 | 2.71036 69 | 2.6169 70 | 2.52345 71 | 2.38326 72 | 1.82253 73 | 1.49543 74 | 1.26179 75 | 0.560866 76 | 0.841235 77 | 1.07488 78 | 1.30852 79 | 1.54216 80 | 1.61225 81 | 1.68234 82 | 1.72907 83 | 1.72907 84 | 1.72907 85 | 1.72907 86 | 1.7758 87 | 1.7758 88 | 1.54216 89 | 1.07488 90 | 0.841235 91 | 0.701051 92 | 0.701051 93 | 0.747779 94 | 0.934691 95 | 1.21506 96 | 0.887963 97 | 0.887963 98 | 0.887963 99 | 0.373954 100 | 0.280498 101 | -------------------------------------------------------------------------------- /resources/SourceMaterials/female-speech.ats: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/female-speech.ats -------------------------------------------------------------------------------- /resources/SourceMaterials/flute-A5.ats: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/flute-A5.ats -------------------------------------------------------------------------------- /resources/SourceMaterials/fox.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/fox.wav -------------------------------------------------------------------------------- /resources/SourceMaterials/gbuzz3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/gbuzz3.wav -------------------------------------------------------------------------------- /resources/SourceMaterials/hrtf-44100-left.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/hrtf-44100-left.dat -------------------------------------------------------------------------------- /resources/SourceMaterials/hrtf-44100-right.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/hrtf-44100-right.dat -------------------------------------------------------------------------------- /resources/SourceMaterials/loop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/loop.wav -------------------------------------------------------------------------------- /resources/SourceMaterials/oboe-A5.ats: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/oboe-A5.ats -------------------------------------------------------------------------------- /resources/SourceMaterials/print.py: -------------------------------------------------------------------------------- 1 | from sys import argv 2 | print "Script = '%s'" % argv[0] 3 | print "File to read = '%s'" % argv[1] 4 | print "File to write = '%s'" % argv[2] 5 | -------------------------------------------------------------------------------- /resources/SourceMaterials/spiral-8,16,128,2,1over2: -------------------------------------------------------------------------------- 1 | 123 17 71 97 4 110 48 30 123 10 79 89 12 117 40 47 114 10 86 80 13 116 33 55 106 11 94 64 21 116 25 63 97 12 102 56 30 115 18 78 89 12 109 49 46 107 18 86 81 21 108 41 54 106 19 94 73 29 108 33 62 98 19 93 65 37 107 26 70 90 20 101 57 46 107 26 78 81 28 101 49 54 99 27 86 73 29 100 42 62 90 27 85 65 37 100 34 62 90 28 93 57 45 99 34 70 82 28 93 50 53 99 35 77 74 36 92 50 53 91 35 85 66 37 92 42 61 82 35 -------------------------------------------------------------------------------- /resources/SourceMaterials/test.ats: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/test.ats -------------------------------------------------------------------------------- /resources/SourceMaterials/wave.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/SourceMaterials/wave.wav -------------------------------------------------------------------------------- /resources/epub-metadata.xml: -------------------------------------------------------------------------------- 1 | Copyright © ${copyright_year} ${copyright_owner} 2 | ${language} 3 | ${publisher} 4 | ${genre} 5 | ${identifier} 6 | -------------------------------------------------------------------------------- /resources/epub-metadata.yml: -------------------------------------------------------------------------------- 1 | title: 2 | - type: main 3 | text: Csound Floss Manual 4 | css: 5 | resources/styles/common.css 6 | -------------------------------------------------------------------------------- /resources/image_src/00A/00-a-Preface.tex: -------------------------------------------------------------------------------- 1 | \documentclass{standalone} 2 | \usepackage{tikz} 3 | \usetikzlibrary{positioning} 4 | 5 | \tikzset{ 6 | sinesym/.pic = { 7 | \draw [domain=0:2, samples=200] plot (\x, {sin(180*\x)/3});}} 8 | \tikzset{ 9 | osc/.pic = { 10 | \coordinate (-inleft) at (-0.8,0) ; 11 | \coordinate (-inright) at (0.8,0) ; 12 | \coordinate (-out) at (0,-1.5) ; 13 | \coordinate (-center) at (0,-0.7) ; 14 | \coordinate (-right) at (1.3,-.7) ; 15 | \coordinate (-left) at (-1.3,-.7) ; 16 | \draw (-1.5,0) -- (1.5,0) arc (0:-180:1.5) --cycle; 17 | \pic [scale=1/3] at (-.35,-.7) {sinesym}; 18 | } 19 | } 20 | 21 | 22 | \begin{document} \sffamily 23 | \begin{tikzpicture}[node distance=1, line width=1pt, align=center] 24 | 25 | % NODES 26 | \pic (car) {osc}; 27 | \node (camp) [above=of car-inleft, node font=\small] {Amplitude\\0.2}; 28 | \node (cfreq) [above=of car-inright, node font=\small] {Frequency\\400 Hz}; 29 | \node (out) [rectangle, scale=1.5, draw=black, below=of car-out] {Out}; 30 | 31 | %CONNECTIONS 32 | \draw (camp) -- (car-inleft); 33 | \draw (cfreq) -- (car-inright); 34 | \draw (car-out) -- (out); 35 | 36 | \end{tikzpicture} 37 | \end{document} -------------------------------------------------------------------------------- /resources/image_src/03A/03-a-k-rate-env.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "%matplotlib qt5\n", 10 | "from matplotlib import pyplot as plt" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 43, 16 | "metadata": {}, 17 | "outputs": [ 18 | { 19 | "data": { 20 | "text/plain": [ 21 | "[]" 22 | ] 23 | }, 24 | "execution_count": 43, 25 | "metadata": {}, 26 | "output_type": "execute_result" 27 | } 28 | ], 29 | "source": [ 30 | "fig,ax = plt.subplots(figsize=(10,5))\n", 31 | "x = [x for x in range(5*32)]\n", 32 | "y_vals = [0,1/4,1/2,3/4,1]\n", 33 | "y = [[x]*32 for x in y_vals]\n", 34 | "y = [y for x in y for y in x]\n", 35 | "ax.set_xticks([0,32,44,64,88,96,128,132])\n", 36 | "ax.set_xticklabels(['0\\n0.000','32','\\n0.001','64','\\n0.002','96','\\n0.003','132'])\n", 37 | "ax.set_xlabel('samples\\nseconds',x=.97,labelpad=-22)\n", 38 | "ax.set_xlim(0,148)\n", 39 | "ax.plot(x,y,c='k')" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 7, 45 | "metadata": {}, 46 | "outputs": [], 47 | "source": [ 48 | "32" 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": null, 54 | "metadata": {}, 55 | "outputs": [], 56 | "source": [] 57 | } 58 | ], 59 | "metadata": { 60 | "kernelspec": { 61 | "display_name": "Python 3", 62 | "language": "python", 63 | "name": "python3" 64 | }, 65 | "language_info": { 66 | "codemirror_mode": { 67 | "name": "ipython", 68 | "version": 3 69 | }, 70 | "file_extension": ".py", 71 | "mimetype": "text/x-python", 72 | "name": "python", 73 | "nbconvert_exporter": "python", 74 | "pygments_lexer": "ipython3", 75 | "version": "3.7.3" 76 | } 77 | }, 78 | "nbformat": 4, 79 | "nbformat_minor": 2 80 | } 81 | -------------------------------------------------------------------------------- /resources/image_src/03A/03-a-ksmps-1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/image_src/03A/03-a-ksmps-1.wav -------------------------------------------------------------------------------- /resources/image_src/03A/03-a-ksmps-2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/image_src/03A/03-a-ksmps-2.wav -------------------------------------------------------------------------------- /resources/image_src/03A/03-a-ksmps-3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/image_src/03A/03-a-ksmps-3.wav -------------------------------------------------------------------------------- /resources/image_src/03A/03-a-ksmps-4.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/image_src/03A/03-a-ksmps-4.wav -------------------------------------------------------------------------------- /resources/image_src/04C/04-c-am.tex: -------------------------------------------------------------------------------- 1 | \documentclass{standalone} 2 | \usepackage{tikz} 3 | \usetikzlibrary{positioning} 4 | 5 | \tikzset{ 6 | sinesym/.pic = { 7 | \draw [domain=0:2, samples=200] plot (\x, {sin(180*\x)/3});}} 8 | \tikzset{ 9 | osc/.pic = { 10 | \coordinate (-inleft) at (-0.8,0) ; 11 | \coordinate (-inright) at (0.8,0) ; 12 | \coordinate (-out) at (0,-1.5) ; 13 | \coordinate (-center) at (0,-0.7) ; 14 | \coordinate (-right) at (1.3,-.7) ; 15 | \coordinate (-left) at (-1.3,-.7) ; 16 | \draw (-1.5,0) -- (1.5,0) arc (0:-180:1.5) --cycle; 17 | \pic [scale=1/3] at (-.35,-.7) {sinesym}; 18 | } 19 | } 20 | 21 | 22 | \begin{document} \sffamily 23 | \begin{tikzpicture}[node distance=1, line width=1pt] 24 | 25 | % NODES 26 | % modulator 27 | \pic (mod) {osc}; 28 | \node (modlabel) [right=of mod-right] {Modulator}; 29 | \node (mamp) [above=of mod-inleft] {Amp}; 30 | \node (mfreq) [above=of mod-inright] {Freq}; 31 | % addition, carrier, output 32 | \node (plus) [circle, draw=black, below=of mod-out, font=\bfseries] {+}; 33 | \pic (car) [below right=of plus, xshift=1cm, yshift=-.5cm] {osc}; 34 | \node (cfreq) [above=of car-inright] {Freq}; 35 | \node (carlabel) [right=of car-right] {Carrier}; 36 | \node (camp) [right=of plus, xshift=-.5cm] {Amp}; 37 | \node (out) [below=of car-out] {AM Signal}; 38 | 39 | %CONNECTIONS 40 | \draw (mamp) -- (mod-inleft); 41 | \draw (mfreq) -- (mod-inright); 42 | \draw (mod-out) -- (plus); 43 | \draw (camp) -- (plus); 44 | \draw (plus) -- ++(0,-1) -| (car-inleft); 45 | \draw (cfreq) -- (car-inright); 46 | \draw (car-out) -- (out); 47 | 48 | \end{tikzpicture} 49 | \end{document} -------------------------------------------------------------------------------- /resources/image_src/04C/04-c-am2.tex: -------------------------------------------------------------------------------- 1 | \documentclass{standalone} 2 | \usepackage{tikz} 3 | \usetikzlibrary{positioning} 4 | 5 | \tikzset{ 6 | sinesym/.pic = { 7 | \draw [domain=0:2, samples=200] plot (\x, {sin(180*\x)/3});}} 8 | \tikzset{ 9 | osc/.pic = { 10 | \coordinate (-inleft) at (-0.8,0) ; 11 | \coordinate (-inright) at (0.8,0) ; 12 | \coordinate (-out) at (0,-1.5) ; 13 | \coordinate (-center) at (0,-0.7) ; 14 | \coordinate (-right) at (1.3,-.7) ; 15 | \coordinate (-left) at (-1.3,-.7) ; 16 | \draw (-1.5,0) -- (1.5,0) arc (0:-180:1.5) --cycle; 17 | \pic [scale=1/3] at (-.35,-.7) {sinesym}; 18 | } 19 | } 20 | 21 | 22 | \begin{document} \sffamily 23 | \begin{tikzpicture}[node distance=1, line width=1pt] 24 | 25 | % NODES 26 | % modulator 27 | \pic (mod) {osc}; 28 | \node (modlabel) [left=of mod-left, xshift=0.5cm] {Modulator}; 29 | \node (mamp) [above=of mod-inleft] {Amp}; 30 | \node (mfreq) [above=of mod-inright] {Freq}; 31 | % carrier 32 | \pic (car) [right=of mod-inright, xshift=3cm] {osc}; 33 | \node (camp) [above=of car-inleft] {Amp=1}; 34 | \node (cfreq) [above=of car-inright] {Freq}; 35 | \node (carlabel) [right=of car-right, xshift=-0.5cm] {Carrier}; 36 | % plus, mult, out 37 | \node (plus) [circle, draw=black, below=of mod-out, font=\bfseries] {+}; 38 | \node (dc) [right=of plus] {DC Offset}; 39 | \path (car-out) -- (mod-out) node (middle) [midway]{}; 40 | \node (mult) [circle, draw=black, below=of middle, yshift=-1.5cm, font=\bfseries] {*}; 41 | \node (out) [below=of mult] {AM Signal}; 42 | 43 | 44 | %CONNECTIONS 45 | \draw (mamp) -- (mod-inleft); 46 | \draw (mfreq) -- (mod-inright); 47 | \draw (mod-out) -- (plus); 48 | \draw (camp) -- (car-inleft); 49 | \draw (cfreq) -- (car-inright); 50 | \draw (dc) -- (plus); 51 | \draw (car-out) |- (mult); 52 | \draw (plus) |- (mult); 53 | \draw (mult) -- (out); 54 | 55 | \end{tikzpicture} 56 | \end{document} -------------------------------------------------------------------------------- /resources/image_src/04C/04-c-rm-spectra.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "%matplotlib qt5\n", 10 | "from matplotlib import pyplot as plt" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 28, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "fig,ax = plt.subplots(nrows=3, figsize=(10,10))\n", 20 | "carfreqs = [400,800,1200]\n", 21 | "modfreqs = [0, 100, 50]\n", 22 | "xlim = (250,1350)\n", 23 | "titles = ['Sound with three Harmonics','Each Harmonic ±100 Hz', 'Each harmonic ±50 Hz']\n", 24 | "\n", 25 | "for i in range(3):\n", 26 | " freqs = [x+modfreqs[i] for x in carfreqs] + [x-modfreqs[i] for x in carfreqs if i>0]\n", 27 | " #ax[i].bar(freqs,1,color='k',width=1,linewidth=1)\n", 28 | " #ax[i].stem(freqs,[1]*len(freqs))\n", 29 | " for f,bla in enumerate(freqs):\n", 30 | " ax[i].axvline(freqs[f],ymax=.8,color='k')\n", 31 | " ax[i].set_xlim(xlim)\n", 32 | " ax[i].text(120,-0.08,'Frequency (Hz)')\n", 33 | " ax[i].set_ylim(0,1.1)\n", 34 | " ax[i].set_yticks([])\n", 35 | " ax[i].set_xticks(freqs)\n", 36 | " ax[i].set_title(titles[i], bbox=dict(boxstyle='square',fill=None,linewidth=.5), y=.9)\n", 37 | " ax[i].spines['top'].set_visible(False)\n", 38 | " ax[i].spines['left'].set_visible(False)\n", 39 | " ax[i].spines['right'].set_visible(False)\n", 40 | " \n", 41 | "fig.tight_layout()\n", 42 | "fig.show()" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": null, 48 | "metadata": {}, 49 | "outputs": [], 50 | "source": [ 51 | "help(plt.)" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": null, 57 | "metadata": {}, 58 | "outputs": [], 59 | "source": [] 60 | } 61 | ], 62 | "metadata": { 63 | "kernelspec": { 64 | "display_name": "Python 3", 65 | "language": "python", 66 | "name": "python3" 67 | }, 68 | "language_info": { 69 | "codemirror_mode": { 70 | "name": "ipython", 71 | "version": 3 72 | }, 73 | "file_extension": ".py", 74 | "mimetype": "text/x-python", 75 | "name": "python", 76 | "nbconvert_exporter": "python", 77 | "pygments_lexer": "ipython3", 78 | "version": "3.7.3" 79 | } 80 | }, 81 | "nbformat": 4, 82 | "nbformat_minor": 2 83 | } 84 | -------------------------------------------------------------------------------- /resources/image_src/04C/04-c-rm.tex: -------------------------------------------------------------------------------- 1 | \documentclass{standalone} 2 | \usepackage{tikz} 3 | \usetikzlibrary{positioning} 4 | 5 | \tikzset{ 6 | sinesym/.pic = { 7 | \draw [domain=0:2, samples=200] plot (\x, {sin(180*\x)/3});}} 8 | \tikzset{ 9 | osc/.pic = { 10 | \coordinate (-inleft) at (-0.8,0) ; 11 | \coordinate (-inright) at (0.8,0) ; 12 | \coordinate (-out) at (0,-1.5) ; 13 | \coordinate (-center) at (0,-0.7) ; 14 | \coordinate (-right) at (1.3,-.7) ; 15 | \coordinate (-left) at (-1.3,-.7) ; 16 | \draw (-1.5,0) -- (1.5,0) arc (0:-180:1.5) --cycle; 17 | \pic [scale=1/3] at (-.35,-.7) {sinesym}; 18 | } 19 | } 20 | 21 | 22 | \begin{document} \sffamily 23 | \begin{tikzpicture}[node distance=1, line width=1pt] 24 | 25 | % NODES 26 | % carrier 27 | \pic (car) {osc}; 28 | \node (camp) [above=of car-inleft] {Amp}; 29 | \node (cfreq) [above=of car-inright] {Freq}; 30 | \node (carlabel) [right=of car-right, xshift=-.5cm] {Carrier}; 31 | % modulator 32 | \pic (mod) [left=of car-inleft, xshift=-2cm] {osc}; 33 | \node (modlabel) [left=of mod-left, xshift=.5cm] {Modulator}; 34 | \node (mamp) [above=of mod-inleft] {Amp}; 35 | \node (mfreq) [above=of mod-inright] {Freq}; 36 | % mult, output 37 | \path (car-right) -- (mod-left) node (middle) [midway]{}; 38 | \node (times) [circle, draw=black, below=of middle, yshift=-.5cm, font=\bfseries] {*}; 39 | \node (out) [below=of times] {RM Signal}; 40 | 41 | %CONNECTIONS 42 | \draw (mamp) -- (mod-inleft); 43 | \draw (mfreq) -- (mod-inright); 44 | \draw (camp) -- (car-inleft); 45 | \draw (cfreq) -- (car-inright); 46 | \draw (car-out) |- (times); 47 | \draw (mod-out) |- (times); 48 | \draw (times) -- (out); 49 | 50 | \end{tikzpicture} 51 | \end{document} -------------------------------------------------------------------------------- /resources/image_src/04D/04-d-fm.tex: -------------------------------------------------------------------------------- 1 | % ja! 2 | 3 | \documentclass{standalone} 4 | \usepackage{tikz} 5 | \usetikzlibrary{positioning} 6 | 7 | \tikzset{ 8 | sinesym/.pic = { 9 | \draw [domain=0:2, samples=200] plot (\x, {sin(180*\x)/3});}} 10 | \tikzset{ 11 | osc/.pic = { 12 | \coordinate (-inleft) at (-0.8,0) ; 13 | \coordinate (-inright) at (0.8,0) ; 14 | \coordinate (-out) at (0,-1.5) ; 15 | \coordinate (-center) at (0,-0.7) ; 16 | \coordinate (-right) at (1.3,-.7) ; 17 | \coordinate (-left) at (-1.3,-.7) ; 18 | \draw (-1.5,0) -- (1.5,0) arc (0:-180:1.5) --cycle; 19 | \pic [scale=1/3] at (-.35,-.7) {sinesym}; 20 | } 21 | } 22 | 23 | 24 | \begin{document} \sffamily 25 | \begin{tikzpicture}[node distance=1, line width=1pt] 26 | 27 | % NODES 28 | % modulator 29 | \pic (mod) {osc}; 30 | \node (modlabel) [right=of mod-right] {Modulator}; 31 | \node (mamp) [above=of mod-inleft] {Amp}; 32 | \node (mfreq) [above=of mod-inright] {Freq}; 33 | % addition, carrier, output 34 | \node (plus) [circle, draw=black, below=of mod-out, font=\bfseries] {+}; 35 | \node (cfreq) [left=of plus, xshift=.5cm] {Freq}; 36 | \pic (car) [below left=of plus, xshift=-1cm, yshift=-.5cm] {osc}; 37 | \node (carlabel) [right=of car-right] {Carrier}; 38 | \node (camp) [above=of car-inleft] {Amp}; 39 | \node (out) [below=of car-out] {FM Signal}; 40 | 41 | %CONNECTIONS 42 | \draw (mamp) -- (mod-inleft); 43 | \draw (mfreq) -- (mod-inright); 44 | \draw (mod-out) -- (plus); 45 | \draw (cfreq) -- (plus); 46 | \draw (plus) -- ++(0,-1) -| (car-inright); 47 | \draw (camp) -- (car-inleft); 48 | \draw (car-out) -- (out); 49 | 50 | \end{tikzpicture} 51 | \end{document} -------------------------------------------------------------------------------- /resources/image_src/04D/04-d-fm2.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "%matplotlib qt5\n", 10 | "from matplotlib import pyplot as plt" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 14, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "fig,ax = plt.subplots(figsize=(10,5))\n", 20 | "ax.spines['top'].set_visible(False)\n", 21 | "ax.spines['right'].set_visible(False)\n", 22 | "ax.spines['left'].set_visible(False)\n", 23 | "ax.spines['bottom'].set_visible(False)\n", 24 | "ax.bar([2,3,4,5,6,7,8],[.1,.2,.4,.8,.4,.2,.1],width=.04,color='k')\n", 25 | "ax.set_xlim(-0.5,10.1)\n", 26 | "ax.set_yticks([])\n", 27 | "ax.text(-.3,.7,'Amplitude',rotation='90')\n", 28 | "ax.set_ylim(-.02,1)\n", 29 | "ax.text(9.3,-0.1,'Frequency')\n", 30 | "ax.arrow(0, 0, 0, .9, head_width=.1, head_length=0.02, fc='k', ec='k')\n", 31 | "ax.arrow(0, 0, 10, 0, head_width=.02, head_length=0.1, fc='k', ec='k')\n", 32 | "ax.set_xticks((2,3,4,5,6,7,8))\n", 33 | "ax.xaxis.set_ticks_position('none') \n", 34 | "ax.set_xticklabels(('$F_C-3F_M$','$F_C-2F_M$','$F_C-F_M$','$F_C$','$F_C+F_M$','$F_C+2F_M$','$F_C+3F_M$'),rotation='45',fontsize='large')\n", 35 | "fig.tight_layout()\n", 36 | "plt.show()" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": null, 42 | "metadata": {}, 43 | "outputs": [], 44 | "source": [] 45 | } 46 | ], 47 | "metadata": { 48 | "kernelspec": { 49 | "display_name": "Python 3", 50 | "language": "python", 51 | "name": "python3" 52 | }, 53 | "language_info": { 54 | "codemirror_mode": { 55 | "name": "ipython", 56 | "version": 3 57 | }, 58 | "file_extension": ".py", 59 | "mimetype": "text/x-python", 60 | "name": "python", 61 | "nbconvert_exporter": "python", 62 | "pygments_lexer": "ipython3", 63 | "version": "3.7.3" 64 | } 65 | }, 66 | "nbformat": 4, 67 | "nbformat_minor": 2 68 | } 69 | -------------------------------------------------------------------------------- /resources/image_src/04E/04-e-gen7table.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "Csound engine started at slot#: 1.\n" 13 | ] 14 | } 15 | ], 16 | "source": [ 17 | "%matplotlib qt5\n", 18 | "import matplotlib.pyplot as plt\n", 19 | "import numpy as np\n", 20 | "%load_ext csoundmagics\n", 21 | "cs = ICsound()" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 2, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "%%csound\n", 31 | "giTrnsFnc ftgen 1, 0, 4096, -7, -0.5, 1024, -0.5, 2048, 0.5, 1024, 0.5" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 15, 37 | "metadata": {}, 38 | "outputs": [], 39 | "source": [ 40 | "fig, ax = plt.subplots(figsize=(10,5))\n", 41 | "xmax = cs.tableLength(1)\n", 42 | "x = range(xmax)\n", 43 | "ax.set_xlim(0,xmax)\n", 44 | "ax.set_yticks([-0.5,0,0.5])\n", 45 | "ax.set_xticks([0,xmax/4,xmax/2,xmax*3/4,xmax])\n", 46 | "ax.axhline(c='k',lw=0.5)\n", 47 | "ax.spines['top'].set_visible(False)\n", 48 | "ax.spines['right'].set_visible(False)\n", 49 | "ax.spines['bottom'].set_visible(False)\n", 50 | "ax.set_xlabel('table index')\n", 51 | "ax.plot(x,cs.table(1),c='k')\n", 52 | "fig.tight_layout()\n", 53 | "plt.show()" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": null, 59 | "metadata": {}, 60 | "outputs": [], 61 | "source": [ 62 | "cs.printLog()" 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": null, 68 | "metadata": {}, 69 | "outputs": [], 70 | "source": [] 71 | } 72 | ], 73 | "metadata": { 74 | "kernelspec": { 75 | "display_name": "Python 3", 76 | "language": "python", 77 | "name": "python3" 78 | }, 79 | "language_info": { 80 | "codemirror_mode": { 81 | "name": "ipython", 82 | "version": 3 83 | }, 84 | "file_extension": ".py", 85 | "mimetype": "text/x-python", 86 | "name": "python", 87 | "nbconvert_exporter": "python", 88 | "pygments_lexer": "ipython3", 89 | "version": "3.7.3" 90 | } 91 | }, 92 | "nbformat": 4, 93 | "nbformat_minor": 2 94 | } 95 | -------------------------------------------------------------------------------- /resources/image_src/04F/04-f-roads.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/image_src/04F/04-f-roads.pdf -------------------------------------------------------------------------------- /resources/image_src/04F/04-f-roads.tex: -------------------------------------------------------------------------------- 1 | \documentclass{standalone} 2 | \usepackage{tikz} 3 | \usetikzlibrary{positioning} 4 | 5 | \tikzset{ 6 | grainenv/.pic = { 7 | \coordinate (-center) at (0,0) ; 8 | \coordinate (-right) at (3,.5) ; 9 | \coordinate (-left) at (0,.5) ; 10 | \draw [domain=0:3, samples=200] plot (\x, {sin(60*\x)}); 11 | \draw [thin] (0,0) rectangle (3,1); 12 | \node [anchor=center] at (1.5,1.2) {Grain envelope}; 13 | \node [anchor=center] at (-0.1,0) {\tiny 0}; 14 | \node [anchor=center] at (-0.1,1) {\tiny 1}; 15 | }} 16 | 17 | \tikzset{ 18 | grainwav/.pic = { 19 | \coordinate (-right) at (3,.5) ; 20 | \draw [domain=0:3, samples=200] plot (\x, {sin(120*\x)/2+1/2}); 21 | \draw [thin] (0,0) rectangle (3,1); 22 | \draw [thin] (0,.5) -- (3,.5); 23 | \node [anchor=center] at (1.5,1.2) {Grain waveform}; 24 | \node [anchor=center] at (-0.1,0) {\tiny -1}; 25 | \node [anchor=center] at (-.1,.5) {\tiny 0}; 26 | \node [anchor=center] at (-0.1,1) {\tiny 1}; 27 | }} 28 | 29 | \tikzset{ 30 | osc/.pic = { 31 | \coordinate (-inleft) at (-0.8,0) ; 32 | \coordinate (-inright) at (0.8,0) ; 33 | \coordinate (-out) at (0,-1.5) ; 34 | \coordinate (-center) at (0,-0.7) ; 35 | \coordinate (-right) at (1.3,-.7) ; 36 | \coordinate (-left) at (-1.3,-.7) ; 37 | \draw (-1.5,0) -- (1.5,0) arc (0:-180:1.5) --cycle; 38 | } 39 | } 40 | 41 | 42 | \begin{document} \sffamily 43 | \begin{tikzpicture}[node distance=1, line width=1pt] 44 | 45 | % NODES 46 | 47 | % env osc 48 | \pic (envosc) {osc}; 49 | \node (envosclabel) [above=of envosc-out,yshift=-.7cm,align=center] {\large ENV \\[.1cm] \large OSC}; 50 | \node (envoscamp) [above=of envosc-inleft,yshift=-.5cm] {Amp}; 51 | \node (envoscfreq) [above=of envosc-inright,yshift=-.5cm] {Freq}; 52 | \pic (grenv) [left=of envosc-left, xshift=-3cm, yshift=-.5cm] {grainenv}; 53 | 54 | % wave osc, out 55 | \pic (wavosc) [below=of envosc-out,xshift=.84cm] {osc}; 56 | \node (wavosclabel) [above=of wavosc-out,yshift=-.4cm,align=center] {\large OSC}; 57 | \node (wavoscfreq) [above=of wavosc-inright,yshift=-.5cm] {Freq}; 58 | \pic (grainwav) [left=of wavosc-left, xshift=-3.5cm,yshift=-.5cm] {grainwav}; 59 | \draw (0.2,-5.7) rectangle (1.5,-4.9); 60 | \node (out) [below=of wavosc-out] {OUT}; 61 | 62 | 63 | %CONNECTIONS 64 | \draw (envoscamp) -- (envosc-inleft); 65 | \draw (envoscfreq) -- (envosc-inright); 66 | \draw (envosc-out) -- (wavosc-inleft); 67 | \draw (wavoscfreq) -- (wavosc-inright); 68 | \draw (wavosc-out) -- (0.84,-4.9); 69 | \draw [dotted] (grenv-right) -- (envosc-left); 70 | \draw [dotted] (grainwav-right) -- (wavosc-left); 71 | 72 | \end{tikzpicture} 73 | \end{document} -------------------------------------------------------------------------------- /resources/image_src/04H/04-h-scantable-3.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "Csound engine started at slot#: 1.\n" 13 | ] 14 | } 15 | ], 16 | "source": [ 17 | "%matplotlib qt5\n", 18 | "import matplotlib.pyplot as plt\n", 19 | "import numpy as np\n", 20 | "%load_ext csoundmagics\n", 21 | "cs = ICsound()" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 7, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "%%csound\n", 31 | "gipos ftgen 1, 0, 1024, 10, 1, 1, 1, 1, 1, 1 ;Initial Position Shape: impulse-like;\n", 32 | "gimass ftgen 2, 0, 1024, -5, 0.0001, 1024, .01 ;Masses: exponential from 0.0001 to 0.01" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": 9, 38 | "metadata": {}, 39 | "outputs": [], 40 | "source": [ 41 | "fig, ax = plt.subplots(ncols=2,figsize=(15,5))\n", 42 | "xmax = cs.tableLength(1)\n", 43 | "x = range(xmax)\n", 44 | "titles = ['Position','Masses']\n", 45 | "yticks = [[-1,0,1],[0.0001,0.01],[0,100],[0,1],[0]]\n", 46 | "for i in range(2):\n", 47 | " ax[i].set_xlim(0,xmax)\n", 48 | " ax[i].set_xticks([])\n", 49 | " ax[i].set_yticks(yticks[i])\n", 50 | " ax[i].set_title(titles[i])\n", 51 | " ax[i].axhline(c='k',lw=0.5)\n", 52 | " ax[i].spines['top'].set_visible(False)\n", 53 | " ax[i].spines['right'].set_visible(False)\n", 54 | " ax[i].spines['bottom'].set_visible(False)\n", 55 | " ax[i].plot(x,cs.table(i+1),c='k')\n", 56 | "fig.tight_layout()\n", 57 | "plt.show()" 58 | ] 59 | }, 60 | { 61 | "cell_type": "code", 62 | "execution_count": null, 63 | "metadata": {}, 64 | "outputs": [], 65 | "source": [ 66 | "cs.printLog()" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": null, 72 | "metadata": {}, 73 | "outputs": [], 74 | "source": [] 75 | } 76 | ], 77 | "metadata": { 78 | "kernelspec": { 79 | "display_name": "Python 3", 80 | "language": "python", 81 | "name": "python3" 82 | }, 83 | "language_info": { 84 | "codemirror_mode": { 85 | "name": "ipython", 86 | "version": 3 87 | }, 88 | "file_extension": ".py", 89 | "mimetype": "text/x-python", 90 | "name": "python", 91 | "nbconvert_exporter": "python", 92 | "pygments_lexer": "ipython3", 93 | "version": "3.7.3" 94 | } 95 | }, 96 | "nbformat": 4, 97 | "nbformat_minor": 2 98 | } 99 | -------------------------------------------------------------------------------- /resources/image_src/05F/191128_RM.tex: -------------------------------------------------------------------------------- 1 | \documentclass{standalone} 2 | \usepackage{tikz} 3 | \usetikzlibrary{positioning} 4 | 5 | \tikzset{ 6 | sinesym/.pic = { 7 | \draw [domain=0:2, samples=200] plot (\x, {sin(180*\x)/3});}} 8 | \tikzset{ 9 | osc/.pic = { 10 | \coordinate (-inleft) at (-0.8,0) ; 11 | \coordinate (-inright) at (0.8,0) ; 12 | \coordinate (-out) at (0,-1.5) ; 13 | \coordinate (-center) at (0,-0.7) ; 14 | \coordinate (-right) at (1.3,-.7) ; 15 | \coordinate (-left) at (-1.3,-.7) ; 16 | \draw (-1.5,0) -- (1.5,0) arc (0:-180:1.5) --cycle; 17 | \pic [scale=1/3] at (-.35,-.7) {sinesym}; 18 | } 19 | } 20 | \tikzset{ 21 | play/.pic = { 22 | \coordinate (-in) at (0,0.5) ; 23 | \coordinate (-out) at (0,-0.5) ; 24 | \coordinate (-right) at (1.2,0) ; 25 | \coordinate (-left) at (-1.2,0) ; 26 | \draw (-1.2,-0.5) rectangle (1.2,0.5) ; 27 | \node at (0,0) {Playback} ; 28 | } 29 | } 30 | \tikzset{ 31 | mic/.pic = { 32 | \coordinate (-out) at (0,-0.45) ; 33 | \coordinate (-top) at (0,0.15) ; 34 | \coordinate (-right) at (0.5,0) ; 35 | \coordinate (-left) at (-0.5,0) ; 36 | \draw (-0.5,0.15) -- (0.5,0.15) ; 37 | \draw (0,-0.15) circle (0.3cm) ; 38 | } 39 | } 40 | 41 | 42 | \begin{document} \sffamily 43 | \begin{tikzpicture}[node distance=1, line width=1pt] 44 | 45 | % NODES 46 | % carrier 47 | \pic (play) {play}; 48 | \node (playin) [above=of play-in, yshift=-0.5cm] {File or Buffer}; 49 | \node (or) [right=of play-right, xshift=-0.8cm] {or}; 50 | \pic (mic) [right=of play-right, xshift=0.4cm] {mic}; 51 | \node [above=of mic-top, yshift=-0.9cm] {Mic}; 52 | % modulator 53 | \pic (mod) [scale=3/4, left=of play-in, xshift=-3cm] {osc}; 54 | \node (mamp) [above=of mod-inleft, yshift=-0.5cm] {Amp}; 55 | \node (mfreq) [above=of mod-inright, yshift=-0.5cm] {Freq}; 56 | % mult, output 57 | \path (play-out) -- (mod-out) node (middle) [midway]{}; 58 | \node (times) [circle, draw=black, below=of middle, yshift=-.5cm, font=\bfseries] {*}; 59 | 60 | % label 61 | \node (carlabel) [right=of mod-right, xshift=2cm, yshift=-1cm] {Carrier}; 62 | \node (modlabel) [left=of mod-left, xshift=1.8cm, yshift=-1cm] {Modulator}; 63 | \node (out) [below=of times] {RM Signal}; 64 | 65 | %CONNECTIONS 66 | \draw (mamp) -- (mod-inleft); 67 | \draw (mfreq) -- (mod-inright); 68 | \draw (playin) -- (play-in); 69 | \draw (play-out) |- (times); 70 | \draw [dashed] (mic-out) |- (times); 71 | \draw (mod-out) |- (times); 72 | \draw (times) -- (out); 73 | 74 | \end{tikzpicture} 75 | \end{document} -------------------------------------------------------------------------------- /resources/image_src/05I/05-i-trembling.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "Csound engine started at slot#: 1.\n" 13 | ] 14 | } 15 | ], 16 | "source": [ 17 | "%matplotlib qt5\n", 18 | "import matplotlib.pyplot as plt\n", 19 | "import numpy as np\n", 20 | "%load_ext csoundmagics\n", 21 | "cs = ICsound()" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 10, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "%%csound\n", 31 | "i0 ftgen 1, 0, 20*kr, 2, 0\n", 32 | "\n", 33 | "instr 1\n", 34 | "kndx = 0\n", 35 | "while kndx < ftlen(1) do\n", 36 | " ktmpnt = linseg:k(0,20,2.757) + randi:k(1/5,10)\n", 37 | " tablew ktmpnt, kndx, 1\n", 38 | " kndx += 1\n", 39 | "od\n", 40 | "turnoff\n", 41 | "endin\n", 42 | "schedule(1,0,1)" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": 12, 48 | "metadata": {}, 49 | "outputs": [], 50 | "source": [ 51 | "fig, ax = plt.subplots(figsize=(10,5))\n", 52 | "xmax = cs.tableLength(1)\n", 53 | "x = range(xmax)\n", 54 | "ax.set_xlim(0,xmax)\n", 55 | "#ax.set_yticks([-0.5,0,0.5])\n", 56 | "ax.set_xticks([0,xmax/4,xmax/2,xmax*3/4,xmax])\n", 57 | "ax.set_xticklabels([0,5,10,15,20])\n", 58 | "ax.spines['top'].set_visible(False)\n", 59 | "ax.spines['right'].set_visible(False)\n", 60 | "ax.set_xlabel('performance time (s)')\n", 61 | "ax.set_ylabel('read pointer (s)')\n", 62 | "ax.plot(x,cs.table(1),c='k')\n", 63 | "fig.tight_layout()\n", 64 | "plt.show()" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": null, 70 | "metadata": {}, 71 | "outputs": [], 72 | "source": [ 73 | "cs.printLog()" 74 | ] 75 | }, 76 | { 77 | "cell_type": "code", 78 | "execution_count": null, 79 | "metadata": {}, 80 | "outputs": [], 81 | "source": [] 82 | } 83 | ], 84 | "metadata": { 85 | "kernelspec": { 86 | "display_name": "Python 3", 87 | "language": "python", 88 | "name": "python3" 89 | }, 90 | "language_info": { 91 | "codemirror_mode": { 92 | "name": "ipython", 93 | "version": 3 94 | }, 95 | "file_extension": ".py", 96 | "mimetype": "text/x-python", 97 | "name": "python", 98 | "nbconvert_exporter": "python", 99 | "pygments_lexer": "ipython3", 100 | "version": "3.7.3" 101 | } 102 | }, 103 | "nbformat": 4, 104 | "nbformat_minor": 2 105 | } 106 | -------------------------------------------------------------------------------- /resources/image_src/08A/08-a-table.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | table index 9 | value 10 | 1 11 | 0 12 | 0 13 | 320 14 | 640 15 | 16 | -------------------------------------------------------------------------------- /resources/image_src/16A/01-a-sampling.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "%matplotlib qt5\n", 10 | "import matplotlib.pyplot as plt\n", 11 | "import numpy as np" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 3, 17 | "metadata": {}, 18 | "outputs": [ 19 | { 20 | "data": { 21 | "text/plain": [ 22 | "" 23 | ] 24 | }, 25 | "execution_count": 3, 26 | "metadata": {}, 27 | "output_type": "execute_result" 28 | } 29 | ], 30 | "source": [ 31 | "fig, (ax1, ax2) = plt.subplots(2,1, dpi=200)\n", 32 | "x = np.linspace(0,10,100)\n", 33 | "x_samps = np.linspace(0.1,10,21, endpoint=False)\n", 34 | "# top\n", 35 | "ax1.set(xticks=[], yticks=[1, 0, -1], yticklabels=['+V', 0, '-V'], xlim=(0,10))\n", 36 | "ax1.set_xlabel('Time', x=0.9)\n", 37 | "ax1.set_ylabel('Voltage')\n", 38 | "ax1.spines['top'].set_visible(False)\n", 39 | "ax1.spines['right'].set_visible(False)\n", 40 | "ax1.spines['bottom'].set_position('zero')\n", 41 | "ax1.plot(x,np.sin(x), c='k')\n", 42 | "ax1.bar(x_samps,np.sin(x_samps),width=0.05, color='k')\n", 43 | "# bottom\n", 44 | "ax2.set(xticks=[], yticks=[1, 0, -1], xlim=(0,10))\n", 45 | "ax2.set_xlabel('Time', x=0.9)\n", 46 | "ax2.set_ylabel('Number')\n", 47 | "ax2.spines['top'].set_visible(False)\n", 48 | "ax2.spines['right'].set_visible(False)\n", 49 | "ax2.spines['bottom'].set_position('zero')\n", 50 | "ax2.bar(x_samps,np.sin(x_samps),width=0.05, color='k')\n", 51 | "\n", 52 | "#fig.savefig('01A_sampling_1b.png', bbox_inches='tight')" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "execution_count": null, 58 | "metadata": {}, 59 | "outputs": [], 60 | "source": [ 61 | "help(np.linspace)" 62 | ] 63 | }, 64 | { 65 | "cell_type": "code", 66 | "execution_count": null, 67 | "metadata": {}, 68 | "outputs": [], 69 | "source": [] 70 | } 71 | ], 72 | "metadata": { 73 | "kernelspec": { 74 | "display_name": "Python 3", 75 | "language": "python", 76 | "name": "python3" 77 | }, 78 | "language_info": { 79 | "codemirror_mode": { 80 | "name": "ipython", 81 | "version": 3 82 | }, 83 | "file_extension": ".py", 84 | "mimetype": "text/x-python", 85 | "name": "python", 86 | "nbconvert_exporter": "python", 87 | "pygments_lexer": "ipython3", 88 | "version": "3.7.3" 89 | } 90 | }, 91 | "nbformat": 4, 92 | "nbformat_minor": 2 93 | } 94 | -------------------------------------------------------------------------------- /resources/image_src/templates/one_ftable_to_plot.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "Csound engine started at slot#: 1.\n" 13 | ] 14 | } 15 | ], 16 | "source": [ 17 | "%matplotlib qt5\n", 18 | "import matplotlib.pyplot as plt\n", 19 | "import numpy as np\n", 20 | "%load_ext csoundmagics\n", 21 | "cs = ICsound()" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 2, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "%%csound\n", 31 | "giTrnsFnc ftgen 1, 0, 4096, -7, -0.5, 1024, -0.5, 2048, 0.5, 1024, 0.5" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 15, 37 | "metadata": {}, 38 | "outputs": [], 39 | "source": [ 40 | "fig, ax = plt.subplots(figsize=(10,5))\n", 41 | "xmax = cs.tableLength(1)\n", 42 | "x = range(xmax)\n", 43 | "ax.set_xlim(0,xmax)\n", 44 | "ax.set_yticks([-0.5,0,0.5])\n", 45 | "ax.set_xticks([0,xmax/4,xmax/2,xmax*3/4,xmax])\n", 46 | "ax.axhline(c='k',lw=0.5)\n", 47 | "ax.spines['top'].set_visible(False)\n", 48 | "ax.spines['right'].set_visible(False)\n", 49 | "ax.spines['bottom'].set_visible(False)\n", 50 | "ax.set_xlabel('table index')\n", 51 | "ax.plot(x,cs.table(1),c='k')\n", 52 | "fig.tight_layout()\n", 53 | "plt.show()" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": null, 59 | "metadata": {}, 60 | "outputs": [], 61 | "source": [ 62 | "cs.printLog()" 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": null, 68 | "metadata": {}, 69 | "outputs": [], 70 | "source": [] 71 | } 72 | ], 73 | "metadata": { 74 | "kernelspec": { 75 | "display_name": "Python 3", 76 | "language": "python", 77 | "name": "python3" 78 | }, 79 | "language_info": { 80 | "codemirror_mode": { 81 | "name": "ipython", 82 | "version": 3 83 | }, 84 | "file_extension": ".py", 85 | "mimetype": "text/x-python", 86 | "name": "python", 87 | "nbconvert_exporter": "python", 88 | "pygments_lexer": "ipython3", 89 | "version": "3.7.3" 90 | } 91 | }, 92 | "nbformat": 4, 93 | "nbformat_minor": 2 94 | } 95 | -------------------------------------------------------------------------------- /resources/image_src/templates/pdf2png.txt: -------------------------------------------------------------------------------- 1 | convert -density 300 input.pdf -quality 90 output.png 2 | -------------------------------------------------------------------------------- /resources/images/00-a-montage-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/00-a-montage-3.png -------------------------------------------------------------------------------- /resources/images/00-a-signal-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/00-a-signal-flow.png -------------------------------------------------------------------------------- /resources/images/00-c-photo-berlin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/00-c-photo-berlin.jpg -------------------------------------------------------------------------------- /resources/images/00-preface-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/00-preface-image.png -------------------------------------------------------------------------------- /resources/images/01-GS-01-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-01-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-01-sine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-01-sine.png -------------------------------------------------------------------------------- /resources/images/01-GS-02-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-02-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-02-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-02-b.png -------------------------------------------------------------------------------- /resources/images/01-GS-02-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-02-c.png -------------------------------------------------------------------------------- /resources/images/01-GS-02-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-02-d.png -------------------------------------------------------------------------------- /resources/images/01-GS-03-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-03-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-03-a.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 0.5 14 | 0.3 15 | 0.1 16 | 17 | 18 | 0 19 | 0.5 20 | 1 21 | 1.5 22 | 2 23 | time (s) 24 | -------------------------------------------------------------------------------- /resources/images/01-GS-03-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-03-b.png -------------------------------------------------------------------------------- /resources/images/01-GS-03-pd-audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-03-pd-audio.png -------------------------------------------------------------------------------- /resources/images/01-GS-04-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-04-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-04-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-04-b.png -------------------------------------------------------------------------------- /resources/images/01-GS-04-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-04-c.png -------------------------------------------------------------------------------- /resources/images/01-GS-04-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-04-d.png -------------------------------------------------------------------------------- /resources/images/01-GS-04-e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-04-e.png -------------------------------------------------------------------------------- /resources/images/01-GS-05-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-05-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-05-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-05-b.png -------------------------------------------------------------------------------- /resources/images/01-GS-05-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-05-c.png -------------------------------------------------------------------------------- /resources/images/01-GS-05-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-05-d.png -------------------------------------------------------------------------------- /resources/images/01-GS-06-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-06-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-06-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-06-b.png -------------------------------------------------------------------------------- /resources/images/01-GS-06-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-06-c.png -------------------------------------------------------------------------------- /resources/images/01-GS-06-c1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-06-c1.png -------------------------------------------------------------------------------- /resources/images/01-GS-06-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-06-d.png -------------------------------------------------------------------------------- /resources/images/01-GS-06-d.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | a = 8 16 | c = 2 17 | b = 4 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | α 28 | α 29 | β 30 | β 31 | 32 | 33 | -------------------------------------------------------------------------------- /resources/images/01-GS-06-e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-06-e.png -------------------------------------------------------------------------------- /resources/images/01-GS-07-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-07-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-07-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-07-b.png -------------------------------------------------------------------------------- /resources/images/01-GS-07-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-07-c.png -------------------------------------------------------------------------------- /resources/images/01-GS-07-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-07-d.png -------------------------------------------------------------------------------- /resources/images/01-GS-07-e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-07-e.png -------------------------------------------------------------------------------- /resources/images/01-GS-09-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-09-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-10-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-10-a.png -------------------------------------------------------------------------------- /resources/images/01-GS-10-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-10-b.png -------------------------------------------------------------------------------- /resources/images/01-GS-10-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-10-c.png -------------------------------------------------------------------------------- /resources/images/01-GS-10-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-10-d.png -------------------------------------------------------------------------------- /resources/images/01-GS-10-e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/01-GS-10-e.png -------------------------------------------------------------------------------- /resources/images/02-c-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/02-c-console.png -------------------------------------------------------------------------------- /resources/images/02-c-error-msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/02-c-error-msg.png -------------------------------------------------------------------------------- /resources/images/03-a-initandperfpass3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-a-initandperfpass3.png -------------------------------------------------------------------------------- /resources/images/03-a-k-rate-env.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-a-k-rate-env.png -------------------------------------------------------------------------------- /resources/images/03-a-ksmps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-a-ksmps.png -------------------------------------------------------------------------------- /resources/images/03-a-peak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-a-peak.png -------------------------------------------------------------------------------- /resources/images/03-a-sr-kr-time3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-a-sr-kr-time3.png -------------------------------------------------------------------------------- /resources/images/03-a-wrong-times.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-a-wrong-times.png -------------------------------------------------------------------------------- /resources/images/03-b-add-freq10hz-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-b-add-freq10hz-1.png -------------------------------------------------------------------------------- /resources/images/03-b-add-freq15hz-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-b-add-freq15hz-1.png -------------------------------------------------------------------------------- /resources/images/03-d-gen08-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen08-1.png -------------------------------------------------------------------------------- /resources/images/03-d-gen08-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen08-2.png -------------------------------------------------------------------------------- /resources/images/03-d-gen08-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen08-3.png -------------------------------------------------------------------------------- /resources/images/03-d-gen08-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen08-4.png -------------------------------------------------------------------------------- /resources/images/03-d-gen16-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen16-1.png -------------------------------------------------------------------------------- /resources/images/03-d-gen16-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen16-2.png -------------------------------------------------------------------------------- /resources/images/03-d-gen16-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen16-3.png -------------------------------------------------------------------------------- /resources/images/03-d-gen16-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen16-4.png -------------------------------------------------------------------------------- /resources/images/03-d-gen16-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen16-5.png -------------------------------------------------------------------------------- /resources/images/03-d-gen19-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen19-1.png -------------------------------------------------------------------------------- /resources/images/03-d-gen19-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen19-2.png -------------------------------------------------------------------------------- /resources/images/03-d-gen30-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen30-1.png -------------------------------------------------------------------------------- /resources/images/03-d-gen30-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen30-2.png -------------------------------------------------------------------------------- /resources/images/03-d-gen30-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-gen30-3.png -------------------------------------------------------------------------------- /resources/images/03-d-pd-drawing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-pd-drawing.png -------------------------------------------------------------------------------- /resources/images/03-d-waveforms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-d-waveforms.png -------------------------------------------------------------------------------- /resources/images/03-f-cmdline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-f-cmdline.png -------------------------------------------------------------------------------- /resources/images/03-f-l1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-f-l1.png -------------------------------------------------------------------------------- /resources/images/03-f-l2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-f-l2.png -------------------------------------------------------------------------------- /resources/images/03-f-qcbutton1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-f-qcbutton1.png -------------------------------------------------------------------------------- /resources/images/03-f-qcbutton3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-f-qcbutton3.png -------------------------------------------------------------------------------- /resources/images/03-f-qcbutton4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/03-f-qcbutton4.png -------------------------------------------------------------------------------- /resources/images/04-a-gbuzz1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-a-gbuzz1.png -------------------------------------------------------------------------------- /resources/images/04-a-gbuzz2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-a-gbuzz2.png -------------------------------------------------------------------------------- /resources/images/04-a-gbuzz3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-a-gbuzz3.png -------------------------------------------------------------------------------- /resources/images/04-a-teiltoene_bild3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-a-teiltoene_bild3.png -------------------------------------------------------------------------------- /resources/images/04-a-wf_v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-a-wf_v2.png -------------------------------------------------------------------------------- /resources/images/04-b-22reson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-b-22reson.png -------------------------------------------------------------------------------- /resources/images/04-b-2oscsynthflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-b-2oscsynthflow.png -------------------------------------------------------------------------------- /resources/images/04-b-vowelfilters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-b-vowelfilters.png -------------------------------------------------------------------------------- /resources/images/04-c-am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-c-am.png -------------------------------------------------------------------------------- /resources/images/04-c-am2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-c-am2.png -------------------------------------------------------------------------------- /resources/images/04-c-rm-spectra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-c-rm-spectra.png -------------------------------------------------------------------------------- /resources/images/04-c-rm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-c-rm.png -------------------------------------------------------------------------------- /resources/images/04-d-fm-2c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-d-fm-2c.jpg -------------------------------------------------------------------------------- /resources/images/04-d-fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-d-fm.png -------------------------------------------------------------------------------- /resources/images/04-d-fm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-d-fm2.png -------------------------------------------------------------------------------- /resources/images/04-d-parallel-mm-fm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-d-parallel-mm-fm.jpg -------------------------------------------------------------------------------- /resources/images/04-d-serial-mm-fm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-d-serial-mm-fm.jpg -------------------------------------------------------------------------------- /resources/images/04-e-01audacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-01audacity.png -------------------------------------------------------------------------------- /resources/images/04-e-bild1a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-bild1a.png -------------------------------------------------------------------------------- /resources/images/04-e-distortexample1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-distortexample1.png -------------------------------------------------------------------------------- /resources/images/04-e-distortexample2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-distortexample2.png -------------------------------------------------------------------------------- /resources/images/04-e-gen7table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-gen7table.png -------------------------------------------------------------------------------- /resources/images/04-e-powershape0-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-powershape0-1.png -------------------------------------------------------------------------------- /resources/images/04-e-powershape0-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-powershape0-5.png -------------------------------------------------------------------------------- /resources/images/04-e-powershape1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-powershape1.png -------------------------------------------------------------------------------- /resources/images/04-e-powershape2-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-powershape2-5.png -------------------------------------------------------------------------------- /resources/images/04-e-powershape50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-powershape50.png -------------------------------------------------------------------------------- /resources/images/04-e-simple-waveshaping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-simple-waveshaping.png -------------------------------------------------------------------------------- /resources/images/04-e-sonograms2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-sonograms2.png -------------------------------------------------------------------------------- /resources/images/04-e-tanh-1to1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-tanh-1to1.png -------------------------------------------------------------------------------- /resources/images/04-e-tanh-5to5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-e-tanh-5to5.png -------------------------------------------------------------------------------- /resources/images/04-f-roads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-f-roads.png -------------------------------------------------------------------------------- /resources/images/04-g-01bild1a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-01bild1a.png -------------------------------------------------------------------------------- /resources/images/04-g-01bild2a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-01bild2a.png -------------------------------------------------------------------------------- /resources/images/04-g-01bild4a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-01bild4a.png -------------------------------------------------------------------------------- /resources/images/04-g-05auda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-05auda.png -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-1.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-11.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-12.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-13.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-2.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-21.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-22.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-23.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-24.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-3.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-4.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-5.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-6.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-7.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-8.gif -------------------------------------------------------------------------------- /resources/images/04-g-physical-model-9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-g-physical-model-9.gif -------------------------------------------------------------------------------- /resources/images/04-h-scantable-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-h-scantable-1.png -------------------------------------------------------------------------------- /resources/images/04-h-scantable-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-h-scantable-2.png -------------------------------------------------------------------------------- /resources/images/04-h-scantable-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-h-scantable-3.png -------------------------------------------------------------------------------- /resources/images/04-h-scanu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/04-h-scanu.png -------------------------------------------------------------------------------- /resources/images/05-a-cosseg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-a-cosseg.png -------------------------------------------------------------------------------- /resources/images/05-a-expseg-port.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-a-expseg-port.png -------------------------------------------------------------------------------- /resources/images/05-a-expseg-versions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-a-expseg-versions.png -------------------------------------------------------------------------------- /resources/images/05-a-expseg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-a-expseg.png -------------------------------------------------------------------------------- /resources/images/05-a-line-expon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-a-line-expon.png -------------------------------------------------------------------------------- /resources/images/05-a-line-linseg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-a-line-linseg.png -------------------------------------------------------------------------------- /resources/images/05-a-linseg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-a-linseg.png -------------------------------------------------------------------------------- /resources/images/05-a-transeg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-a-transeg.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig1-intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig1-intro.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig10-tab3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig10-tab3.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig11-tab4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig11-tab4.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig12-formulas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig12-formulas.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig2-2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig2-2d.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig3-in-phase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig3-in-phase.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig4-in-phase2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig4-in-phase2.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig5-dist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig5-dist.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig6-dist2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig6-dist2.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig7-3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig7-3d.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig8-tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig8-tab1.png -------------------------------------------------------------------------------- /resources/images/05-b-ambi-fig9-tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-ambi-fig9-tab2.png -------------------------------------------------------------------------------- /resources/images/05-b-vbap-ls-konfig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-b-vbap-ls-konfig.jpg -------------------------------------------------------------------------------- /resources/images/05-e-soundmod-schroeder-min.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-e-soundmod-schroeder-min.jpg -------------------------------------------------------------------------------- /resources/images/05-e-soundmod-schroeder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-e-soundmod-schroeder.jpg -------------------------------------------------------------------------------- /resources/images/05-f-RM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-f-RM.png -------------------------------------------------------------------------------- /resources/images/05-f-bit-depth-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-f-bit-depth-2.png -------------------------------------------------------------------------------- /resources/images/05-f-bit-depth-high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-f-bit-depth-high.png -------------------------------------------------------------------------------- /resources/images/05-f-example-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-f-example-4.png -------------------------------------------------------------------------------- /resources/images/05-g-grain-envs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-g-grain-envs.png -------------------------------------------------------------------------------- /resources/images/05-g-scheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-g-scheme.png -------------------------------------------------------------------------------- /resources/images/05-i-bins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-i-bins.png -------------------------------------------------------------------------------- /resources/images/05-i-fft-wins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-i-fft-wins.png -------------------------------------------------------------------------------- /resources/images/05-i-overlap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-i-overlap.png -------------------------------------------------------------------------------- /resources/images/05-i-schema-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-i-schema-1.png -------------------------------------------------------------------------------- /resources/images/05-i-trembling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/05-i-trembling.png -------------------------------------------------------------------------------- /resources/images/08-a-table.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | table index 9 | value 10 | 1 11 | 0 12 | 0 13 | 320 14 | 640 15 | 16 | 17 | -------------------------------------------------------------------------------- /resources/images/08-b-arduinoide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/08-b-arduinoide.png -------------------------------------------------------------------------------- /resources/images/08-b-arduinopd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/08-b-arduinopd.png -------------------------------------------------------------------------------- /resources/images/08-b-arduinopdcsound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/08-b-arduinopdcsound.png -------------------------------------------------------------------------------- /resources/images/08-b-arduinoprocessing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/08-b-arduinoprocessing.png -------------------------------------------------------------------------------- /resources/images/08-b-midi-bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/08-b-midi-bb.png -------------------------------------------------------------------------------- /resources/images/08-b-poton0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/08-b-poton0.png -------------------------------------------------------------------------------- /resources/images/09-a-06a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-a-06a.png -------------------------------------------------------------------------------- /resources/images/09-a-pd3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-a-pd3.png -------------------------------------------------------------------------------- /resources/images/09-a-pd4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-a-pd4.png -------------------------------------------------------------------------------- /resources/images/09-a-pd5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-a-pd5.png -------------------------------------------------------------------------------- /resources/images/09-a-pd6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-a-pd6.png -------------------------------------------------------------------------------- /resources/images/09-a-pd7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-a-pd7.png -------------------------------------------------------------------------------- /resources/images/09-a-pd8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-a-pd8.png -------------------------------------------------------------------------------- /resources/images/09-b-audio-io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-b-audio-io.png -------------------------------------------------------------------------------- /resources/images/09-b-control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-b-control.png -------------------------------------------------------------------------------- /resources/images/09-b-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-b-create.png -------------------------------------------------------------------------------- /resources/images/09-b-events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-b-events.png -------------------------------------------------------------------------------- /resources/images/09-b-midi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/09-b-midi.png -------------------------------------------------------------------------------- /resources/images/10-a-snapshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-a-snapshot1.png -------------------------------------------------------------------------------- /resources/images/10-a-snapshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-a-snapshot2.png -------------------------------------------------------------------------------- /resources/images/10-a-snapshot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-a-snapshot3.png -------------------------------------------------------------------------------- /resources/images/10-b-cabbageadsr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbageadsr.png -------------------------------------------------------------------------------- /resources/images/10-b-cabbageaudiographadd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbageaudiographadd.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbageaudiographmodify.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbageaudiographmodify.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbagecoderepo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagecoderepo.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbageeditmode.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbageeditmode.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbagefirsteffect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagefirsteffect.png -------------------------------------------------------------------------------- /resources/images/10-b-cabbagefirstsynth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagefirstsynth.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbagefirstsynth1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagefirstsynth1.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbagefirstsynth2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagefirstsynth2.png -------------------------------------------------------------------------------- /resources/images/10-b-cabbagegentable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagegentable.png -------------------------------------------------------------------------------- /resources/images/10-b-cabbagenavigatecode.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagenavigatecode.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbagenewfile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagenewfile.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbagerangeslider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagerangeslider.png -------------------------------------------------------------------------------- /resources/images/10-b-cabbagesettings.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagesettings.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbagesoundfiler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagesoundfiler.png -------------------------------------------------------------------------------- /resources/images/10-b-cabbagesynthgraph.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagesynthgraph.gif -------------------------------------------------------------------------------- /resources/images/10-b-cabbagewidgetarray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-cabbagewidgetarray.png -------------------------------------------------------------------------------- /resources/images/10-b-hlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-hlogo.png -------------------------------------------------------------------------------- /resources/images/10-b-simplereverb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-simplereverb.png -------------------------------------------------------------------------------- /resources/images/10-b-simplesynth_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-simplesynth_1.png -------------------------------------------------------------------------------- /resources/images/10-b-slide-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-b-slide-2.jpg -------------------------------------------------------------------------------- /resources/images/10-c-blue-bsb-interface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-c-blue-bsb-interface.png -------------------------------------------------------------------------------- /resources/images/10-c-blue-generic-orc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-c-blue-generic-orc.png -------------------------------------------------------------------------------- /resources/images/10-c-blue-mixer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-c-blue-mixer.png -------------------------------------------------------------------------------- /resources/images/10-c-blue-timelinesoundobject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-c-blue-timelinesoundobject.png -------------------------------------------------------------------------------- /resources/images/10-d-winxound.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/10-d-winxound.jpg -------------------------------------------------------------------------------- /resources/images/11-a-atsa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/11-a-atsa.png -------------------------------------------------------------------------------- /resources/images/11-a-hetro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/11-a-hetro.png -------------------------------------------------------------------------------- /resources/images/11-a-lpanal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/11-a-lpanal.png -------------------------------------------------------------------------------- /resources/images/11-a-pvanal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/11-a-pvanal.png -------------------------------------------------------------------------------- /resources/images/12-b-icsound-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-b-icsound-1.png -------------------------------------------------------------------------------- /resources/images/12-b-icsound-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-b-icsound-2.png -------------------------------------------------------------------------------- /resources/images/12-b-icsound-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-b-icsound-3.png -------------------------------------------------------------------------------- /resources/images/12-d-draw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-d-draw.png -------------------------------------------------------------------------------- /resources/images/12-d-plist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-d-plist.png -------------------------------------------------------------------------------- /resources/images/12-d-xcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-d-xcode.png -------------------------------------------------------------------------------- /resources/images/12-e-csound6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-e-csound6.png -------------------------------------------------------------------------------- /resources/images/12-e-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-e-editor.png -------------------------------------------------------------------------------- /resources/images/12-e-html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-e-html.png -------------------------------------------------------------------------------- /resources/images/12-e-messages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-e-messages.png -------------------------------------------------------------------------------- /resources/images/12-e-widgets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-e-widgets.png -------------------------------------------------------------------------------- /resources/images/12-g-gameoflife3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-g-gameoflife3d.png -------------------------------------------------------------------------------- /resources/images/12-g-lindenmayercanvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/12-g-lindenmayercanvas.png -------------------------------------------------------------------------------- /resources/images/14-a-athenaclscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-a-athenaclscreen.png -------------------------------------------------------------------------------- /resources/images/14-a-cm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-a-cm3.png -------------------------------------------------------------------------------- /resources/images/14-b-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-01.png -------------------------------------------------------------------------------- /resources/images/14-b-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-02.png -------------------------------------------------------------------------------- /resources/images/14-b-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-03.png -------------------------------------------------------------------------------- /resources/images/14-b-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-04.png -------------------------------------------------------------------------------- /resources/images/14-b-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-05.png -------------------------------------------------------------------------------- /resources/images/14-b-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-06.png -------------------------------------------------------------------------------- /resources/images/14-b-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-07.png -------------------------------------------------------------------------------- /resources/images/14-b-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-08.png -------------------------------------------------------------------------------- /resources/images/14-b-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-09.png -------------------------------------------------------------------------------- /resources/images/14-b-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-10.png -------------------------------------------------------------------------------- /resources/images/14-b-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-11.png -------------------------------------------------------------------------------- /resources/images/14-b-pythonconsole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-b-pythonconsole.png -------------------------------------------------------------------------------- /resources/images/14-c-dynamictrigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-c-dynamictrigger.png -------------------------------------------------------------------------------- /resources/images/14-c-follow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-c-follow.png -------------------------------------------------------------------------------- /resources/images/14-c-follow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-c-follow2.png -------------------------------------------------------------------------------- /resources/images/14-c-fox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-c-fox.png -------------------------------------------------------------------------------- /resources/images/14-c-gate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-c-gate.png -------------------------------------------------------------------------------- /resources/images/14-c-homebrew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-c-homebrew.png -------------------------------------------------------------------------------- /resources/images/14-c-rms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-c-rms.png -------------------------------------------------------------------------------- /resources/images/14-c-thresholdtriggering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/14-c-thresholdtriggering.png -------------------------------------------------------------------------------- /resources/images/15-a-aliasing-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-a-aliasing-1.png -------------------------------------------------------------------------------- /resources/images/15-a-aliasing-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-a-aliasing-2.png -------------------------------------------------------------------------------- /resources/images/15-a-bitdepth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-a-bitdepth.png -------------------------------------------------------------------------------- /resources/images/15-a-sampling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-a-sampling.png -------------------------------------------------------------------------------- /resources/images/15-a-sinewave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-a-sinewave.png -------------------------------------------------------------------------------- /resources/images/15-b-noisetosine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-b-noisetosine.png -------------------------------------------------------------------------------- /resources/images/15-b-sinetonoise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-b-sinetonoise.png -------------------------------------------------------------------------------- /resources/images/15-c-fletcher-munson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-c-fletcher-munson.png -------------------------------------------------------------------------------- /resources/images/15-c-overall-amps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-c-overall-amps.png -------------------------------------------------------------------------------- /resources/images/15-c-sine-16points-rms-v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-c-sine-16points-rms-v2.png -------------------------------------------------------------------------------- /resources/images/15-c-sine-16points-v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-c-sine-16points-v2.png -------------------------------------------------------------------------------- /resources/images/15-d-betarand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-betarand.png -------------------------------------------------------------------------------- /resources/images/15-d-bexprand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-bexprand.png -------------------------------------------------------------------------------- /resources/images/15-d-exprand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-exprand.png -------------------------------------------------------------------------------- /resources/images/15-d-gauss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-gauss.png -------------------------------------------------------------------------------- /resources/images/15-d-linear-distributiona2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-linear-distributiona2.png -------------------------------------------------------------------------------- /resources/images/15-d-linear-distributionb2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-linear-distributionb2.png -------------------------------------------------------------------------------- /resources/images/15-d-linrand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-linrand.png -------------------------------------------------------------------------------- /resources/images/15-d-markov-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-markov-table.png -------------------------------------------------------------------------------- /resources/images/15-d-random-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random-overview.png -------------------------------------------------------------------------------- /resources/images/15-d-random1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random1.gif -------------------------------------------------------------------------------- /resources/images/15-d-random10a1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random10a1.gif -------------------------------------------------------------------------------- /resources/images/15-d-random11a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random11a.gif -------------------------------------------------------------------------------- /resources/images/15-d-random2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random2.gif -------------------------------------------------------------------------------- /resources/images/15-d-random3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random3.gif -------------------------------------------------------------------------------- /resources/images/15-d-random4a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random4a.gif -------------------------------------------------------------------------------- /resources/images/15-d-random5a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random5a.gif -------------------------------------------------------------------------------- /resources/images/15-d-random6a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random6a.gif -------------------------------------------------------------------------------- /resources/images/15-d-random7a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random7a.gif -------------------------------------------------------------------------------- /resources/images/15-d-random8a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random8a.gif -------------------------------------------------------------------------------- /resources/images/15-d-random9a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-random9a.gif -------------------------------------------------------------------------------- /resources/images/15-d-randomh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-randomh.png -------------------------------------------------------------------------------- /resources/images/15-d-randomi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-randomi.png -------------------------------------------------------------------------------- /resources/images/15-d-rspline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-rspline.png -------------------------------------------------------------------------------- /resources/images/15-d-triangular-distribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-triangular-distribution.png -------------------------------------------------------------------------------- /resources/images/15-d-trirand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/15-d-trirand.png -------------------------------------------------------------------------------- /resources/images/tex_math_examples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/images/tex_math_examples.png -------------------------------------------------------------------------------- /resources/latex-metadata.yaml: -------------------------------------------------------------------------------- 1 | documentclass: article 2 | -------------------------------------------------------------------------------- /resources/styles/epub.css: -------------------------------------------------------------------------------- 1 | /* This defines styles and classes used in the book */ 2 | body { 3 | margin-left: 5%; 4 | margin-right: 5%; 5 | margin-top: 5%; 6 | margin-bottom: 5%; 7 | text-align: justify; 8 | font-size: medium; 9 | } 10 | 11 | /* 12 | Classic paragraph: First line indented, no vertical space between paragraphs. 13 | */ 14 | p { 15 | text-indent: +2em; 16 | text-align: justify; 17 | margin-top: 0; 18 | margin-bottom: 0.125pt; 19 | } 20 | -------------------------------------------------------------------------------- /resources/styles/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'roboto'; 3 | src: url('fonts/Roboto-Regular.ttf') format('truetype'); 4 | font-weight: normal; 5 | font-style: normal; 6 | } 7 | 8 | @font-face { 9 | font-family: 'roboto'; 10 | src: url('fonts/Roboto-Bold.ttf') format('truetype'); 11 | font-weight: bold; 12 | font-style: normal; 13 | } 14 | 15 | @font-face { 16 | font-family: 'roboto'; 17 | src: url('fonts/Roboto-Italic.ttf') format('truetype'); 18 | font-weight: normal; 19 | font-style: italic; 20 | } 21 | 22 | @font-face { 23 | font-family: 'roboto'; 24 | src: url('fonts/Roboto-BoldItalic.ttf') format('truetype'); 25 | font-weight: bold; 26 | font-style: italic; 27 | } 28 | 29 | @font-face { 30 | font-family: 'texgyrecursor'; 31 | src: url('fonts/TeXGyreCursor-Regular.ttf') format('truetype'); 32 | font-weight: normal; 33 | font-style: normal; 34 | } 35 | 36 | @font-face { 37 | font-family: 'texgyrecursor'; 38 | src: url('fonts/TeXGyreCursor-Bold.ttf') format('truetype'); 39 | font-weight: bold; 40 | font-style: normal; 41 | } 42 | 43 | @font-face { 44 | font-family: 'texgyrecursor'; 45 | src: url('fonts/TeXGyreCursor-Italic.ttf') format('truetype'); 46 | font-weight: normal; 47 | font-style: italic; 48 | } 49 | 50 | @font-face { 51 | font-family: 'texgyrecursor'; 52 | src: url('fonts/TeXGyreCursor-BoldItalic.ttf') format('truetype'); 53 | font-weight: bold; 54 | font-style: italic; 55 | } 56 | 57 | @font-face { 58 | font-family: 'roboto-condensed'; 59 | src: url('fonts/RobotoCondensed-Regular.ttf') format('truetype'); 60 | font-weight: normal; 61 | font-style: normal; 62 | } 63 | 64 | @font-face { 65 | font-family: 'roboto-condensed'; 66 | src: url('fonts/RobotoCondensed-Bold.ttf') format('truetype'); 67 | font-weight: bold; 68 | font-style: normal; 69 | } 70 | 71 | @font-face { 72 | font-family: 'roboto-condensed'; 73 | src: url('fonts/RobotoCondensed-Italic.ttf') format('truetype'); 74 | font-weight: normal; 75 | font-style: italic; 76 | } 77 | 78 | @font-face { 79 | font-family: 'roboto-condensed'; 80 | src: url('fonts/RobotoCondensed-BoldItalic.ttf') format('truetype'); 81 | font-weight: bold; 82 | font-style: italic; 83 | } 84 | -------------------------------------------------------------------------------- /resources/styles/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/Roboto-Italic.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/RobotoCondensed-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/RobotoCondensed-Bold.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/RobotoCondensed-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/RobotoCondensed-Italic.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/RobotoCondensed-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/RobotoCondensed-Regular.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/TeXGyreCursor-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/TeXGyreCursor-Bold.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/TeXGyreCursor-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/TeXGyreCursor-Italic.ttf -------------------------------------------------------------------------------- /resources/styles/fonts/TeXGyreCursor-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/resources/styles/fonts/TeXGyreCursor-Regular.ttf -------------------------------------------------------------------------------- /resources/styles/hlolli.css: -------------------------------------------------------------------------------- 1 | .solid-box { 2 | padding: 24px 0; 3 | border: 1px solid black; 4 | } 5 | 6 | .center-vertical { 7 | display: flex; 8 | justify-content: center; 9 | flex-direction: column; 10 | } 11 | 12 | .center-vertical > * { 13 | display: block; 14 | align-self: center; 15 | position: relative; 16 | margin: 6px 0; 17 | } 18 | 19 | .center-horizontal { 20 | display: flex; 21 | justify-content: space-bewteen; 22 | flex-direction: row; 23 | } 24 | 25 | .center-horizontal > * { 26 | display: block; 27 | align-self: center; 28 | position: relative; 29 | margin: 0 6px; 30 | } 31 | 32 | .ReactModalPortal > div { 33 | z-index: 1000; 34 | } 35 | -------------------------------------------------------------------------------- /resources/styles/html-pdf.css: -------------------------------------------------------------------------------- 1 | html { 2 | hyphens: auto; 3 | } 4 | 5 | body { 6 | margin: 0; 7 | padding: 0; 8 | color: #333; 9 | font-size: 17px; 10 | font-family: "roboto"; 11 | line-height: 1.25em; 12 | } 13 | -------------------------------------------------------------------------------- /resources/styles/html.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | color: #333; 5 | background-color: #ebebeb; 6 | font-family: "Roboto Condensed", sans-serif; 7 | font-size: 18px; 8 | font-weight: normal; 9 | line-height: 145%; 10 | overflow-x: hidden; 11 | } 12 | 13 | /* Hacky way to hide the coverpage */ 14 | #cover-image, 15 | #title-block-header, 16 | #section_copyright { 17 | display: none; 18 | } 19 | 20 | .CodeMirror-code { 21 | } 22 | 23 | code, 24 | .CodeMirror, 25 | pre { 26 | font-family: "Fira Mono", monospace !important; 27 | } 28 | 29 | pre { 30 | color: #000; 31 | background: #f5f2f0; 32 | font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; 33 | text-shadow: 0 1px #fff; 34 | hyphens: none; 35 | -webkit-hyphens: none; 36 | -moz-hyphens: none; 37 | -ms-hyphens: none; 38 | tab-size: 4; 39 | } 40 | 41 | pre > code { 42 | font-size: 16px !important; 43 | line-height: 19px !important; 44 | } 45 | 46 | .CodeMirror { 47 | font-size: 16px !important; 48 | line-height: 21px !important; 49 | } 50 | 51 | #root { 52 | display: flex; 53 | overflow-x: hidden; 54 | justify-content: space-between; 55 | min-height: 100svh; 56 | } 57 | 58 | .cm-csound-define { 59 | color: #ef6020 !important; 60 | font-weight: 600; 61 | } 62 | 63 | /* strong { 64 | margin-left: 1rem; 65 | } */ 66 | -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- 1 | # A shellfile for nixos users 2 | 3 | with import {}; 4 | 5 | let 6 | texliveDeps = pkgs.texlive.combine { 7 | inherit (pkgs.texlive) 8 | adjustbox 9 | beamer 10 | booktabs 11 | caption 12 | chngcntr 13 | collectbox 14 | ec 15 | etoolbox 16 | fancyvrb 17 | fira 18 | float 19 | fontinst 20 | fontspec 21 | footmisc 22 | framed 23 | hyperref 24 | listings 25 | mdwtools # <-- footnote.sty 26 | metafont 27 | parskip 28 | pgf 29 | placeins 30 | plstmary 31 | psnfss 32 | roboto 33 | scheme-basic 34 | sectsty 35 | setspace 36 | stix 37 | stmaryrd 38 | titlesec 39 | translator 40 | unicode-math 41 | wrapfig 42 | xcolor 43 | xetex 44 | xkeyval; 45 | }; 46 | deps = with pkgs; [ 47 | fontconfig 48 | fira 49 | haskellPackages.pandoc 50 | librsvg 51 | tetex 52 | texliveDeps 53 | nodejs-18_x 54 | (yarn.override { nodejs = pkgs.nodejs-18_x; }) 55 | ]; 56 | in pkgs.symlinkJoin { 57 | name = "csound-floss-build-deps"; 58 | buildInputs = deps; 59 | paths = deps; 60 | } 61 | -------------------------------------------------------------------------------- /src/BookContext.js: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line no-unused-vars 2 | import React, { createContext, useContext, useReducer } from "react"; 3 | import { assoc, pipe } from "ramda"; 4 | 5 | export const BookStateContext = createContext(); 6 | export const BookDispatchContext = createContext(); 7 | BookStateContext.displayName = "BookStateContext"; 8 | BookStateContext.displayName = "BookStateContext"; 9 | 10 | const reducer = (state, action) => { 11 | switch (action.type) { 12 | case "setSections": { 13 | return pipe( 14 | assoc("sections", action.sections), 15 | assoc("sectionIndex", 0), 16 | assoc("subSectionIndex", -1) 17 | )(state); 18 | } 19 | case "setSectionIndex": { 20 | return pipe( 21 | assoc("sectionIndex", action.sectionIndex), 22 | assoc("subSectionIndex", action.subSectionIndex || -1) 23 | )(state); 24 | } 25 | default: { 26 | return state; 27 | } 28 | } 29 | }; 30 | 31 | export const BookProvider = ({ children }) => { 32 | const [state, dispatch] = useReducer(reducer, { 33 | sections: [], 34 | sectionIndex: 0, 35 | }); 36 | 37 | return ( 38 | 39 | 40 | {children} 41 | 42 | 43 | ); 44 | }; 45 | 46 | export const useBookState = () => { 47 | const context = useContext(BookStateContext); 48 | if (context === undefined) { 49 | throw new Error("useBookState must be used within a BookProvider"); 50 | } 51 | return context; 52 | }; 53 | 54 | export const useBookDispatch = () => { 55 | const context = useContext(BookDispatchContext); 56 | if (context === undefined) { 57 | throw new Error("useBookDispatch must be used within a BookProvider"); 58 | } 59 | return context; 60 | }; 61 | 62 | export const useBook = () => [useBookState(), useBookDispatch()]; 63 | 64 | export default useBook; 65 | -------------------------------------------------------------------------------- /src/Link.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { ReactLink } from "react-router-dom"; 3 | import { Link } from "@chakra-ui/react"; 4 | 5 | export const InternalLink = ({ to, title }) => ( 6 | 7 | {title} 8 | 9 | ); 10 | -------------------------------------------------------------------------------- /src/assets/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | close 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/assets/odf_logo_wikimedia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/src/assets/odf_logo_wikimedia.png -------------------------------------------------------------------------------- /src/assets/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/pwa_wikimedia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csound-flossmanual/csound-floss/fb4a774bab0155366908035bd4467b3b3ee91f8b/src/assets/pwa_wikimedia.png -------------------------------------------------------------------------------- /src/assets/source_materials.json: -------------------------------------------------------------------------------- 1 | [ 2 | "AEP_udos.txt", 3 | "AllArduinoInputsToOSC.pde", 4 | "ambisonics2D_udos.txt", 5 | "ambisonics_udos.txt", 6 | "ambisonics_utilities.txt", 7 | "Arduino_Processing_OSC_Csound.csd", 8 | "basoon-C4.ats", 9 | "beats.wav", 10 | "BratscheMono.wav", 11 | "circularstring-128", 12 | "circularstring", 13 | "ClassGuit.wav", 14 | "cs_sco_rand.pl", 15 | "dish.wav", 16 | "female-speech.ats", 17 | "flute-A5.ats", 18 | "fox.wav", 19 | "gbuzz3.wav", 20 | "hrtf-44100-left.dat", 21 | "hrtf-44100-right.dat", 22 | "loop.wav", 23 | "oboe-A5.ats", 24 | "print.py", 25 | "spiral-8,16,128,2,1over2", 26 | "Stairwell.wav", 27 | "string-128", 28 | "test.ats", 29 | "wave.wav" 30 | ] 31 | -------------------------------------------------------------------------------- /src/assets/stop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/wasm_wikimedia.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/components/Console/index.js: -------------------------------------------------------------------------------- 1 | /** @jsxRuntime classic */ 2 | /** @jsx jsx */ 3 | import { jsx } from "@emotion/react"; 4 | // eslint-disable-next-line no-unused-vars 5 | import React, { useEffect, useRef, useState } from "react"; 6 | import StickyEl from "../../vendor/react-sticky-el.min.js"; 7 | import CloseIcon from "../../assets/close.svg"; 8 | import useCsound from "../../CsoundContext"; 9 | import { Rnd } from "react-rnd"; 10 | import * as ß from "./styles"; 11 | 12 | const initialHeight = 500; 13 | const initialWidth = 300; 14 | 15 | const Console = () => { 16 | const [{ logs, logDialogOpen }, csoundDispatch] = useCsound(); 17 | 18 | const preRef = useRef(); 19 | 20 | useEffect(() => { 21 | setTimeout(() => { 22 | try { 23 | preRef.current.scrollTop = preRef.current.scrollHeight; 24 | } catch (e) {} 25 | }, 1); 26 | }, [logs, logDialogOpen]); 27 | 28 | return ( 29 | logDialogOpen && ( 30 |
31 | 32 | 44 | csoundDispatch({ type: "CLOSE_LOG_DIALOG" })} 46 | css={ß.closeIconContainer} 47 | > 48 | close 49 | 50 |
51 | {"Csound WebAssembly console"} 52 |
53 | 54 |
55 |               {logs.map((log, index) => (
56 |                 {`${log}\n`}
57 |               ))}
58 |             
59 |
60 |
61 |
62 | ) 63 | ); 64 | }; 65 | 66 | export default Console; 67 | -------------------------------------------------------------------------------- /src/components/Console/styles.js: -------------------------------------------------------------------------------- 1 | /** @jsxRuntime classic */ 2 | /** @jsx jsx */ 3 | import { css } from "@emotion/react"; 4 | 5 | const shadow = css` 6 | box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 7 | 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); 8 | `; 9 | 10 | export const sticky = css` 11 | position: absolute; 12 | z-index: 99999; 13 | & > div { 14 | position: absolute; 15 | } 16 | & > div > div { 17 | width: 100vw !important; 18 | height: 100vh !important; 19 | pointer-events: none; 20 | } 21 | `; 22 | 23 | export const container = css` 24 | ${shadow} 25 | background-color: #f5f2f0; 26 | pointer-events: all; 27 | padding-top: 22px; 28 | `; 29 | 30 | export const closeIconContainer = css` 31 | position: absolute; 32 | fill: white; 33 | right: 12px; 34 | top: 0; 35 | z-index: 999999; 36 | cursor: pointer; 37 | `; 38 | 39 | export const windowBar = css` 40 | padding: 0 12px; 41 | color: #f5f2f0; 42 | background-color: #6f519b; 43 | position: fixed; 44 | width: 100%; 45 | left: 0; 46 | top: 0; 47 | `; 48 | 49 | export const pre = css` 50 | border: none !important; 51 | box-sizing: content-box; 52 | position: relative; 53 | height: calc(100% - 18px); 54 | overflow-y: scroll; 55 | overflow-x: hidden; 56 | padding: 6px; 57 | margin: 0; 58 | &::-webkit-scrollbar { 59 | pointer-events: all !important; 60 | z-index: 2; 61 | width: 5px; 62 | height: 8px; 63 | background-color: #aaa; 64 | } 65 | `; 66 | -------------------------------------------------------------------------------- /src/components/Editor/styles.js: -------------------------------------------------------------------------------- 1 | /** @jsxRuntime classic */ 2 | /** @jsx jsx */ 3 | import { css } from "@emotion/react"; 4 | 5 | export const codeMirror = (isCsd) => css` 6 | margin-top: 12px; 7 | white-space: pre-wrap; 8 | margin-bottom: 24px; 9 | & .CodeMirror-cursors { 10 | display: ${isCsd ? "inherit" : "none!important"}; 11 | } 12 | & .CodeMirror-wrap pre { 13 | word-break: break-word; 14 | } 15 | & .CodeMirror-scroll { 16 | height: auto !important; 17 | overflow: hidden !important; 18 | } 19 | & .react-codemirror2 > div { 20 | background: #f5f2f0; 21 | height: auto; 22 | border: 1px solid #ccc; 23 | } 24 | & .CodeMirror-gutter-elt { 25 | color: #75787b !important; 26 | margin-left: 6px; 27 | } 28 | `; 29 | 30 | export const controllers = css` 31 | position: relative; 32 | display: flex; 33 | flex-direction: row; 34 | & > button { 35 | width: 40px; 36 | height: 40px; 37 | padding: 3px; 38 | background-color: white; 39 | margin: 0; 40 | margin-bottom: 3px; 41 | overflow: hidden; 42 | & > img { 43 | filter: invert(48%) sepia(13%) saturate(3207%) hue-rotate(130deg) 44 | brightness(95%) contrast(80%); 45 | } 46 | &:disabled { 47 | background-color: #aaa; 48 | & > img { 49 | filter: invert(48%) sepia(13%) hue-rotate(130deg); 50 | } 51 | } 52 | } 53 | `; 54 | 55 | export const playLoadingSpinner = css` 56 | position: absolute; 57 | left: -2px; 58 | top: -2px; 59 | display: inline-block; 60 | width: 30px; 61 | height: 30px; 62 | margin: auto 0; 63 | &:after { 64 | content: " "; 65 | display: block; 66 | width: 28px; 67 | height: 28px; 68 | margin: 8px; 69 | border-radius: 50%; 70 | border: 6px solid #6f519b; 71 | border-color: #6f519b transparent #6f519b transparent; 72 | animation: lds-dual-ring 1.2s linear infinite; 73 | } 74 | 75 | @keyframes lds-dual-ring { 76 | 0% { 77 | transform: rotate(0deg); 78 | } 79 | 100% { 80 | transform: rotate(360deg); 81 | } 82 | } 83 | `; 84 | 85 | export const readOnly = css` 86 | user-select: none; 87 | `; 88 | -------------------------------------------------------------------------------- /src/components/Gui/styles.js: -------------------------------------------------------------------------------- 1 | /** @jsxRuntime classic */ 2 | /** @jsx jsx */ 3 | import { css } from "@emotion/react"; 4 | 5 | const shadow = css` 6 | box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 7 | 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); 8 | `; 9 | 10 | export const sticky = css` 11 | position: absolute; 12 | z-index: 99999; 13 | pointer-events: none; 14 | & > div { 15 | position: relative; 16 | } 17 | & > div > div { 18 | width: 100vw !important; 19 | height: 100vh !important; 20 | } 21 | `; 22 | 23 | export const container = css` 24 | ${shadow} 25 | background-color: #f5f2f0; 26 | pointer-events: bounding-box; 27 | padding-top: 22px; 28 | cursor: initial !important; 29 | `; 30 | 31 | export const closeIconContainer = css` 32 | position: absolute; 33 | fill: white; 34 | right: 12px; 35 | top: 3px; 36 | z-index: 999999; 37 | cursor: pointer; 38 | `; 39 | 40 | export const windowBar = css` 41 | cursor: move; 42 | height: 28px; 43 | padding: 0 12px; 44 | color: #f5f2f0; 45 | background-color: #6f519b; 46 | position: fixed; 47 | width: 100%; 48 | left: 0; 49 | top: 0; 50 | `; 51 | 52 | export const body = css` 53 | z-index: 1; 54 | display: flex; 55 | flex-direction: column; 56 | pointer-events: all; 57 | border: none !important; 58 | box-sizing: content-box; 59 | height: calc(100% - 18px); 60 | overflow-y: scroll; 61 | overflow-x: hidden; 62 | padding: 12px; 63 | margin: 0; 64 | &::-webkit-scrollbar { 65 | pointer-events: all !important; 66 | z-index: 2; 67 | width: 5px; 68 | height: 8px; 69 | background-color: #aaa; 70 | } 71 | `; 72 | -------------------------------------------------------------------------------- /src/components/HomeScreen/styles.js: -------------------------------------------------------------------------------- 1 | /** @jsxRuntime classic */ 2 | /** @jsx jsx */ 3 | import { css } from "@emotion/react"; 4 | 5 | export const root = css` 6 | max-width: 800px; 7 | min-width: 360px; 8 | img { 9 | font-align: center; 10 | display: inline-block; 11 | margin-right: 6px; 12 | } 13 | a, 14 | p { 15 | color: #333; 16 | font-align: center; 17 | display: inline-block; 18 | font-size: 20px; 19 | white-space: nowrap; 20 | &:hover { 21 | text-decoration: underline; 22 | } 23 | } 24 | `; 25 | 26 | export const grid = css` 27 | display: grid; 28 | align-items: stretch; 29 | // grid-template-rows: 1fr auto; 30 | grid-template-columns: 1fr repeat(auto-fit, minmax(360px, 1fr)); 31 | `; 32 | -------------------------------------------------------------------------------- /src/components/Main/styles.js: -------------------------------------------------------------------------------- 1 | /** @jsxRuntime classic */ 2 | /** @jsx jsx */ 3 | import { css } from "@emotion/react"; 4 | 5 | export const main = css` 6 | padding: 48px 12px; 7 | position: relative; 8 | max-width: calc(100% - 240px - 24px); 9 | width: calc(100% - 240px - 24px); 10 | & > div { 11 | background-color: #fff; 12 | margin-right: auto; 13 | margin-left: auto; 14 | padding: 12px; 15 | margin-bottom: 20px; 16 | border: 1px solid #d9d9d9; 17 | border-radius: 2px; 18 | } 19 | 20 | @media (min-width: 900px) { 21 | & { 22 | padding: 48px 72px; 23 | } 24 | & > div { 25 | padding: 50px; 26 | } 27 | } 28 | 29 | @media (min-width: 650px) { 30 | p, 31 | em { 32 | max-width: 100%; 33 | overflow: hidden; 34 | text-overflow: ellipsis; 35 | } 36 | & { 37 | padding: 48px 32px; 38 | max-width: calc(100% - 240px - 64px); 39 | width: calc(100% - 240px - 64px); 40 | } 41 | & > div { 42 | padding: 32px; 43 | } 44 | } 45 | `; 46 | 47 | export const mainMobile = css` 48 | @media { 49 | width: 100%; 50 | padding: 12px; 51 | } 52 | & > div { 53 | background-color: #fff; 54 | margin-right: auto; 55 | margin-left: auto; 56 | padding: 32px; 57 | } 58 | `; 59 | 60 | export const home = css` 61 | & > div { 62 | position: absolute; 63 | background-color: #fff; 64 | margin-top: 24px; 65 | margin-left: 24px; 66 | padding: 32px; 67 | } 68 | `; 69 | 70 | export const loadingSpinner = css` 71 | display: inline-block; 72 | width: 80px; 73 | height: 80px; 74 | margin: auto 0; 75 | &:after { 76 | content: " "; 77 | display: block; 78 | width: 64px; 79 | height: 64px; 80 | margin: 8px; 81 | border-radius: 50%; 82 | border: 6px solid #6f519b; 83 | border-color: #6f519b transparent #6f519b transparent; 84 | animation: lds-dual-ring 1.2s linear infinite; 85 | } 86 | 87 | @keyframes lds-dual-ring { 88 | 0% { 89 | transform: rotate(0deg); 90 | } 91 | 100% { 92 | transform: rotate(360deg); 93 | } 94 | } 95 | `; 96 | -------------------------------------------------------------------------------- /src/history.js: -------------------------------------------------------------------------------- 1 | import { createBrowserHistory } from "history"; 2 | 3 | export const browserHistory = createBrowserHistory(); 4 | 5 | export const navigate = path => browserHistory.push(path); 6 | -------------------------------------------------------------------------------- /src/hlolli.css: -------------------------------------------------------------------------------- 1 | ../resources/styles/hlolli.css -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { createRoot } from "react-dom/client"; 3 | import App from "./App"; 4 | import * as serviceWorker from "./serviceWorker"; 5 | // POLYFILLS 6 | import "core-js/es/object"; 7 | import "core-js/es/weak-set"; 8 | import "core-js/es/string"; 9 | import "core-js/es/promise"; 10 | import "core-js/es/typed-array"; 11 | import "core-js/es/array-buffer"; 12 | // Hlolli style helpers 13 | import "./hlolli.css"; 14 | 15 | const root = createRoot(document.getElementById("root")); 16 | root.render(); 17 | 18 | // If you want your app to work offline and load faster, you can change 19 | // unregister() to register() below. Note this comes with some pitfalls. 20 | // Learn more about service workers: https://bit.ly/CRA-PWA 21 | serviceWorker.register(); 22 | -------------------------------------------------------------------------------- /src/use-title.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export const useTitle = (title) => { 4 | const documentDefined = typeof document !== "undefined"; 5 | const originalTitle = React.useRef(documentDefined ? document.title : null); 6 | 7 | React.useEffect(() => { 8 | if (!documentDefined) { 9 | return; 10 | } 11 | 12 | if (document.title !== title) { 13 | document.title = title; 14 | } 15 | 16 | const currentDocumentTitle = originalTitle.current; 17 | return () => { 18 | document.title = currentDocumentTitle; 19 | }; 20 | }, [documentDefined, originalTitle, title]); 21 | }; 22 | -------------------------------------------------------------------------------- /tests/layout.spec.js: -------------------------------------------------------------------------------- 1 | const each = require("jest-each").default; 2 | const path = require("path"); 3 | const R = require("ramda"); 4 | const chalk = require("chalk"); 5 | const { BOOK_DIRECTORY } = require("../pandoc/constants"); 6 | const fg = require("fast-glob"); 7 | const allChapters = fg.sync([`${BOOK_DIRECTORY}/*.md`], { dot: false }); 8 | const { execSync } = require("child_process"); 9 | 10 | const toBeShorterThanFn = (received, limit) => { 11 | if (received.length < limit) { 12 | return { pass: true }; 13 | } 14 | const helpfulMessage = 15 | chalk.rgb(23, 255, 24).inverse(received.substring(0, 78)) + 16 | chalk.rgb(230, 10, 24).inverse(received.substring(78)); 17 | return { 18 | message: () => `Too long line: \n\t${helpfulMessage}`, 19 | pass: false, 20 | }; 21 | }; 22 | 23 | expect.extend({ 24 | toBeShorterThan(received, limit) { 25 | return toBeShorterThanFn(received, limit); 26 | }, 27 | }); 28 | 29 | each(allChapters).describe(`Testing %s`, mdPath => { 30 | let ast = {}; 31 | it("Pandoc can parse it", () => { 32 | const out = execSync(`pandoc -t json ${mdPath}`, { encoding: "utf-8" }); 33 | expect(() => { 34 | const maybeObj = JSON.parse(out); 35 | ast = maybeObj.blocks || []; 36 | }).not.toThrow(); 37 | }); 38 | 39 | it("CodeBlocks lines never exceed 78 characters", () => { 40 | const codeBlocks = R.pipe( 41 | R.filter(R.propEq("t", "CodeBlock")), 42 | R.pluck("c"), 43 | R.map(R.last) 44 | )(ast); 45 | 46 | // Print all possible failures pre-emptively 47 | codeBlocks.forEach(txt => { 48 | const lines = txt.split(/\r?\n/); 49 | lines.forEach(line => { 50 | const { pass, message } = toBeShorterThanFn(line, 79); 51 | !pass && console.error(mdPath, message()); 52 | }); 53 | }); 54 | 55 | codeBlocks.forEach(txt => { 56 | const lines = txt.split(/\r?\n/); 57 | lines.forEach(line => { 58 | expect(line).toBeShorterThan(79); 59 | }); 60 | }); 61 | }); 62 | }); 63 | -------------------------------------------------------------------------------- /toc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "chapter": 0, 4 | "name": "Introduction", 5 | "url_prefix": "/introduction", 6 | "with_overview_page": false 7 | }, 8 | { 9 | "chapter": 1, 10 | "name": "Getting Started", 11 | "url_prefix": "/get-started", 12 | "with_overview_page": true 13 | }, 14 | { 15 | "chapter": 2, 16 | "name": "How to ...", 17 | "url_prefix": "/how-to", 18 | "with_overview_page": true 19 | }, 20 | { 21 | "chapter": 3, 22 | "name": "Csound Language", 23 | "url_prefix": "/csound-language", 24 | "with_overview_page": true 25 | }, 26 | { 27 | "chapter": 4, 28 | "name": "Sound Synthesis", 29 | "url_prefix": "/sound-synthesis", 30 | "with_overview_page": true 31 | }, 32 | { 33 | "chapter": 5, 34 | "name": "Sound Modification", 35 | "url_prefix": "/sound-modification", 36 | "with_overview_page": true 37 | }, 38 | { 39 | "chapter": 6, 40 | "name": "Samples", 41 | "url_prefix": "/samples", 42 | "with_overview_page": true 43 | }, 44 | { 45 | "chapter": 7, 46 | "name": "Midi", 47 | "url_prefix": "/midi", 48 | "with_overview_page": true 49 | }, 50 | { 51 | "chapter": 8, 52 | "name": "Other Communication", 53 | "url_prefix": "/other-communication", 54 | "with_overview_page": true 55 | }, 56 | { 57 | "chapter": 9, 58 | "name": "Csound in other applications", 59 | "url_prefix": "/csound-in-other-applications", 60 | "with_overview_page": true 61 | }, 62 | { 63 | "chapter": 10, 64 | "name": "Csound frontends", 65 | "url_prefix": "/csound-frontends", 66 | "with_overview_page": true 67 | }, 68 | { 69 | "chapter": 11, 70 | "name": "Csound utilities", 71 | "url_prefix": "/csound-utilities", 72 | "with_overview_page": true 73 | }, 74 | { 75 | "chapter": 12, 76 | "name": "Csound and other programming languages", 77 | "url_prefix": "/csound-and-other-programming-languages", 78 | "with_overview_page": true 79 | }, 80 | { 81 | "chapter": 13, 82 | "name": "Extending Csound", 83 | "url_prefix": "/extending-csound", 84 | "with_overview_page": true 85 | }, 86 | { 87 | "chapter": 14, 88 | "name": "Miscellanea", 89 | "url_prefix": "/miscellanea", 90 | "with_overview_page": true 91 | }, 92 | { 93 | "chapter": 15, 94 | "name": "Appendix: Digital Audio Basics", 95 | "url_prefix": "/basics", 96 | "with_overview_page": true 97 | } 98 | ] 99 | --------------------------------------------------------------------------------