diff --git a/audio/mic_record/Intro.ogg b/audio/mic_record/Intro.ogg new file mode 100644 index 00000000..5d65f045 Binary files /dev/null and b/audio/mic_record/Intro.ogg differ diff --git a/audio/mic_record/Intro.ogg.import b/audio/mic_record/Intro.ogg.import new file mode 100644 index 00000000..1c6f6ae7 --- /dev/null +++ b/audio/mic_record/Intro.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/Intro.ogg-dfe75727d0e47692e220adf97ddb7ad9.oggstr" + +[deps] + +source_file="res://Intro.ogg" +dest_files=[ "res://.import/Intro.ogg-dfe75727d0e47692e220adf97ddb7ad9.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/mic_record/Node2D.gd b/audio/mic_record/Node2D.gd new file mode 100644 index 00000000..0524a6d5 --- /dev/null +++ b/audio/mic_record/Node2D.gd @@ -0,0 +1,43 @@ +extends Node2D + +var effect +var recording + +func _ready(): + var idx = AudioServer.get_bus_index("Record") + effect = AudioServer.get_bus_effect(idx, 0) + +func _on_RecordButton_pressed(): + if (effect.is_recording_active()): + recording = effect.get_recording() + $PlayButton.disabled = false + $SaveButton.disabled = false + effect.set_recording_active(false) + $RecordButton.text = "Record" + else: + $PlayButton.disabled = true + $SaveButton.disabled = true + effect.set_recording_active(true) + $RecordButton.text = "Stop" + +func _on_PlayButton_pressed(): + print(recording) + print(recording.format) + print(recording.mix_rate) + print(recording.stereo) + var data = recording.get_data() + print(data) + print(data.size()) + $AudioStreamPlayer.stream = recording + $AudioStreamPlayer.play() + +func _on_Play_Music_pressed(): + if ($AudioStreamPlayer2.playing): + $AudioStreamPlayer2.stop() + $PlayMusic.text = "Play Music" + else: + $AudioStreamPlayer2.play() + $PlayMusic.text = "Stop Music" + +func _on_SaveButton_pressed(): + recording.save_to_wav($SaveButton/Filename.text) diff --git a/audio/mic_record/Node2D.tscn b/audio/mic_record/Node2D.tscn new file mode 100644 index 00000000..09c33861 --- /dev/null +++ b/audio/mic_record/Node2D.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Node2D.gd" type="Script" id=1] +[ext_resource path="res://Intro.ogg" type="AudioStream" id=2] + +[sub_resource type="AudioStreamMicrophone" id=1] + + +[node name="Node2D" type="Node2D"] +script = ExtResource( 1 ) + +[node name="AudioStreamRecord" type="AudioStreamPlayer" parent="."] +stream = SubResource( 1 ) +autoplay = true +bus = "Record" + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +autoplay = true + +[node name="AudioStreamPlayer2" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 2 ) +volume_db = -6.0 + +[node name="RecordButton" type="Button" parent="."] +margin_left = 120.0 +margin_top = 60.0 +margin_bottom = 78.0 +text = "Record" + +[node name="SaveButton" type="Button" parent="."] +editor/display_folded = true +margin_left = 120.0 +margin_top = 120.0 +disabled = true +text = "Save Wav To:" + +[node name="Filename" type="Label" parent="SaveButton"] +margin_left = 120.0 +margin_right = 440.0 +margin_bottom = 20.0 +text = "user://record.wav" + +[node name="PlayButton" type="Button" parent="."] +margin_left = 240.0 +margin_top = 60.0 +disabled = true +text = "Play" + +[node name="PlayMusic" type="Button" parent="."] +margin_left = 120.0 +margin_top = 180.0 +text = "Play Music" + +[connection signal="pressed" from="RecordButton" to="." method="_on_RecordButton_pressed"] +[connection signal="pressed" from="SaveButton" to="." method="_on_SaveButton_pressed"] +[connection signal="pressed" from="PlayButton" to="." method="_on_PlayButton_pressed"] +[connection signal="pressed" from="PlayMusic" to="." method="_on_Play_Music_pressed"] diff --git a/audio/mic_record/default_bus_layout.tres b/audio/mic_record/default_bus_layout.tres new file mode 100644 index 00000000..2d2dae83 --- /dev/null +++ b/audio/mic_record/default_bus_layout.tres @@ -0,0 +1,17 @@ +[gd_resource type="AudioBusLayout" load_steps=2 format=2] + +[sub_resource type="AudioEffectRecord" id=1] + +resource_name = "Record" + +[resource] + +bus/1/name = "Record" +bus/1/solo = false +bus/1/mute = true +bus/1/bypass_fx = false +bus/1/volume_db = 0.0 +bus/1/send = "Master" +bus/1/effect/0/effect = SubResource( 1 ) +bus/1/effect/0/enabled = true + diff --git a/audio/mic_record/default_env.tres b/audio/mic_record/default_env.tres new file mode 100644 index 00000000..feeea6b8 --- /dev/null +++ b/audio/mic_record/default_env.tres @@ -0,0 +1,14 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +sky_top_color = Color( 0.647059, 0.839216, 0.945098, 1 ) +sky_horizon_color = Color( 0.839216, 0.917647, 0.980392, 1 ) +ground_bottom_color = Color( 0.156863, 0.184314, 0.211765, 1 ) +ground_horizon_color = Color( 0.423529, 0.396078, 0.372549, 1 ) + +[resource] + +background_mode = 2 +background_sky = SubResource( 1 ) + diff --git a/audio/mic_record/icon.png b/audio/mic_record/icon.png new file mode 100644 index 00000000..2b658158 Binary files /dev/null and b/audio/mic_record/icon.png differ diff --git a/audio/mic_record/icon.png.import b/audio/mic_record/icon.png.import new file mode 100644 index 00000000..45ee6af7 --- /dev/null +++ b/audio/mic_record/icon.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/audio/mic_record/project.godot b/audio/mic_record/project.godot new file mode 100644 index 00000000..5bb817df --- /dev/null +++ b/audio/mic_record/project.godot @@ -0,0 +1,33 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} + +[application] + +config/name="MicRecord" +run/main_scene="res://Node2D.tscn" +config/icon="res://icon.png" + +[audio] + +enable_audio_input=true + +[display] + +window/size/width=640 +window/size/height=480 + +[rendering] + +environment/default_environment="res://default_env.tres"